home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1997
/
ARCHIVE_97.iso
/
text
/
hints
/
vol_04
/
issue_08
< prev
next >
Wrap
Text File
|
1995-02-16
|
35KB
|
940 lines
Hints and Tips
4.8
Å ARM code errata Ö The following is for all those who have an unshak
able faith in the integrity of Acornæs code:
4.8
The code given to return from SWI öOS_ BreakPtò on page 736 of the PRMs
is incorrect. The following works.
4.8
.backtobreak%
4.8
SWI öOS_EnterOSò
4.8
ADR R14,breaksave
4.8
LDMIA R14,{r0-r14 }^
4.8
LDR R14,[R14,#15*4]
4.8
ADD R14,R14,#4
4.8
MOVS PC,R14
4.8
The code given on page 231 of the old BASIC User Guide (under CALL) is
incorrect. For example, to use MATCH, the line tokenisation routine, the
following code will work. This has been corrected in the new BASIC User
Guide.
4.8
.tokenise
4.8
STMFD R13!,{r14 }
4.8
ADD R0,R14,#18*4
4.8
ADR R1,source
4.8
ADR R2,dest
4.8
MOV R3,#1
4.8
MOV R4,#0
4.8
ADR R14,cominghome
4.8
MOV PC,R0
4.8
.cominghome
4.8
LDMFD R13!,{pc }
4.8
.source
4.8
EQUS STRING$(90,CHR$(0)) ALIGN
4.8
.dest
4.8
EQUS STRING$(90,CHR$(0)) ALIGN
4.8
J Heher, South Africa
4.8
Å BASIC printing to a DeskJet Plus Ö The April issue of Archive
contained a Help!!! plea about printing from Archimedes BASIC to a
DeskJet 500. I have a DeskJet Plus and have successfully printed from
BASIC. For reference, my printer is normally set with the function
switches 6 and 8 in bank A and 2 in bank B up, all others are down.
4.8
To print, I use the command VDU 2,1,27,1,38, 1,107,1,49,1,71 (see Line
Termination in Appendix 8.19 of the Owneræs Manual). Here is an example
of how it can be used:
4.8
10 REM >PrintTest
4.8
20 VDU 2,1,27,1,38,1,107,1,49,1,71
4.8
30 PRINT öTEST OF NORMAL PRINTINGò
4.8
40 VDU 1,27,1,38,1,100,1,49,1,68
4.8
50 PRINT öThis is underlinedò
4.8
60 VDU 1,27,1,38,100,1,64
4.8
70 VDU 1,27,1,40,1,115,1,51,1,66
4.8
80 PRINT öThis is BOLD printingò
4.8
90 VDU 1,27,1,40,1,115,1,48,1,66
4.8
100 VDU 1,27,1,40,1,115,1,50,1,48, 1,72
4.8
110 PRINT öThis is 20 PITCHò
4.8
120 VDU 1,27,1,69 :REM reset printer
4.8
130 VDU 3
4.8
140 END
4.8
A Kitchenside, Weybridge
4.8
Å Big memory tips Ö As a footnote to my own article in last monthæs
Archive on making best use of machines with more than 1M memory, Iæd
like to add one more tip. I was reminded by a review of Protext, which
noted that the current version does not multi-task, that my eleventh tip
might have been, öboycott non multi-tasking packagesò. Since, with 1M,
you couldnæt really multi-task two significant applications, this was
not a problem. Now, itæs a real pain in the neck not to be able to have
several applications with simultaneously active windows, much of the
power and ease-of-use of RISC-OS is being un-used and itæs annoying
knowing that 3M of your upgrade is being wasted!
4.8
So, unless thereæs a really good reason such as a time-critical sound
sampler or video screen grabber, I suggest that we boycott such
packages. Then, software producers would have to bring them up to date
and not try to palm us off with öArthur programs with !Run and !Boot
filesò. In an ideal world, software sellers would refuse to stock them
but at least they could be marked as such, perhaps indicating their
antiquity by listing them in a suitable script? Stuart Bell, Brighton.
4.8
Å C book Ö I was recommended a good C book which I used on a C short
course I attended: The Waite Groupæs öNew C Primer Plusò, First Edition
1990, editor Howard W Sams & Co, ISBN 0Ö672Ö22687Ö1. It covers ANSI C,
UNIX, Microsoft C and Turbo C. S. Stel, Netherlands.
4.8
Å ChangeFSI update Ö A new version of ChangeFSI v0.79 is available from
Acorn Direct for ú19.95. This will handle more image formats than would
v0.69: Degas PI1, PI2 & PI3, !Translator Clear, MacPaint 579x720x1 bit/
pixel, ZSoft .PCX, Windows3 .BMP, Pineapple 16 bit/pixel, UNIX rle, PC
TGA. Unfortunately it will not run from the desktop under !ChangeFSI
(Shareware Disc 21) as is. This is because version 0.79 is 94 Kbytes
long, compared with 74K for v0.69. The solution is to edit the !Run file
of !ChangeFSI and increase the WimpSlot from 128K to 160K. All is then
well. A Quayle, Chester
4.8
Å C txt library Ö This idea was inspired by the article ÉIntroduction to
Cæ ù Part 5, in Archive 3.6. This gave a complete RISC-OS application
using the libraries supplied with Release 3 of Acorn C. In particular,
it used the Étxtæ library to provide a window to display text generated
by the sample program. This requires a minimum of effort by the
programmer since the library looks after most of the problems.
4.8
Although it works as described, it has two major disadvantages. The
first is the slow speed during text generation. The second is the
operation of the window controls. In particular, the cursor control keys
cannot be used to move the text through the window, the close icon has
no effect and the vertical scroll bars can only be dragged. Here are
some techniques which overcome these problems.
4.8
Improved text generation speed turns out to be a very simple modifi
cation since the cause of the slow operation is the redrawing of the
window for every item added to the text buffer using, for example, the
txt_insertstring function. Two extra lines are required; the first turns
off the display updates when text generation starts and the second turns
it back on when the operation is complete. The lines shown below should
be inserted immediately after the visdelay_begin() statement and
immediately before the visdelay_ end() statement in the original program
function sysvars_to_text().
4.8
/* turn off display update */
4.8
txt_setcharoptions(t, txt_DISPLAY, FALSE);
4.8
4.8
/* turn on display update */
4.8
txt_setcharoptions(t, txt_DISPLAY, TRUE);
4.8
Improving text window control requires rather more code but again the
principle is fairly straightforward. Firstly an event handler has to be
registered for the text window following its successful creation by the
txt_new() function using the following statement:
4.8
/* register the text window event handler */
4.8
txt_eventhandler(t, user_txevent, NULL);
4.8
This registers the function user_txevent which will be called to process
text window events.
4.8
The function itself has to process all the events which the user
requires. A sample function is given below which is commented to show
which events are being processed. The keyboard key macro definitions
given in Éakbd.hæ are used for consistency but, in addition, the ÉHomeæ
key must also be defined using a macro as this is omitted from Éakbd.hæ.
The actual key values required are defined in the PRM, page 1198 and the
macro definitions are given in file Éakbd.hæ. Note, however, that the
definitions given for both akbd_ PageUpK and akbd_PageDownK are wrong so
I have not used these but used their correct definition in the following
code. The value txt_ EXTRACODE is added to the key value to represent
the equivalent window operation. A full list of these is given on page
325 of the ANSI C Release 3.
4.8
4.8
#include öakbd.hò
4.8
4.8
#define HOME (30)
4.8
4.8
/***********************************
4.8
user_txevent text window event handler
4.8
t text object
4.8
h event handle
4.8
***********************************/
4.8
void user_txevent(txt t, void *h)
4.8
{lines ; /* number of lines in window */
4.8
4.8
h = h;
4.8
while (txt_queue(t) > 0)
4.8
{number of lines visible in window */
4.8
lines = txt_visiblelinecount(t);
4.8
4.8
/* process the next user event code */
4.8
switch (txt_get(t))
4.8
{+ akbd_Fn+127:
4.8
/* close window icon */
4.8
txt_hide(t);
4.8
break;
4.8
4.8
case akbd_UpK:
4.8
case txt_EXTRACODE + akbd_UpK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_UpK:
4.8
/* scroll up one line */
4.8
txt_movevertical(t, ù1, TRUE);
4.8
break;
4.8
4.8
case akbd_DownK:
4.8
case txt_EXTRACODE + akbd_DownK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_DownK:
4.8
/* scroll down one line */
4.8
txt_movevertical(t, 1, TRUE);
4.8
break;
4.8
4.8
case akbd_Sh + akbd_UpK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_UpK:
4.8
/* scroll up one page */
4.8
txt_movevertical(t, -lines, FALSE);
4.8
break;
4.8
case akbd_Sh + akbd_DownK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_DownK:
4.8
/* scroll down one page */
4.8
txt_movevertical(t, lines, FALSE);
4.8
break;
4.8
4.8
case akbd_Ctl + akbd_UpK:
4.8
case HOME:
4.8
/* move to start of text */
4.8
txt_setdot(t, 0);
4.8
break;
4.8
4.8
case akbd_Ctl + akbd_DownK:
4.8
case akbd_Sh + akbd_CopyK:
4.8
/* move to end of text */
4.8
txt_setdot(t, txt_size(t));
4.8
break;
4.8
4.8
default:
4.8
break;
4.8
}
4.8
}
4.8
return;
4.8
}
4.8
David Scott, Stockport
4.8
Å Connection problems Ö If you are having connection problems with RS423
connectors, or video or printer Ö or a dongle, it may be because the
plugs are not Égoing homeæ properly into the sockets on the back of the
computer. I have noticed this particularly on A540æs, but it could also
occur on other Archimedes computers. This may be because the fixing
pillars either side of the socket are too high. The solution it to take
a pair of pliers (or a box spanner if you have a suitable sized one) and
remove each of the pillars in turn, take off the washer and screw the
pillar back in. That extra millimetre can make all the difference.
4.8
Å CPC monitor Ö When my multisync died on me suddenly and I was forced
to make do with what I had Ö a well worn Amstrad CPC green screen
monitor. In practice it was fairly easy to connect the six-pin CPC
connector to the nine-pin connector on the A3000:
4.8
Archimedes CPC
4.8
1, 2 & 3 Ö 6
4.8
6, 7, 8 & 9 Ö 5
4.8
5 Ö 4
4.8
Naturally, it is impossible to use the multisync modes but it certainly
is almost as sharp a picture on the tube as on my multisync and much
cheaper. If your main interest is games I wouldnæt recommend it but for
most business uses it is perfectly all right. I guess you could get a
second hand green CPC monitor for next to nothing in the UK as many
owners have exchanged them for the new CPC monitors. Ask your local
dealer! A spare monitor could come in handy any day! Tord Eriksson,
Sweden.
4.8
Å !Edit Ö For what seems like an eternity I have been wrestling with the
problem of importing text from a wordprocessor (in my case View). What I
wanted to do was free the text from newline characters in order that, on
loading it into Ovation, it could be formatted to new column width, in
whatever point size, without the newline control code producing extra
linefeeds. At the same time, it should retain the carriage returns
marking the paragraphs and multi-line spacing. This way I did not lose
all the style. What follows is how I do it . It might seem obvious but
it could help someone who is as thick as me. If I have missed the point
would some kind person tell me before I go mad.
4.8
After loading your text into !Edit, go through the text ensuring that
there are double returns at the end of each paragraph and on multiple
line text like program listings or poetry.
4.8
My technique is firstly to change double returns into something which is
unlikely to appear elsewhere in the text, thus:
4.8
Press <F4> to select Find
4.8
In the Find dialogue box enter \n\n <return>
4.8
In the Replace dialogue box enter ZCZC<return>
4.8
Click on the Magic Character box
4.8
Click on the Go box
4.8
Click on End of File Replace
4.8
Click on Stop
4.8
Press <ctrl-up> to move the cursor to the top
4.8
Now, to replace the single returns:
4.8
Press <F4> to select Find
4.8
In the Find dialogue box enter \n <return>
4.8
In the Replace dialogue box press <space>
4.8
Click on Go
4.8
Click on End of File Replace
4.8
Click on Stop
4.8
Press <ctrl-up>
4.8
Then, to restore the double returns to single ones:
4.8
Press <F4> to select Find
4.8
In the Find dialogue box enter ZCZC<return>
4.8
In the Replace dialogue box enter \n <return>
4.8
Click on Go
4.8
Click on End of File replace
4.8
Click on Stop
4.8
You should have your text with the paragraph and multi-line spacing
intact. (Simplified from a hint sent in by R Follett, Winnersh, Berks.)
4.8
Å Improving sound quality Ö Further to the comments by Jeremy Mears
(Archive 4.7 p 21) there is no need, on the A3000, to actually solder to
the motherboard. You can make contact to the appropriate resistors using
micro test clips (Tandy Ö ú1.50 for four). This would, I suppose, still
invalidate the warranty but is less obvious than blobs of solder on the
p.c.b.! To get access to the resistors, you have to remove the disc
drive by unscrewing it from underneath. R86 is under the keyboard side
of the drive whereas R99 is under the middle of the drive. Pin 1 of the
expansion port is the furthest right (looking from the keyboard side of
the computer). Gerald Williams, Aldershot.
4.8
Å Multiple height and width text printing Ö I know that the emphasis
these days is on programs which multi-task and use mode 12 on the
desktop but not every program is suitable for this and some of these
programs require larger than usual height characters.
4.8
I am (slowly) developing a word game for the Archimedes, from one I
wrote last year on my Model B. The öBò version uses mode 2, with double
height routines written in machine code for speed. The original version
of this code was quite öillegalò and would not work on a Master but it
was fast! With it, I could also have text printed 3 or even 4 times
normal height just as quickly. However, I am new to the Archimedes and
ARM code is currently beyond me, so after trying various routines in
BASIC I came across VDU23,17,7. This gives characters at any height and
any width and is very fast! I can even get half width which gives the
impression of mode 1 characters in mode 2. Also, it works in most Screen
modes (except 3, 6 & 7).
4.8
Iæve put together a short routine which demonstrates how easy and fast
this routine is. To use it, all you have to do is append the PROCedure
to your program and call it with the colour you wish it to appear in,
the X & Y positions, the height and width of the characters and the
Text$ Ö the routine will do the rest! One point to bear in mind,
however, is that text is printed using the graphic cursor, i.e. under
VDU 5 and MOVE or PLOT, rather than the text cursor and VDU 31, X%,Y%.
4.8
Even though this demonstration program is about 20 lines long, the only
bits you need are in PROCtext(colour, X_co_ord, Y_co_ord, Height, Width,
Text$). The function FNvdu simply returns the text width of the screen
mode window in use and this is used to check if lines are too long in
the first line of PROCtext. The second line in PROCtext is personal as I
like being able to centralise text without effort! To do so, just set X%
to -1. The %110 sets bits 1 and 2 so that both characters and spacing
are altered at the same time. %100 sets spacing, while %010 will alter
just character sizes. It is also possible to use 0.5 as Height or Width
but that works better in öchunkyò modes, like 2 rather than 12. When the
width is set to an odd number, the öauto-centralisingò is sometimes a
little off so you may prefer to set up the X co-ord manually.
4.8
REM >$.Height/Wid.!RunImage
4.8
:
4.8
DIM block% 12, output% 12
4.8
MODE12:COLOUR3
4.8
:
4.8
PROCtext(1,-1,1,2,3,öMulti Height & Width!ò)
4.8
PROCtext(2,-1,4,2,1,öDouble Height, Normal Widthò)
4.8
PROCtext(3,-1,7,1,2,öNormal Height, Double Widthò)
4.8
PROCtext(4,-1,10,3,3,ö3 * 3 Formatò)
4.8
PROCtext(5,-1,15,4,1,öRidiculous! 4 X 1 !!ò)
4.8
PROCtext(6,-1,20,1,1,öYou should reset the height & width
4.8
before finishingò)
4.8
PROCtext(6,-1,21,1,1,öbut as it stands the PROCedure will
4.8
do this anywayò)
4.8
END
4.8
:
4.8
DEFPROCtext(C%,X%,Y%,H,W,T$)
4.8
F%=FNvdu
4.8
IF F%-(LENT$*W)<=0 THEN ERROR 300,öLine too longò
4.8
GCOL C%
4.8
Y%=1000-(Y%*32)
4.8
IF X%=-1 THEN X%=(F%-LENT$*2)/(W*2)
4.8
IF W=1 THEN X%=(F%-LENT$)/4
4.8
X%=X%*32
4.8
VDU 23,17,7,%110,W*8;H*8;0;
4.8
VDU 5,25,4,X%;Y%;
4.8
PRINT T$
4.8
VDU 4,23,17,7,%110,8;8;0;
4.8
ENDPROC
4.8
:
4.8
DEF FNvdu
4.8
!block%=256
4.8
block%!4=-1
4.8
SYSöOS_ReadVduVariablesò,block%,
4.8
output%
4.8
=!output%
4.8
Å Off screen desktop windows Ö Normally, the filer and switcher windows
are forced to stay within the confines of the screen but, by altering
their template files, it is possible to make them move Éoff screenæ and
thus help to reduce window Éclutteræ.
4.8
To do this, you have to copy the window templates from the DeskFS to a
directory called Templates. First, create a directory called Templates
in the root directory of your harddisc or Éworkdiscæ and then type the
following:
4.8
*deskfs
4.8
*copy templates.filer scsifs::scsidisc4.$.templates.filer
4.8
*copy templates.switcher scsifs::scsidisc4.$.templates.filer
4.8
(You can also copy netfiler, palette and wimp windows across if
required.)
4.8
Load the window template data into !FormEd (Shareware Disc 20) and set
the Éno boundsæ option for each window. Then, edit your disc !boot file
to include the following line:
4.8
Set Wimp$Path scsifs::scsidisc4.
4.8
(or whatever your system is!) Donæt forget the full stop at the end.
This points Wimp$Path in the direction of the updated windows.
4.8
Finally re-boot your machine to see the result! M Roscoe, Ealing
4.8
Å PrinterDM with the Star LC24Ö10 Ö I was interested to see the note on
!PrinterDM and the LC24-10 in Marchæs edition of Archive. May I draw
your attention to the öHint and Tipò which I had published in the March
edition of Risc User on the same subject but concerning a different
problem. I was initially disappointed in the results I obtained with
Impression Junior (and from the Ovation test disc and, to a lesser
extent, !Draw printouts). This was due to some lines of text having a
marked öslewedò effect. After speaking to Star, and much sleuthing, I
tracked down the problem to the very same line in the PrData file of
!PrinterDM (version 1.12). There is apparently some incompatibility
between the Star and the Epson LQ800. The former does not like the özero
absolute tabò command used to obtain the CR without LF. The solution was
to substitute the commands used in the FX80 module, although modified to
use the correct line feed command for 24 pin printers. With my version
of !PrinterDM I have not experienced any squashed text with the 24/180
inch feed (could the writer have been in IBM mode where the command
gives n/216 inches rather than n/180 inches?) but the bigger feed
suggested in Marchæs tip could equally well be used. The modified line
is as follows:
4.8
line_epilogue ö<27>A<0><13><27>2<27>J<24>ò
4.8
Iæm surprised that this matter has not previously been commented on,
especially as I think it also applies to the XB24-10. A.F. Taylor,
Poole
4.8
Å Quattro to Schema transfer Ö To move data files from Quattro, first
save the file with a WKI extension. Then you can use Schemaæs !sch123 to
translate the file into Schema format. This method leaves all sorts of
spurious bits and pieces which have to be edited out by hand but it does
work. M Green, Devon
4.8
Å Quitting First Word Plus Ö If you quit First Word Plus (release 2)
from the task manager while a text file is loaded, you will be thrown
out of the desktop. If other applications are running that may object
e.g. Draw, Paint, etc, they will announce what is about to happen and
give you a chance to prevent it. Otherwise you will lose any files that
you may have been working on in First Word Plus. R Bunnett,
Swanley
4.8
Å Reading disc names Ö For those software writers who need to check that
the user has inserted an appropriate disc in the disc drive the
following function returns the name if the disc currently inserted:
4.8
DIM block% 5
4.8
:
4.8
DEF FNdiscname
4.8
SYS öOS_GBPBò,5,,block%
4.8
?(block%+?block% +1)=13
4.8
=$(block%+1)
4.8
M Sawle, Hampshire
4.8
Å !Schema VAT rate Ö New spreadsheets are created with various user
names available, one of which is öVatò. To change this from 0.15 to
0.175, look in the !Schema directory and then in the Menu directory and
you should find a file called StartUp. This has a write-lock on it so
you will have to use ÉAccessæ off the filer menu to enable it to be
changed. At the end of this file are a number of lines that start with
Éputusnæ, the first of which is the Vat rate which simply needs to be
changed before the file is again saved and the write-lock access
restored. Ian Hamilton, Harrow.
4.8
Å Spaced filenames Ö If you want a <space> in a disc or file name, use a
hard space. This is available by pressing either <alt><1><6><0> or
<alt><space>. You should note that if you do use it then you canæt use
the copy key on a catalogue because the Archimedes thinks that the
character is a normal space (which is illegal in a filename). E Hughes,
Derbyshire
4.8
Å Twin World cheats Ö The file SavedGame can be edited using !Edit to
cheat. Byte values of interest include:
4.8
Byte 1 = Level (Maximum = 22 = &16)
4.8
Byte 4 = Red Spells (Maximum 99 = &63)
4.8
Byte 5 = Blue Spells (Maximum 99 = &63)
4.8
Byte 6 = Green Spells (Maximum 99 = &63)
4.8
Bytes 8-11 = Score, low byte first. (Maximum = 999999 = &F423F )
4.8
Byte 12 = Lives (Maximum = 9 or 10 = &9 or &0A)
4.8
Remember all value are in hex, so use the magic character option in
!Editæs Find. Stuart Turgis
4.8
Å TwinWorld hints
4.8
Ö Owls in the forest can be killed by jumping up and firing.
4.8
Ö Similarly, on some occasions you will have to jump, but fire on the
way down to hit denizens close to you.
4.8
Ö Jump between worlds whenever possible Ö if you loose a life, youære
taken back to the last time you changed worlds.
4.8
Ö Stamping your feet can reveal objects Ö either treasure or keys.
4.8
Ö Beware of calling the genie when you are already carrying two other
sorts of objects (remember the horn is one), because you wonæt be able
to buy an object which you donæt already hold.
4.8
Ö Beware when shooting the three-headed dragon. If you donæt shoot the
head furthest away from you, it flies away from you and fires an almost
continuous salvo.
4.8
Ö Watch out for extended jump Ö you can sometimes use it when you donæt
realise Ö on some screens itæs essential and you may only have a limited
amount.
4.8
Ö Watch out for the parachute Ö in the last few levels I found I
couldnæt get rid of it and it limited my objects to just two types.
4.8
Ö When firing at the bird Ö if you duck, it flies lower to avoid your
fire. Stand until the bird is fairly close, then crouch and fire.
4.8
Ö When the giant clam fires at you, or the Big eye, if you run so the
Ébulletæ is off the screen it will disappear.
4.8
Impression
4.8
Hints & Tips
4.8
Bruce Goatly (BG), who is busy writing a book about using Impression,
very kindly sent us some hints & tips (in return for permission to use
our H&T in his book!). Most of the rest of the H&T are from the editoræs
experiences with the unreleased version 2.09. (Version 2.10 is not ready
for release so 2.05 is still the latest officially available version.)
4.8
Å Abbreviation expansion Ö Use it to correct common spelling errors or
to enforce house style (I often type Éansæ for Éandæ and Éthwæ for
Étheæ, and the house style for my book is Édiskæ whereas I almost always
spell it Édiscæ). BG.
4.8
Å Date and time format Ö As I continually forget what day it is, I use
the Insert date option quite a lot. If you want to change the format of
the date (the default is in the form 6th April 1991), load the !Run file
into Edit and alter the definition of the variable Impression$DateFormat
(see pp. 337-339 of the User Guide, on using system variables).
Similarly, you can alter the time format by editing
Impression$TimeFormat. BG.
4.8
Å Dongle connection problems Ö If you are having problems with a dongle
that keeps saying it is not present and you find that you need to wiggle
it (just a little bit!) to recognise its presence, go back and read the
hint above about ÉConnection problemsæ. Alternatively, CC themselves
offer a hint about it. They say that it is important to quit properly
from Impression and not just do a <ctrl-break>, otherwise the dongle
might need to be left for a couple of hours for a capacitor to discharge
before Impression can be loaded again.
4.8
Å Line spacing and font changes Ö If a line in the middle of a paragraph
starts with a different font from the lines around it, the line spacing
may be upset for that one line because of the way Impression does its
calculations. The way round it is to put the cursor at the start of the
offending line, cancel the font change at that point and insert a Énullæ
character (such as Alt-131). This will be invisible but will correct the
line spacing. BG.
4.8
Å Loading text files Ö If you want to load a text file into Impression,
there is no need to create a new document first Ö just drag the Edit
file onto the Impression icon and it will set up an untitled document
and load the text into a null frame.
4.8
Å Marking a single character Ö If you are doing DTP in a lower resolu
tion screen mode, you may be finding it difficult to use the mouse to
drag-mark a single character e.g. the Élæ in Éwillæ. One way of doing it
is to move the cursor between two of the characters, click <select> but
firmly hold the mouse in place. Then you use the cursor left or right,
as appropriate, to move the cursor to the other side of the character to
be marked and finally press <adjust>. George Foot, Oxted.
4.8
My method of doing any of this kind of detailed work is to have two
windows open on the same document Ö which is extremely easy to do
(another advantage over PageMaker!) Ö one shows the full page and one
just an enlarged section of the text. Then you can flick backwards and
forwards between the two views enlarging and contracting the windows or
simply pushing them to the back when they are not wanted.
4.8
(However, have you noticed that Impression sometimes insists on going
back to the beginning of the document when you expand and contract the
window using the size switch icon in the top right hand corner of the
window? Has anyone worked out why it happens and, more importantly, how
to stop it?)
4.8
Å Special characters Ö The list in Appendix 5 of the Impression II
manual gives a printout of all the characters. This is useful, but there
is some variation from one typeface to another, so it would be useful to
have an Impression file of it so that you could print it out in your
particular typeface. Iæll put a file of it on the monthly program disc,
but if you want to do it yourself, you can run the following program and
put the text into a multi-column Impression document.
4.8
10 REM > CHARLISTER
4.8
20 *SPOOL CHARS
4.8
30 @%=2
4.8
40 FOR N% = 32 TO 255
4.8
50 PRINT N%;CHR$(9);
4.8
ö{òöheadingòöon }{ò ;CHR$(N%); ö}ò
4.8
60 NEXT
4.8
70 *SPOOL
4.8
Å Spell-checking Ö Not really a hint, but I was using the spelling
checker and it offered me the word öfaltnessò and told me that
öflatnessò was wrongly spelled. Also, while spell-checking, someone had
written öBeebugsæ policyò. The spelling checker knows Beebug but can you
guess what it offered me as an alternative for the accidental plural?
Yes, thatæs right, öBedbugsò! On the same theme, I spell-checked my
Factfile and came up with Motley Electronics, Mike Leecher of EMU Ltd,
ARM3æs from Aloof One and IDLE drives from Ian Copycats. Then I tried
some of our contributors and found Brain Cowman, Dim Parkland and last,
but not least, Pall Beggarly.
4.8
Å Tickets please! Ö (The following saga gives, firstly, an unnecessarily
long method of doing a job but one which illustrates techniques which
might prove useful in other circumstances. It is followed by the easier,
smarter method!) I wanted to make some numbered tickets at A6 size so I
made up an A4 page with four copies of the ticket. I used a two column
master page so that I could just take a copy of the text on the page and
paste it 14 times to make my 60 tickets. Near the bottom of each ticket,
it said, öTicket number: ò with an appropriate blank space. Then I
created four guide frames on the master page at about the right place to
put in the ticket numbers and inserted four new frames on each page. I
then went through linking all the frames together. To create the text
for the numbers, I used PipeDream using the örowò command and copying it
down 60 rows. I then ösavedò this in tab format straight into the first
ticket number frame and, instantly, all the tickets were numbered.
Brilliant! The only real hassle was lining up the ticket number boxes
with the words on the ticket. The problem is that although you can have
both the text and the master page on screen at the same time and at the
same magnification (which helps), the main page is not updated until the
master page is closed so I changed the öpreferencesò to make the master
page come up at the right magnification.
4.8
(A similar technique of linked frames is used for the running heads on
the magazine Ö i.e. the articlesæ names at top outside corners of the
pages. The dummy Archive, before articles are inserted, has a whole
string of 60 öXòs, one on each page, alternately left and right aligned.
Then, when an article has been inserted, the running heads are altered
using selective search and replace to change, for example, öXò into
öHints & Tipsò. This is easier than using copy and paste because it
preserves the left and right alignment. But I digress... let me get back
to the tickets...)
4.8
Then I suddenly realised the easy way of doing it.... Create the ticket
at full A4 size on the master page using öTicket number: ò and then
inserting the page number. (Use <menu> Ö Misc Ö Insert Ö Current page
number Ö Numeric.) Then, all you do is to add 59 pages (click on öInsert
new pageò with <adjust>, not <select> so that the menu option stays on
the screen) and use öFit lotsò on the öPrintò dialogue box reducing the
scale to 50%. If you find that it still says, öFit lots (1)ò at 50% and
you have to go down to about 48% before it goes to (4), click on
öSetup...ò and select the option to öIgnore page boundaryò. If you donæt
do this but print out at 48%, you will find that the margins are
unequal. This is a much quicker way of doing it than the previous method
and also gives the possibility of deciding that you want the tickets
smaller after all so you just reduce the scale and, perhaps, change to
sideways printing.
4.8
Å Widows & orphans Ö This is the technical term for where you get a
paragraph split so that a single line is on one page (or column) and the
rest is on the previous or next. If the first line is split off from the
rest, the solution is fairly obvious Ö use <ctrl-G> at the beginning of
the paragraph to push the line onto the next column. The odd line at the
end of a paragraph is less easy. If the text is left justified, you can
again use <ctrl-G> to push one more line to the next column to join the
lonely orphan. However, if you subsequently edit the paragraph so that
the layout of the lines changes, you have to edit out the <ctrl-G>.
Also, this doesnæt work at all if you are using full justification
because the <ctrl-G> causes the justification on the last line of the
column to be lost and it looks like the end of a paragraph without a
full stop. The only solution I can find is to create a new frame with
<ctrl-I> and lay it over the last line of the column. This forces that
line over to the next column without losing the justification.
4.8
SCSI Hints & Tips
4.8
Å Removable drive problems Ö We are beginning to understand more about
the problems with removable drives. Let me explain... SCSI drives are
intelligent and they keep their own record of any duff sectors. However,
this record is not available to the user. If you tell the computer to
öformatò the disc, it deliberately ignores any sectors it already knows
are duff. If you get a ösoft errorò i.e. where the data gets corrupted
so that the CRC check shows up an error, reformatting will clear the
problem. However, if the disc surface is actually damaged, it may be
that reformatting clears the problem temporarily but, with time, the
problem may reappear and you will get the dreaded öDisc error 10 at... ò
or whatever. The solution to this is to use the *DEFECT command provided
by RISC-OS. If you get an error, *VERIFY the disc, note the addresses
which are thrown up as either suspect or actually having a disc error,
say, 7CEC00, 7CEE00 and 7CF000 and then type in
4.8
*DEFECT SCSI::5 7CEC00
4.8
*DEFECT SCSI::5 7CEE00
4.8
*DEFECT SCSI::5 7CF000
4.8
where SCSI::5 is the drive definition. It is worth recording these
addresses in case you need to format the disc again in the future. You
then need to enter the *DEFECT commands again. If *DEFECT finds that you
are trying to map out a sector that is allocated to a file or directory,
it will tell you so, in which case, you will have to copy the file or
directory and delete the one which it says is in the way.
4.8
Obviously, it is better if you can avoid getting hard errors in the
first place so, just as a reminder, (1) always dismount the drive
properly before switching off the power and (2) keep your drive cool by
not packing other hardware around it.
4.8
Å Removable drive problems (Part 2) Ö Surely there canæt be any MORE
problems with the removable drives Ö they really wonæt be worth selling.
Yes, there are more problems but, yes, I still think they are worth
selling. If you try to use the MR45æs or the Atomwide equivalent on an
Acorn SCSI podule or on a TechnoSCSI (I have not tried any others), you
will find that occasionally they just hang up Ö usually when copying a
sequence of files. It is a timing problem which Acorn say they will look
into but they are not too optimistic. They say that Syquest, who make
the drive mechanisms, have interpreted the SCSI standards in a different
way from other drive manufacturers. The Acorn engineers have tried to
modify their software to accommodate Syquestæs idiosyncrasies but
although they have managed to make a version of their software that will
work when copying lots of files, they find that it does not format the
cartridges properly! It is not beyond the bounds of possibility to get
SCSI software to work on the Syquest drives Ö both Oak and Lingenuity
have done it successfully but, as yet, there is no satisfactory way of
running them on Acorn or TechnoSCSI cards.
4.8
I should say to A540 owners, that, although I am using a Syquest
removable drive on my A540, I am doing so on an Oak podule. I made the
change (before I realised there was any problem) purely on the basis
that (1) the Oak software is the easiest to use on the MR45æs because of
the ease of dismounting and re-mounting discs and (2) it is the fastest
that I have tried. (I have not yet tried the offerings from HCCS or The
Serial Port but unless they have specifically tailored their software
for the Syquest mechanisms, I doubt that they will work.)
4.8
Å SCSI land speed record Ö Oak are claiming an Archimedes drive speed
record. Their 300M HS drive, on an A440 with a 20MHz ARM3, runs at 1939
/ 1761 / 1043 Kbytes/sec in modes 0, 15 and 21 respectively. Can anyone
beat that? A
4.8