home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1997
/
ARCHIVE_97.iso
/
text
/
hints
/
vol_02
/
issue_02
< prev
next >
Wrap
Text File
|
1995-02-16
|
31KB
|
902 lines
Å Mannisman Tally printers with serial interface Ö Pin connections
are: pins 1, 4 and 6 linked together on the Archimedes, pin 3 to pin 3
on the printer, pin 5 to pin 7 on the printer and pin 8 to both pins 11
and 19 on the printer.
2.2
Å SWI öXOS...ò Ö If you are using SWI öXOS...ò commands so that you
can handle your own errors, it will fail if you try to return
immediately after this command to the calling routine. A dummy instruc
tion needs to be inserted before the LDMFD instruction. Presumably a
Éfeatureæ of OS 1.2.
2.2
Å Problems with *Memory and *MemoryI Ö If you try to use these two
commands in the debugger with the aim of dumping to printer, you will
find that codes above &7F are not weeded out Ö they are all sent to the
printer regardless which can cause all sorts of problems. The following
program patch will solve the problem.
2.2
10 REM> DEBUGPCH
2.2
20 REM (C) JW^2 4th OCTOBER 1988
2.2
30 DIM A% &270C
2.2
40 OSCLIöSAVE Debugged_D 38486A0
2.2
+270Cö
2.2
50 OSCLIöLOAD Debugged_D ò+STR$~A%
2.2
60 FOR F=0 TO 3 STEP 3
2.2
70 P%=A%+&2230
2.2
80 [
2.2
90 OPT F
2.2
100 STMDB R13!,{r0-r9 ,R14}
2.2
110 .LOOP
2.2
120 LDRB R0,[R9],#1
2.2
130 CMP R0,#&7F
2.2
140 MOVHS R0,#&2E
2.2
150 CMP R0,#&1F
2.2
160 MOVLS R0,#&2E
2.2
170 SWI öXOS_WriteCò
2.2
180 BVS (LOOP+&35D)
2.2
190 SUBS R2,R2,#1
2.2
200 BNE LOOP
2.2
210 ]
2.2
220 NEXT
2.2
230 OSCLIöSAVE Debugged_D ò+STR$~A%+
2.2
ö +270Cò
2.2
240 OSCLIöSETTYPE Debugged_D &FFAò
2.2
Å EDITæs disappearing cursor Ö If you use Éoptionsæ (<shift-f3>), you
can change to a non-flashing cursor which is visible all the time, and
you donæt have to change it each time you switch on the machine because
EDIT stores its options in cmos ram. (Anyone know if thereæs a way to
re-program it to change the colour of the cursor?)
2.2
Å Putting sound through the monitor Ö It is perfectly possible to put
the sound output from the 3.5mm stereo jack socket on the Archimedes
through the amplifiers and speaker(s) of both the standard Acorn colour
monitor and also the Phillips CM8833. All you need is a piece of twin
screened cable (though actually I used ordinary thin three core mains
flex which is OK for such a short length) and a 3.5 mm stereo jack plug
(RS Components 274Ö284, ú1.19 for two). The SCART plug connections are
that pin 2 is right audio, 4 is earth and 6 is left audio. The pins
should be numbered, but if not, 2, 4 and 6 are the first three pins
along the long edge of the plug starting from the rectangular end.
2.2
Three possible problems: firstly, you may find that the SCART plug has
no pins at positions 2, 4 and 6 in which case you will have to buy a new
plug (Tandy N╝ 15Ö7030, ú1.49 each) and re-wire the other connections.
Secondly, you may find that your cable doesnæt fit through the space
available for the cable entry in the SCART plug Ö in which case, some
judicious hacking of the plastic is needed. Finally, if the SCART plug
has got pins at 2, 4 and 6, you may not be able to get at them to solder
onto them. The solution here is to push each of the three pins back out
through the body of the plug, solder them then push them back in again.
It sounds easy but itæs not Ö there are little barbs the stop the pins
being pushed out so you have to try to manipulate these and push the
pins out at the same time Ö OK if you have three hands!
2.2
The result Ö If the kids want to play Orion at full volume, they can,
but I can turn it back down to a sensible volume when I use the system.
2.2
Å Stereo Speakers Ö I recently followed the suggestion in Archive 1.2,
page 7 and purchased the amplified speakers (Model 40-1259E) from a
local Tandy store. Initially I also purchased a couple of mains adaptors
to power each unit but I found that this caused a considerable mains hum
through both speakers. Upon returning to the Tandy store, I was advised
that hum was caused by the mains adaptors not being earthed and, rather
than spending more money on earthed mains adaptors, I exchanged the
original adaptors for re-chargeable batteries which seem to work fine Ö
there are also fewer wires trailing around! Whilst the stereo effect is
very good, there is a problem in that there is no volume control fitted
to these speakers; the suggestion from one of the staff at Tandy was to
wire in two of their öL-Pad Speaker Level Controlsò. Have any other
Archive readers tried this or come up with a different solution?
2.2
I have found that by amending the *Configure SoundDefault middle
parameter to a lower value than 7, the volume can be reduced, this does
provide some measure of control of sound volume; these parameters can
take a value of 0 to 7 with each unit corresponding to one eighth of the
overall maximum volume (see PRM, page 537).
2.2
Å Monitor problems (with solutions!) Ö Fujitsu and MAG 14C Ö The
problem began on the MAG with a distortion of the top few lines of the
display when in a multisync mode. The nature of this problem suggested
that the monitor took several scan lines to lock onto the composite sync
signal fed to it from the Archimedes. It was decided to feed it with
separate vertical (frame) and horizontal (line) sync signals, which
necessitated having to alter the preset links 10 and 11 within the
Archimedes. At present this involves cutting a track (Lk10) and
inserting a link (Lk11), since these links are not brought out on the
normal Molex type links. Having done this modification you need a
*Configure Sync 0 to set ÉVertical sync onlyæ instead of ÉComposite
syncæ to the monitor, otherwise the display rolls (indicating lost frame
sync). This then cured the screen distortion problem but because of the
way Acorn have put Composite/Vertical sync on the green signal, it kills
the green output. With much trepidation this problem was overcome by
disabling Acornæs implementation of this signal by cutting pin 2 of IC
4. The result is a perfect picture.
2.2
The Fujitsu monitor problem was much simpler and cured far easier after
the troubles with the MAG.
2.2
Although the picture quality was very good, there was an excess of
green, even though R39 had been removed (see Archive 1.3 p8) It was
originally thought that some internal adjustment of the green gun was
needed but, with the experience of MAG monitor (and having tried it on
the modified sync signal from the green output) the link changes proved
unnecessary as the monitor worked perfectly happily with composite sync.
Again the result was a perfect picture.
2.2
Anyone wanting further information on this modi-fication can either
contact Reg Dalton on 0742 487992 (less technical/Evenings only) or
Steve Bass (who did all the work) on 0742 708028 (Daytime) or 0742
886622 (Evenings).
2.2
Å Screen saving from the SCML Teletext adaptor Ö R L Jefferies has
worked out how to dump screens from the SCML Teletext Adaptor. (Pressing
the ÉSæ command option gives an error but SCML have not replied to his
questions about that yet.) He has utilised Robin Newmanæs mode 7 to mode
9 utility as supplied on program disc 1.10. He copied this into the
library directory on the Teletext disc and then created a mode 7 to mode
9 screensave module using Neil Strongæs öPrintkey screen dumpò (issues
1.10 p 45 and 1.11 p 7). Two lines need altering in the source program:
2.2
line 840 should be changed to cmp r0,#83 and line 920 should be equs
öM7M9 screensave scr<file>ò
2.2
Note that you should *SETEVAL file XX before you load the öSò key module
and before executing the Teletext module. One small niggle is that Robin
Newmanæs module returns with the cursor ON. Is there an easy way to get
rid of this?
2.2
Å Bug in C Ö Karl Strickland writes╔ There appears to be a bug in the
fgets() function in version 1.54A (latest public release) of ANSI C.
Instead, use the function given below and declare it using
2.2
char *xfgets (char*,int,FILE*);
2.2
We have to use xfgets (as opposed to fgets) because the linker gets
confused if it finds the same function declared twice.
2.2
char* xfgets (char* a,int b,FILE *s)
2.2
{2 .2
int c,d;
2.2
*a=NULL; /* Must include STDIO.H */
2.2
for (c=0;c<b;c++) {2 .2
d=fgetc(s);
2.2
if (d==EOF)
2.2
return NULL;
2.2
else
2.2
if (d==13)
2.2
return a;
2.2
else
2.2
strncat(a,(char*)&d,1);
2.2
}
2.2
return a;
2.2
}
2.2
Å A hint for Twin from Bj┐rn Fl┐tten Ö When using Twin to edit large
BASIC programs you can easily run out of memory. (Twin complains by
hanging up the computer when called.) This is because of the inconveni
ent way Twin is called from BASIC. Because Twin works on ASCII files,
BASIC has to expand the current program from tokenised form to ASCII.
This copy is placed on top of the BASIC program and is maybe 20-30%
larger than the original. Then Twin is called and makes a new copy of
the program which it places on top of itself. This means that an
unnecessary lot of memory is used.
2.2
One solution is to let Twin run from the address of PAGE. This works
because Twin is not loaded into memory before the BASIC program is
expanded. However, you will have to ensure that the BASIC program is
bigger than Twin, if not, Twin will be loaded over the expanded version
of your program.
2.2
(This unfortunately makes the problem of Twin not releasing some vectors
worse. This means that these vectors will point into the middle of your
BASIC program after exiting from Twin. Use reset after exiting to BASIC
and then OLD, to cure this.)
2.2
Å Problems with (Master) EDIT Ö If you get rubbish when you load up
the EDIT ROM image from the BBC Master into the 6502 emulator, try
loading it with:
2.2
*65arthur
2.2
*GO F800
2.2
*EDIT
2.2
Å From Arthur to BASIC Ö If you are in the Arthur supervisor and you
type *Progname where Progname is a BASIC program, it will run the
program and drop you back out into the supervisor (equivalent to *BASIC
Öchain Progname). However, if you *LOAD Progname, it switches to BASIC,
loads the program and gives you back control with a É>æ prompt Ö
equivalent to *BASIC Öload Progname but shorter to type and certainly
easier than *BASIC followed by LOAD öPrognameò. If you do a *SHOW, you
will see the filetype definitions which make sense of it all.
2.2
Å Sprites and Sprite Commands Ö Paul White-horn writes╔ The Sprite
Editor on the Welcome disc does not work properly being unable to create
masked sprites (those with a transparent back-ground) or to save shades
of colour that have been set up in the various edit modes. For many
board style games this is not an insuperable difficulty and for chess
and checkers, mode 1 creates reasonably detailed sprites in red, yellow,
black and white.
2.2
The simplest way of getting your own sprites from the Welcome disc onto
your game or program disc is to *SNEW to wipe out anything that can be
called a sprite in RAM, *SLOAD (by name or number) your sprite or sprite
file into the machine from the Welcome disc (you donæt need to be in the
Sprite Editor to do this), take out the Welcome disc, insert your game
disc, *MOUNT it and *SSAVE (name) the contents of the machineæs RAM.
Whatever sprites you have in RAM at this point will all go into a file
created and named by the *SSAVE command and will be placed on your own
disc.
2.2
To check that they are all safely installed on your game disc *SNEW
again (to clear RAM) and *SLOAD (name) the sprite(s) you have just
*SSAVEæd on your disc. Now typing *SLIST will bring up a list of ALL the
sprites in RAM which should correspond to the ones you have just
transferred from the Welcome disc. At this point you can rename the
sprites you see listed before you but the syntax for the *SRENAME
command is not as it appears in the User Guide. Type *SRENAME (oldname)
(newname) without commas or other punctuation marks separating the two
names and without any quote marks round the names. This renames sprites
in RAM and if you want these new names preserved on your disc then they
must be *SSAVEæd collectively back to disc and you can save them with a
different file name if you wish.
2.2
*SDELETE (name) deletes a sprite in RAM whereas *DELETE (name) deletes a
sprite (or file of sprites) on disc. Having weeded out sprites you donæt
require with *SDELETE it is best to *SSAVE those you do need (possibly
with a new file name) and *SNEW to clear RAM before proceeding further.
This way you will not have rogue sprites lurking in RAM or in files on
your disc where they may be called by default if they have the same name
or number as the new ones.
2.2
To create files of sprites from different sources you can use *SMERGE
which merges a sprite (or file of same) from disc with those already
installed in RAM. Those coming from disc have priority so if you have
two sprites with the same name or number, the one on the disc will
overpower its namesake in RAM. This command seems a little haphazard on
my 310 especially with sprites which are numbered and occasionally
several tries are needed to make it happen as required.
2.2
If you intend to choose sprites during the course of your game as a
consequence of numerical operations then it is necessary to use numbers
as names so that they can be called with the VDU command. The VDU call
takes variables with a range between 0 and 255 so make sure your sprites
donæt exceed this range.
2.2
*SINFO prints the size of the sprite workspace and *SCOPY (oldname)
(newname) copies the named sprite. *SGET picks up a portion of the
screen as a sprite but for details of this see the User Guide.
2.2
Å EMR SoundSynth + CC ROM podule Ö There has been a problem of a clash
between EMRæs SoundSynth and Computer Conceptsæ ROM/RAM podule in that
after using SoundSynth, the contents of the RAM filing system disap
peared! (Fortunately, I had a recent backup!) EMR have been looking into
the problem and have sorted it out. If you have had the same problem,
return your disc to EMR and they will replace it öin most cases, free of
chargeò.
2.2
Å Loading palette files Ö Here is a simple BASIC program to load a
ö!Paletteò file and set the palette up. The file format really is
simple: 3 bytes are stored for each colour Ö red, green and blue
respectively. This group of 3 bytes is repeated for all 20 colours saved
Ö logical colours 0-15, the border, and mouse colours 1-3.
2.2
10 REM >TestPal
2.2
20 REM ===> To demonstrate reading a
2.2
30 REM ===> Desktop !Palette file
2.2
40 REM By John Smith, September 1988
2.2
50 REM
2.2
60 MODE 12 :REM Any 16-colour mode
2.2
will do.
2.2
70 :
2.2
80 REM Put all 16 colours on screen,
2.2
and a 2-colour mouse pointer.
2.2
90 FOR x%=0 TO 15
2.2
100 GCOL x%
2.2
110 RECTANGLE FILL x%*80,0,80,1023
2.2
120 NEXT
2.2
130 MOUSE ON
2.2
140 *POINTER 1
2.2
150 PRINTTAB(0,0);öNow press a key to
2.2
load the É!Paletteæ fileö
2.2
160 dummy=GET
2.2
170 :
2.2
180 REM Now load the palette file.
2.2
190 handle%=OPENIN ö!Paletteò
2.2
200 REM Do östandardò colours first.
2.2
210 FOR loop%=0 TO 15
2.2
220 COLOUR loop%, BGET#handle%,
2.2
BGET#handle%, BGET#handle%
2.2
230 NEXT
2.2
240 :
2.2
250 REM Screen Border
2.2
260 VDU 19,0,24, BGET#handle%,
2.2
BGET#handle%, BGET#handle%
2.2
270 :
2.2
280 REM Mouse colour 1
2.2
290 MOUSE COLOUR 1, BGET#handle%,
2.2
BGET#handle%, BGET#handle%
2.2
300 MOUSE COLOUR 2, BGET#handle%,
2.2
BGET#handle%, BGET#handle%
2.2
310 MOUSE COLOUR 3, BGET#handle%,
2.2
BGET#handle%, BGET#handle%
2.2
320 CLOSE#handle%
2.2
Å InterWord to ArcWriter Ö if you have InterWord files from BBC days
and want to transfer them to ArcWriter, look in the First Word Plus
hints below where the transfer to FWP is achieved by transferring first
to ArcWriter.
2.2
Å Double-precision to BBC BASIC Ö following on from the floating point
BCD to BBC BASIC conversion program published in Archive 1.11, page 32,
Carl Cepurneek has done a routine which converts from the more efficient
Double-precision reals to BBC BASIC.
2.2
10 REM>Carl - FPU number conversion
2.2
20 REM BBC BASIC V to FPU memory
2.2
30 REM format conversions
2.2
40 REM Packed decimal print routine
2.2
50
2.2
60 REM Carl P.Cepurneek 26 Clyde St
2.2
70 REM Parkside, S.A.5063,Australia
2.2
100
2.2
110 DEFPROCcvt_s(bbc,adr) :REM from
2.2
BBC real at |bbc to FP at adr
2.2
120 LOCAL exp%,sign%,mant%
2.2
130 !adr=0:adr!4=0 :REM clear
2.2
140 IF |bbc=0:!adr=0:ENDPROC
2.2
150 exp%=(bbc?4)-&80 :REM get
2.2
adjusted exponent
2.2
160 IFexp%>0 exp%=exp%+126 ELSE exp%=
2.2
126-ABS(exp%)
2.2
170 !adr=!adr OR exp%<<23:REM set
2.2
exponent bits
2.2
180 sign%=!bbc AND &80000000
2.2
:REM isolate sign bit
2.2
190 !adr=!adr OR sign%:REM set sign bit
2.2
200 mant%=!bbc AND &7FFFFFFF :REM
2.2
clear neg bit if set
2.2
210 !adr=!adr OR mant%>>>8:REM set
2.2
mantissa
2.2
220 ENDPROC
2.2
230
2.2
240 DEFPROCcvt_d(bbc,adr):REM from
2.2
real at address bbc
2.2
250 LOCAL exp%,sign%,mant%
2.2
260 !adr=0:adr!4=0
2.2
270 IF |bbc=0:!adr=0:ENDPROC
2.2
280 exp%=(bbc?4)-&80 :REM get
2.2
adjusted bbc exponent
2.2
290 IF exp%>0 exp%=exp%+1022 ELSE exp%
2.2
=1022-ABS(exp%)
2.2
300 !adr=!adr OR exp%<<20
2.2
310 sign%=!bbc AND &80000000
2.2
:REM isolate sign bit
2.2
320 !adr=!adr OR sign%:REM set sign bit
2.2
330 mant%=!bbc AND &7FFFFFFF
2.2
:REM clear sign bit set
2.2
340 !adr=!adr OR mant%>>>11 :REM set
2.2
mantissa msbits
2.2
350 mant%=mant%<<21 :REM shift over
2.2
low bits
2.2
360 adr!4=adr!4 OR mant% :REM set
2.2
mantissa lsbits
2.2
370 ENDPROC
2.2
380
2.2
390 DEFPROCcvt_e(bbc,adr):REM from
2.2
BBC real at |bbc
2.2
400 LOCAL exp%,sign%,mant%
2.2
410 !adr=0:adr!4=0:adr!8=0 :REM clear
2.2
destination
2.2
420 IF |bbc=0:!adr=0:ENDPROC
2.2
430 exp%=(bbc?4)-&80 :REM get
2.2
adjusted exponent
2.2
440 IFexp%>0 exp%=exp%+16382 ELSE
2.2
exp%=16382-ABS(exp%)
2.2
450 !adr=!adr OR exp% :REM set
2.2
exponent bits
2.2
460 sign%=!bbc AND &80000000
2.2
:REM isolate sign bit
2.2
470 !adr=!adr OR sign%:REM set sign bit
2.2
480 mant%=!bbc OR &80000000 :REM set
2.2
top bit (J)
2.2
490 adr!4=adr!4 OR mant% :REM set
2.2
mantissa
2.2
500 ENDPROC
2.2
510
2.2
520 DEFFNprint_packed(base%)
2.2
530 LOCAL ms%,ms$,es%,es$,m%,s%
2.2
540 @%=&00001
2.2
550 m%=(!base% AND &80000000)>>>31
2.2
560 IF m%=0 ms$=ö+ò ELSE ms$=ö-ò
2.2
570 PRINT ms$;
2.2
580 m%=(!base% AND &F<<8) >>>8
2.2
590 PRINT m%;ö.ò;
2.2
600 FOR s%=4 TO 0 STEP -4
2.2
610 m%=(!base% AND &F<<s%) >>>s%
2.2
620 PRINT m%;
2.2
630 NEXT
2.2
640 FOR w%=4 TO 8 STEP 4
2.2
650 FOR s%=28 TO 0 STEP -4
2.2
660 m%=(w%!base% AND &F<<s%) >>>s%
2.2
670 PRINT m%;
2.2
680 NEXT
2.2
690 NEXT
2.2
700 e%=(!base% AND &40000000)>>>30
2.2
710 IF e%=0 es$=ö+ò ELSE es$=ö-ò
2.2
720 PRINTö Eò;es$;
2.2
730 FOR s%=24 TO 12 STEP -4
2.2
740 m%=(!base% AND &F<<s%) >>>s%
2.2
750 PRINT m%;
2.2
760 NEXT
2.2
770 =öò
2.2
Å Using 40-track drives Ö If you have a 40 track 5.25ö drive as used
on PC clones, you can use it under the PC emulator but, in native
Archimedes ADFS modes you will have problems. To get round it, format
the disc as normal then, when it goes beyond öFormatting 40ò and starts
clicking as it reaches the end of the travel on the head movement, press
<ctrl-break>. The disc is now formatted, but the free space map and
catalogue have not been installed. This can be done with:
2.2
DIM buffer% 3072
2.2
SYSöADFS_DiscOpò,,1,0,buffer%,3072
2.2
SYSöADFS_DiscOpò,,2,1,buffer%,3072
2.2
You try this entirely at your own risk! Ed.
2.2
Å Problems with ON ERROR LOCAL Ö John Smith says he thinks heæs
discovered a problem when using LOCAL ERROR with ON ERROR LOCAL. It
occurs because ON ERROR LOCAL stores the exact position in the program
structure. The User Guide mentions this with respect to REPEAT...UNTIL
and WHILE...ENDWHILE loops, but it also seems to apply to IF..THEN...
ELSE...ENDIF constructs. Once the error handler has done its job,
processing must continue at the same part in the structure in which the
original error happened. For example,
2.2
1000 DEF PROCtest(arg)
2.2
1010 LOCAL ERROR
2.2
1020 ON ERROR LOCAL PRINT öCanæt
2.2
divide by zero Ö try againö
2.2
1030 IF arg < 100 THEN
2.2
1040 INPUT value
2.2
1050 PRINT arg/value
2.2
1060 ENDIF
2.2
1070 ENDPROC
2.2
If a value of zero is input, line 1050 will error. As written, the above
code will then print a warning message and effectively execute a öGOTO
1030ò. At this point, the error handler stack is corrupted. The program
may appear to work without problem, but if any future error should
occur, the program may produce a run-time error something like öAttempt
to exit from badly nested error handlerò or something similar. Occasion
ally, I have even managed to produce the dreaded öAddress Exception
errorò!
2.2
The solution to this problem is quite simple Ö place the code that could
error together with the relevant error handler in a separate PROCedure.
I have not (yet) had any problems doing this:
2.2
1000 DEF PROCtest(arg)
2.2
1030 IF arg < 100 THEN
2.2
1050 PROCprint(arg)
2.2
1060 ENDIF
2.2
1070 ENDPROC
2.2
2000 DEF PROCprint(arg)
2.2
2010 LOCAL ERROR
2.2
2020 ON ERROR LOCAL PRINT öCanæt
2.2
divide by zero Ö try againö
2.2
2040 INPUT value
2.2
2050 PRINT arg/value
2.2
2060 ENDPROC
2.2
First Word Plus Hints & Tips
2.2
Here are a few of the many contributions weæve been sent about First
Word Plus. Weæve got a file of about ten other contributions, so we do
need someone who knows FWP, has a reasonable skill at writing and has a
bit of spare time to field the enquiries, assimilate the hints and tips
and regurgitate something to us each month.
2.2
Å First Word Plus startup Ö If you are getting fed up of starting
First Word Plus and finding yourself in lower case, you could *Configure
Nocaps, but that is a nuisance if you do programming and want to start
up in Shiftcaps. The solution is to extend the boot file, adding
*FX202,48.
2.2
Å LQ850 with sheetfeeder Ö If youære having problems with this
combination, Acorn say that you should edit the printer driver so that
entry 4 (vertical tab) is commented out by pre-fixing it with a ö*ò.
Also, note that if your printer is doing auto-linefeeds, you should also
edit option 1 to remove the line feed value (A) from the line to leave
just the carriage return (D).
2.2
Å Star LC10 Ö (ref. the Help enquiry we had last month) David Francis
says he uses the Epson FX driver successfully with this printer. He has
the dip switches set as follows: 1-1 to 1-8 and 2-1 and 2-4 are all ON
and 2-2 and 2-3 are OFF. The Archimedes is configured to IGNORE 0. With
this setting, the printer prints out the test, including the graphics
part. As set, it also prints under <ctrl-B> as well as with Artisan.
Heæs also tried to change the hex file to get it to work with quadruple
size, but hasnæt succeeded yet.
2.2
Å Printer drivers Ö In designing my own printer drivers for both the
Citizen 120D and Star LC-10 printers, I have not come across the problem
noted, but mine were modified from the Epson LX printer driver. There
was an item on the Letters section (page 128) of Octoberæs issue of the
Micro User referring to an apparently similar problem, which the writer
cured by öcommenting outò line &20 of the printer driver. I must admit
that I cannot understand why this should have any effect, but in case it
benefits other Archive readers, I detail below those elements of the
printer drivers I have set up relating to form or line feeds (refer also
to page 227 of the First Word Plus manual):
2.2
1D, A Ö Linefeed (N.B. carriage return & linefeed)
2.2
1E, C Ö Formfeed (N.B. &C = 12 as mentioned in the article)
2.2
1F, 12 Ö Horizontal initialisation (N.B. appears to cancel condensed)
2.2
20, 1B, 52, 0 Ö Vertical initialisation (N.B. appears to select USA
characters)
2.2
A further possible cause of problems may be to do with the printeræs dip
switches, on page 218 of the First Word Plus manual it does state that:
2.2
Skip over perforation must be DISABLED and Auto linefeed must be
DISABLED
2.2
Å Printer Drivers with extended characters Ö Ted Peat has sent in
various bits for FWP which weæve put on the program disc.
2.2
The printer drivers were written to permit both the Panasonic KXP-1081
and the Diablo-ecs printer to access the same set of extended characters
(those with codes from 160 to 255). The character set of the Archimedes
is also modified to suit.
2.2
The Diablo-ecs printers use a daisy wheel with a double row of charac
ters, giving 192 in all. The usual ASCII set is supplemented by
characters with codes >128. The description given here applies to the
Éscientificæ wheel containing Greek and mathematical symbols. The KXP-
1081 can be switched to emulate the IBM Graphics set, which also
includes some Greek letters and some (but not all) useful mathematical
symbols, again with codes >128. There are also some table-drawing
symbols which are replicated several times over, and accented characters
not needed for this application. Since up to 40 user-defined characters
are possible, these redundant characters can be replaced. This then
offers the opportunity to produce matched sets of symbols for the two
printers and the Archimedes.
2.2
I decided to include the complete Greek alphabet, which involves
duplication of some upper case letters, and (for the KXP-1081 only), one
set of table-drawing symbols. Two other symbols were added: an overline
and backspace. Backspace is entered into the text as a large leftward
pointing arrow-head (stored as character 161), but interpreted by the
printer as a true backspace. One consequence of this, of course, is that
text loses its WYSIWYG property. The advantage, however, is that both
superscripts and subscripts can be attached to the same symbol, and the
overline can be used to write a bar above a character. Since these
peculiar needs are only likely within equations, the loss of on-screen
text formatting is a minor irritation. Another complication was that the
Diablo lost its left margin alignment after a backspace, when printing
in the reverse direction. This option had to be switched off, slowing
the printer down.
2.2
There were two options for changing the Archi-medes character set. One
was to change the Archi-medes font, to match that desired as far as
possible, and then to redefine characters for the few changes needed.
The most useful character set is that described as BFONT on p. 458 of
the User Guide. To access this you need to *Configure Country Master.
The second way: which is the one I adopted was to redefine all charac
ters from 160 to 255. To do this I added a section to the 1st Word +
loading program (Library.1stWord+ on the program disc).
2.2
Once this was done, mapping the new character set to the Diabloæs set
was easy: merely rewrite one of the provided Diablo Printer Drivers (in
the hex dir-ectory) by changing the character translation table which
forms the last part of the printer driver text.
2.2
The KXP-1081 offered more complications. Firstly, it is necessary to
download the redefined character set before loading 1stWordPlus. Another
addition to the loader program, together with a user prompt, took care
of this. Secondly, switching this printer to its IBM Graphics mode
caused comp-lications with graphics printing: all the linefeeds became
doubled! The printer driver codes were therefore expanded so that for
each character the printer was switched into IBM Graphics set, the
character printed, and then switched back to the Epson mode. This sends
seven characters to the printer for every one actually printed. Since
these are only occasional characters, the loss of efficiency is not
important
2.2
Å Printer Driver Generator Ö John Smith has sent in, not another
printer driver, but a printer driver generator program. Heæs given it to
be used as public domain software, so we have put it on Shareware disc
number 2. For best results, copy the PDG program onto a copy of the 1st
Word Plus Utilities disk before running it.
2.2
Å Tabs and underlining Ö This one is for dum-dums like me, writes
David Crofts, who learn word-processing at the finger tip.
2.2
Underlining Ö I spent many happy, but frustrating, hours fiddling with
forms to try to sort out under-lining in intervening spaces, till I
discovered that the hated TAB holds the key! (I expect this is obvious
for lots of people, but hold on to the yawns.) I was used to VIEW where
the TAB key worked öprop-erlyò. (It inserted a TAB character, whatever
that was, but it meant that a change in ruler meant a change in layout.)
In FWP the Indent key does this job, except that it puts in a special
stretch space which is fixed in spite of further ruler alterations.
Because of this I had ignored TAB as useless.
2.2
TAB inserts a set of normal spaces which have to be deleted individually
Ö a nuisance if you are experi-menting with documents. But Ö you can
underline TAB spaces, whereas you canæt underline Indents! And therein
lies the hint!
2.2
By all means use indents to facilitate experi-mentation but, in the end,
TABs are preferable, where you wish subsequently to underline. If you
have used Indents, then all is not lost, though fiddle is the name of
the game. Turn off Insert, and turn on Underline (f2), then fill in the
spaces with Fixed Space (f10). Then use the mouse or keyboard to
underline the words.
2.2
e.g. Say you have a form, the head of which is:
2.2
Name Address Telephone
2.2
the above is the result using Indent, but using TAB you will achieve:
2.2
Name╩╩╩╩╩╩Address╩╩╩╩╩╩Telephone╩╩╩╩╩
2.2
Placing a TAB at the appropriate point near the end of the ruler allows
the line to be printed to the same length on each line.
2.2
Å InterWord to FWP via ArcWriter Ö This is how Ian Barnes achieves the
transfer:
2.2
1. Transfer file from IW to AW_DOC directory
2.2
2. Run ArcWriter
2.2
3. Press <select> for filing menu
2.2
4. Highlight file x
2.2
5. Press <menu>, select import, flowing, return
2.2
6. Press <select> for filing menu
2.2
7. Press <menu> and select export plus new name
2.2
8. Transfer file to 1WP.doc directory
2.2
9. Run 1WP and open file
2.2
10. Select WPmode from edit menu
2.2
11. Tidy up text by deleting control characters, changing any odd
letters and inserting returns at line ends to leave a presentable result
2.2
Å Files from ArcWriter Ö The article by Brian Carroll in Julyæs issue
of Archive under the heading of öFirst Word Plus Notesò (pages 21-23)
was very useful together with the program ConvertWP (also on that
monthæs Magazine disc). Although designed to convert Wordwise Plus
files, the program works quite well with ArcWriter as well. Briefly the
procedure to convert ArcWriter files into First Word Plus is as follows:
2.2
1. From the ÉFilingæ menu in ArcWriter select the ÉExportæ option to
save the file (e.g. under the name ötestARCò) and then exit from
ArcWriter.
2.2
2. Load the ConvertWP program and enter the appropriate Source
(ötestARCò) and Destination (e.g. ötest1WPò) filenames.
2.2
3. Load First Word Plus and then the converted file (ötest1WPò).
2.2
4. Select ÉWPmode onæ from the Edit menu.
2.2
5. Reformat the whole text by using the Style menu to ÉReformatæ the
ÉWhole documentæ.
2.2
Odd words may sometimes get missed out of the converted text, possibly
due to the fact that this data was preceded by ötabsò in ArcWriter.
2.2