home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1997
/
ARCHIVE_97.iso
/
text
/
hints
/
vol_02
/
issue_10
< prev
next >
Wrap
Text File
|
1995-02-16
|
34KB
|
927 lines
Å Partitioning hard drives Ö It is possible to partition hard drives
with less than 10 Mbyte. The answer is in the REM statements in the
Harddisc program on the PC disc. Change the A2080 in line 610 to any
multiple of &8800 (in hex). Details are given in the REMs.
Å Hearsay Ö We mentioned changing modem baud rates in H & T in May.
Philip Green sends us a way of doing this automatically suggested by
Alfons Tjin. Use a dial prefix in the modem driver edit screen of just
öATò and then put B3D or B0D, as necessary, in front of the phone number
in the telephone directory.
Å Case sensitive system variables Ö Some readers have had problems
using the *SETMACRO Alias$ command. This is because system variables are
case sensitive i.e. you need to type: Alias$ not ALIAS$
Å Overload passwords: A B BROS, CABBAGED, SLIPPERS, PREVIOUS,
PILLAGED, BOVERBOD, LAVATORY, CASSETTE, WHALE╩FM, EXTRACTS, STOPKETS
The following hints were sent in by Lorcan Mongey
Å ÉTæ Option in LDR and STR Ö Assembly language programmers may have
noticed that the Programmeræs Reference Manual mentions a ÉTæ option in
the description of the LDR and STR com-mands (page 608), but neglects to
say what it does. It is, in fact, used for setting the write-back option
and has exactly the same effect as É!æ. Note that the *MEMORYI disassem
bler always disassembles pre-indexed write-back with É!æ and post-
indexed write-back with ÉTæ, although you may use either form when
assembling. Bear in mind that post-indexed write-back always takes
place, regardless of the state of the write-back flag.
2.10
Å Bit patterns for LDR and STR Ö There is an omission in Appendix C of
the öARM Assembly Language programmingò book published by Com-puter
Concepts. Appendix C gives the bit patterns of the ARM instruction set,
but does not describe the ÉLæ bit of the ÉSingle Data transferæ
instruction. This is the Load/Store bit: 0=store (STR), 1=load (LDR).
2.10
This description also applies to the ÉBlock data transferæ instructions
(STM and LDM).
2.10
Å BASIC restrictions Ö In BASIC II on the BBC B (and IV on the Master)
there were a number of restrictions which no longer apply to BASIC V on
the Archimedes, but have not been specifically mentioned in the
Archimedes User Guide. They are worth noting because they have probably
become ingrained in BBC B users who may not have realised that they have
been lifted.
2.10
1) You can now change MODE inside a procedure or function. This is
because the screen RAM is now completely separate from the program area.
2.10
2) The nesting limits of FOR, REPEAT and GOSUB (10, 20 and 26 respec
tively) no longer apply. Instead of a fixed limit, you can now nest
loops until you run out of RAM. I have successfully nested loops 15,000
deep and run a recursive procedure 30,000 levels deep! Strangely,
nesting GOSUBs too deeply is not trapped and will corrupt your program,
but this situation is unlikely to happen in practice.
2.10
Å BASIC errors Ö I have found four BASIC errors not listed in the User
Guide (Issue 2). They are:
2.10
11 No room for this dimension Ö An attempt was made to dimension an
array for which there was insufficient space.
2.10
25 Bad MODE Ö An attempt was made to select a screen mode for which
there is insufficient memory. More memory can be allocated by *CONFIGURE
SCREENSIZE.
2.10
37 No room for function/procedure call Ö An attempt was made to Énestæ
too many function and/or procedure calls.
2.10
44 Too many nested structures Ö An attempt was made to Énestæ too many
FOR...NEXT, REPEAT...UNTIL and/or WHILE... ENDWHILE loops.
2.10
Note that 11 and 44 are covered in the Archimedes 400 series BBC BASIC
Guide.
2.10
Å Using FORTRAN 77 Ö The article on using FORTRAN 77 in Archive 1.7
included a sample subroutine showing how to access graphics from
FORTRAN. There are a number of problems with this subroutine. It canæt
cope with negative graphics coordinates (needed after an origin shift),
it sends a line feed to the screen when it is used, which can cause your
graphics to scroll upwards, and it uses an output channel which should
be kept free for file access. The following solves all the problems:
2.10
SUBROUTINE PLOT(K,X,Y)
2.10
INTEGER X,Y I1=IAND(X,?IFF)
2.10
I2=ISHFT(IAND(X,?IFF00),-8)
2.10
J1=IAND(Y,?IFF)
2.10
J2=ISHFT(IAND(Y,?IFF00),-8)
2.10
PRINT 100,CHAR(25),CHAR(K),CHAR(I1),
2.10
CHAR(I2),CHAR(J1),CHAR(J2)
2.10
RETURN
2.10
100 FORMAT (6A1$)
2.10
END
2.10
This method masks out the unwanted bits and shifts the data into the
l.s.b., thus preserving the sign. It uses PRINT instead of WRITE,
avoiding the need for a channel number. The $ at the end of the FORMAT
statement suppresses the line feed. (No criticism of the original
authors is intended; my first attempt looked very similar!)
2.10
Included on this monthæs program disc is Graph_ FOR, the FORTRAN source
of a set of graphics subroutines which provide a full set of VDU calls.
Some, like BELL for instance, are trivial, but others are more
complicated.
2.10
Å Printer conventions Ö Many people seem to have difficulty with
setting up the correct linefeed or non-linefeed for their printers for
different app-lications, so I.J. King has tried to explain it for us╔
2.10
How the Archimedes deals with varying printer standards Ö Since there
are two standards for printers, the Archimedes has a mechanism to allow
it to cope with both. The standards in question affect the way the paper
is fed through the mechanism and there are two possible cases:
2.10
A. Auto Linefeed: every time the printer receives a carriage return
character (code 13), it generates a line feed (code 10) to move the
paper up a line.
2.10
B. Non-Auto Linefeed: the printer does not gener-ate its own linefeed
characters but relies on the com-puter to send a linefeed after every
carriage return.
2.10
Most modern printers will actually have a switch to select either of
these modes, allowing them to be compatible with most computers, but
this is likely to be difficult to reach. The Archimedes will (in the
case of virtually all software) send a line feed after every carriage
return. To allow compatibility with printers in mode (A) above, it is
possible to tell the machine to ignore a particular code when sent to
the printer. By setting this to 10 (the code for line feed), no line
feeds will be sent to the printer and you are compatible with type (A)
printers.
2.10
This code is set up using the *IGNORE command, for example:
2.10
*IGNORE 10
2.10
To disable the trap altogether, simply enter *IGNORE on its own. Either
of these may be preceded by CONFIGURE to make the effect permanent, e.g.
2.10
*CONFIGURE IGNORE 10
2.10
The Archimedes is set up with a factory default ignore code of 10,
making the system compatible with type (A) printers when it arrives.
2.10
Problems arising when the protocol is ignored Ö The above should make
everything seem fairly simple and indeed it ought to be. However, some
software houses, notably GST and Grafox (i.e. First Word Plus and
Logistix) have chosen to ignore the sensible protocols described above
and override the *IGNORE status in such a way that they are only
compatible with type (B) printers, regardless of the setting of *IGNORE.
2.10
This means that the hapless user will have been forced to configure his
printer to be type (B) but will not have re-configured his Archimedes
since the software will override the settings and work anyway. They then
go out and purchase a correctly written package, such as System
DeltaPlus etc, and the result is a type (B) printer (generating no line
feeds) on a machine configured for a type (A) printer (and so sending no
line feeds) which results in no line feeds at all and the text all comes
out on the same line.
2.10
A subsidiary problem occurs in some cases, when reconfiguring the
Archimedes to work with type (B) printers, as is necessary if you wish
to use both First Word Plus/Logistix and other, correctly written,
software. The correct way to do this is to enter the command *CONFIGURE
IGNORE with no parameters, completely disabling the printer trap. It is
not correct to enter *CONFIGURE IGNORE 0 as this prevents code 0 from
being sent to the printer and may corrupt some graphics/font change
sequences used by certain software.
2.10
Conclusions Ö If you are using any package which overrides the Acorn
protocols for printer compatibility in the way described above and also
wish to use correctly written software (in my case, I use both Logistix
and System DeltaPlus), you should take the following steps:
2.10
1. Set your printer so that Auto Linefeed is OFF (usually a DIP switch).
2.10
2. Enter *CONFIGURE IGNORE
2.10
3. Press <ctrl-break> to reconfigure your machine.
2.10
This now only leaves us with one question Ö why are Acornsoft apparently
condoning this system of forcing the user to have a printer type
different from that for which the machine is configured by default?!
2.10
Å PC Emulator Star Commands (Response to query in Archive 2.5 p5) Ö
There is no need for a *Configure Floppies command from the PC emul-ator
when copying from one 3.5ö disc to another. You must understand the
distinction between log-ical and physical drives: logical drives are
known to the emulator as A, B, C, etc, and are mapped onto the physical
drives 0, 1, etc. It is possible to have more than one logical drive
assigned the same phys-ical drive. This is what happens when you have
your Archimedes configured for one floppy Ö the emul-ator maps logical
drives A and B onto physical drive 0 and, recognising this when you copy
from A to B, prompts for a disc change. If you have two floppies, the
emulator maps A and B onto 0 and 1 respect-ively. I use an external
5.25ò 40/80 track drive on my Archimedes and my config.sys file, listed
below, illustrates the way around the problem.
2.10
device=driver.sys /d:0 /t:80 /f:2
2.10
device=driver.sys /d:1 /t:80 /f:2
2.10
device=driver.sys /d:1 /t:40 /f:0
2.10
device=driver.sys /d:1 /t:40 /f:0
2.10
files=20
2.10
buffers=10
2.10
The first four lines assign more logical drives (which the emulator
gives the letters C, D, E and F) to the physical drives 0 and 1. The
meaning of the parameters is:
2.10
/d: physical drive number
2.10
(0 for internal, 1 for external)
2.10
/t: number of tracks on disc
2.10
(80 for 720k and 40 for 360k)
2.10
/f: disc format
2.10
(2 means 720k, 0 means 360k)
2.10
The first line assigns logical drive C to physical drive 0. You can now
copy from 3.5ö to 3.5ò by using Écopy a:x.dat c:æ and DOS will prompt
for a disc change. The second line maps logical drive D to physical
drive 1, enabling copying between 5.25ö 80-track floppies (copy b:x.dat
d:). The last two lines assign two 40-track drives (E and F) to physical
drive 1, allowing copying between 40-track 5.25ò discs (copy e:x.dat f:)
in the same way.
2.10
You should be aware that loading all these device drivers will use up
some application workspace, leaving less for programs, so only install
them when you need them!
2.10
Å Three SWIs which are not mentioned in the Programmeræs Reference
Manual (Issue 1):
2.10
OS_AddToVector &47
2.10
OS_WriteEnv &48
2.10
WaveSynth_Load &40300
2.10
(WaveSynth_Load was mentioned but not ident-ified in Archive 1.8, p9)
2.10
Also, there is one SWI which seems to have been mis-spelled in the
Arthur 1.20 ROMs, namely:
2.10
Sound_QSDispatch &401C4
2.10
The ÉSæ between Q and Dispatch shouldnæt be there. If you refer to SWIs
by name rather than number then you must mis-spell this one in the same
way otherwise it wonæt be recognised!
2.10
Å Infinite energy for ThunderMonk Ö J.R. Donaldson sent in this
program, which will alter your ThunderMonk disk to give you infinite
energy.
2.10
10 REM > Thun_Cheat
2.10
20 REM Joe Pineapples Ö Cool Assassin
2.10
30
2.10
40 DIM sector% &400
2.10
50
2.10
60 MODE 0
2.10
70 PRINT öPlease insert ThunderMonk
2.10
disc and press a key.ö
2.10
80 G = GET
2.10
90
2.10
100 PRINT ÉöNow loading relevant
2.10
sectoröÉ
2.10
110
2.10
120 SYS öADFS_DiscOpò,, 1, &C6400,
2.10
sector%, &400
2.10
130
2.10
140 PRINT öDo you want to play
2.10
(C)heat or Normal ?ö
2.10
150 G = GET
2.10
160
2.10
170 IF G=ASC(öCò) OR G=ASC(öcò) THEN
2.10
180 sector%!&388 = &E59C0044
2.10
190 sector%!&38C = &E28000FE
2.10
200 sector%!&390 = &E58C0044
2.10
210 ELSE
2.10
220 sector%!&388 = &059C0044
2.10
230 sector%!&38C = &02400001
2.10
240 sector%!&390 = &058C0044
2.10
250 ENDIF
2.10
260
2.10
270 PRINT ÉöNow saving relevant
2.10
sectoröÉ
2.10
280
2.10
290 SYS öADFS_DiscOpò,, 2, &C6400,
2.10
sector%, &400
2.10
300
2.10
310 PRINT öChange complete. Now use
2.10
disc as normal.ö
2.10
320 END
2.10
Å Thunder Monk passwords Ö the Thunder Monk passwords change from disc
to disc (or do they change from month to month? Ed), but they can be
found at address &4E400. Just find your level two password in the list
below and next two words will be used for levels three and four e.g. our
level two password is STEVES so the passwords for the next levels are
BIRTHDAY and MIDSUMMER.
2.10
SHIRT JUMPER WELLIES Y-FRONTS LOVERS HEARTS CUPID VALENTINE DANIEL AND
SIMONS BIRTHDAY JOKES SHOWERS FOOL SPRING POLE EXAMS SUNNY STUDY STEVES
BIRTHDAY MIDSUMMER WARMER HOLIDAYS MAJORCA SUNHAT HOTTER RESULTS FAILED
PASSED PISSUP SCORCHER RESTART SUNBURN ARCHIE SPOOK SHIVER HALLOWEEN
COOLING BONFIRE WEEEEEE FIREWORKS CHILLY CHRISTMAS HOLLY PRESENTS MERRY!
2.10
(Dæyou get the significance of the passwords?? Ed.)
2.10
Å View to FWP Ö When using the utility provided with First Word Plus
to convert View files, Robert Leon noted that the left margin default
(in the Print File dialogue window) should be changed to 4, otherwise
the file is not printed properly.
2.10
Å Using 1st Mail for multi-column printouts Ö David Scott Ö Text which
is to be printed in more than one column is first prepared with First
Word Plus and it is at this stage that preparations must be made for the
print format. The text format must suit the final required column width
otherwise First Mail will ignore the instructions to print out in multi
columns.
2.10
An example will show how to lay out the text. Suppose that you require
two columns each 31 characters wide set side by side on a 65 character
wide sheet. This will be possible as it allows 3 characters for the
central white column since
2.10
31 + 3 + 31 = 65
2.10
The text must be prepared using a line length of 31 characters. The page
markings in First Word Plus will show final page 1 column 1 as page 1,
final page 1 column 2 as page 2, final page 2 column 1 as page 3 and so
on.
2.10
When the text has been fully prepared enter First Mail and follow the
instructions given on pages 196 and 197 of the manual. The number of
columns must be set to 2 in this example.
2.10
Å Another possible bug in First Mail Ö David Leckie Ö When using First
Word Plus with the ruler set to double line spacing, continuous text,
i.e. no returns are double spaced but text followed with a return is not
double spaced as you would expect.
2.10
However when a First Mail mail-merge is done from the file, the mrg file
contains double spaced text where there was single spaced text in the
original doc. Thus if you want, say, your address lines to be double
spaced then they should be a RETURN between each line in the doc file
only if you are not going to do a First Mail mail merge. If you are
doing a mail merge then they should be single spaced i.e. no RETURNS
because after the mail merge double line spacing will be inserted! Very
funny!
2.10
Å öMemallocò module Ö John Fidler was playing with the !Lander program
in RISC-OS when he realised that it should not have run with the
configuration settings on his machine. He looked in the !Lander
directory (by clicking on the icon in the directory viewer while holding
the <shift> key) and found the Memalloc module.
2.10
This module provides nine new star commands, which allow you to check
and alter the size of various memory pools i.e. system heap, RMA, screen
area, sprite area and font cache.
2.10
==> Help on keyword MemAlloc
2.10
Module is: MemAlloc util 0.11 (06 Dec 1988)
2.10
Commands provided:
2.10
SystemSize RMASize ScreenSize SpriteSize FontSize
2.10
RAMFSSize RMAFree SpriteFree FontFree
2.10
Å Desktop ScreenSize configuration Ö When using the desktop, the
memory allocated to the screen area is regulated by the desktop screen
mode and not the configuration setting e.g. if you are in mode 12 then
the screen area will have 80k allocated to it (or 96k for the 400
series).
2.10
Å Desktop startup commands Ö When starting the desktop using *Desktop,
you can make the Archimedes run a file or perform a star command. This
facility could be used to start the desktop up in a predefined state.
2.10
==> Help on keyword Desktop
2.10
*Desktop starts up any dormant Wimp modules, and also passes an optional
2.10
*command or file of *commands to Wimp_StartTask.
2.10
Syntax: *Desktop [<*command> | -File <filename>]
2.10
Å Converting ArcTerm 6.01 to RISC-OS Ö Arc-Term 6.01 will work under
RISC-OS if you make a !Run file in the !ArcTerm application directory:
2.10
RMEnsure InternationalKeyboard 0.17
2.10
RMReInit InternationalKeyboard
2.10
DIR <Obey$Dir>.!ArcTerm
2.10
Run ArcTerm
2.10
Å Extra Options for the Copy Command Ö The new User Guide (page 208)
lists a number of new options for the Copy command which considerably
extend its usefulness. The L and N options are par-ticularly useful for
performing backups from hard disc to floppy disc. Thus the command:
2.10
*Copy HD::$.A.* FL::$.* ~CFQR
2.10
will make a quick backup, without confirmation, of all the files and
subdirectories in directory A of the hard disc named HD onto the floppy
disc named FL. If however the option N is also added then only the files
which have changed since the last backup will be copied, thus reducing
the backup time consider-ably. If the L option is also added then even
more time is saved as the directories of both source and destination
disks are checked before any attempt is made to load the files
themselves.
2.10
If suitable Copy commands are added to the end of an application !Run
file then an automatic backup of changed files can be made when you have
finished using the application. In this case it is vital to quote the
name of the required backup floppy disc so that a request to load it can
be given if it is not already in the drive.
2.10
Å RISC-OS RS423 Ö Richard House says that using RISC-OS he can now
communicate with his BBC Model B at 19200 baud, without any errors
(whereas under Arthur 1.2, even with the patch, he was limited to 9600
baud).
2.10
Å Diagram II using RAMdisc Ö Load the file öSetupò and change the ö8ò
in lines 10045, 10750, 10765, 10805 and 11325 to ö23ò. This will cause
it to access the ram-disk (assuming you copied Diagram II over to the
ram-disk) thereby running much faster during scrolling and saving wear
and tear on your floppy or hard disk. (J.Daniels of Pineapple Software)
2.10
Å MIDI !Maestro Ö One reader says that there is an undocumented
facility in the !Maestro application which can play a MIDI instrument if
the MIDI podule is fitted.
2.10
Å Typing control characters Ö If you wish to use a önon-keyboardò
character under RISC-OS, just hold down the <ALT> key and type in the
character number on the keypad.
2.10
Å RMReInit SpriteUtils Ö Many applications unplug modules and
reinitialise them later. Often, under RISC-OS, the SpriteUtils module
does not get reinitialised. If you have any problems loading sprites or
get the öSWI not knownò error, you can check whether your modules have
been reinitialised properly by typing *ROMModules.
2.10
One reader says that ÉPacmaniaæ can be cured of this by adding the
following line to the !BOOT file:
2.10
935 *RMReInit SpriteUtils
2.10
Å Multi-Tasking Ö How many tasks can RISC-OS run simultaneously? The
manual doesnæt say, so I decided to find out by loading multiple copies
of the desktop clock. When I tried to load the 29th clock I got an error
message öToo many tasksò, making the upper limit 28.
2.10
Å Leaving the Desktop from a Command File Ö David Scott Ö The answer
to my own previous help query is actually quite simple when you know
how! The last command in the file, which must be an obey file, (it does
not work with an exec file) must be:
2.10
*fx138,0,252
2.10
which simulates pressing <control-shift-f12>.
2.10
Å Space for large applications Ö The methods used by Acorn and other
suppliers of application software to load their applications which
require a lot of space, seem to be both devious and, in many cases,
ineffective since they result in less space being available for the
application than under Arthur 1.2.
2.10
The method illustrated below allows over 300k of data space in Logistix
or over 600k of memory with the PC Emulator on a 1Mbyte machine. The
technique is a three stage process and is illustrated for Logistix.
2.10
Note that the machine will have to be reset after using the application
in order to restore all the normal modules and their facilities.
2.10
Note also that the amount of free space will vary depending on the
configuration settings. In my case, these are 80k for the screen (Mode
12) and 0K for System sprites, font cache and RAM FS.
2.10
If you use Econet then the modules NetFS, NetPrint, BBCEconet, NetFiler
and NetStatus should also be killed in Stage 2. If you do not use Econet
then you will gain marginally more space for all applications by
*Unplugging these modules as I have done.
2.10
Stage 1 Ö Set up the standard !Run file for the application so that it
sets a function key to execute the stage 2 file after quitting the
desktop.
2.10
| >$.!Logistix.!Run
2.10
IconSprites <Obey$Dir>.!Sprites
2.10
Key1 Quit|MDir $|MExec $.!Logistix.Lgx1|M
2.10
Fx138,0,252
2.10
Fx138,0,129
2.10
Stage 2 Ö This file must be an command file (not Obey). It clears the
temporary modules and then kills all the unwanted modules. A function
key is then set up to execute Stage 3 and the file ends by recovering
the freed space using the RMTidy com-mand which must be the last command
in the file.
2.10
| >$.!Logistix.Lgx1
2.10
RMClear
2.10
RMKill Debugger
2.10
RMKill Desktop
2.10
RMKill WindowManager
2.10
RMKill FontManager
2.10
RMKill InternationalKeyboard
2.10
RMKill SoundScheduler
2.10
RMKill StringLib
2.10
RMKill Percussion
2.10
RMKill SpriteExtend
2.10
RMKill Draw
2.10
RMKill Hourglass
2.10
RMKill Podule
2.10
Key 1 *Obey $.!Logistix.Lgx2|M
2.10
FX138 0 129
2.10
RMTidy
2.10
Stage 3 Ö This Obey file sets the current directory (it was cleared by
the radical effects of RMtidy) and then loads the Floating point
emulator and Logistix directly. The final line is an optional backup
command which automatically backs the new and changed data files up to a
floppy disc (named S1 in this case).
2.10
| >$.!Logistix.Lgx2
2.10
Dir $.!Logistix
2.10
RMLoad $.!System.Modules.
2.10
FPEmulator
2.10
Lgx
2.10
COPY :DJS.!Logistix.Sheet.* :S1.*
2.10
~CFLNQ
2.10
PC Emulator Ö The method is similar for stages 1 and 2 except the
following additional modules can be killed in stage 2: SystemDevices,
TaskManager, PaletteUtil, Filer, ADFSFiler, RAMFSFiler, ShellCLI and
RamFS. Stage 3 is not required as the line which sets the function key
termination command is:
2.10
Key 1 PC.Emulate|M
2.10
which enters the PC Emulator directly. Note that the PC directory must
be in the root and must be called PC otherwise the Emulator fails during
loading.
2.10
Å Getting First Word Plus started Ö further to the comments on page
20/21, last month, it is not a good idea to use *MOUNT as First Word
Plus will then not allow you to change discs, *DRIVE should be used and
this works fine. My machine is configured to boot with the external
drive selected, which usually holds a ölibrary discò, which is how I
discovered the problem. First Word Plus now boots happily under RISC-OS,
including an amended version of the key press module which traps <ctrl-
f12> to provide a command line similar to that on the desk top Ö i.e.
scrolling up from the bottom of the screen. (Weæll try to get hold of
this for the monthly disc. Ed.)
2.10
Å First Word Plus from the RISC-OS desktop Ö create the following run
file:
2.10
!Run
2.10
| !Run for !First Word Plus+ version 0.01
2.10
IconSprites <Obey$Dir>.!Sprites
2.10
WimpSlot -min 400k
2.10
set FirstWordPlus$Resources $.Resources.1wp.
2.10
set FirstWordPlus$Docs &.1wp.
2.10
echo<5><23><17><7><6><8><0><8><0>
2.10
<0><0><0><0>
2.10
run ö<FirstWordPlus$Resources>1wpò
2.10
Å First Mail under RISC-OS Ö David Leckie Ö While First Word Plus has
drawn a lot of comment, very little mention has been made First Mail,
the mail merge program that accompanies it.
2.10
When run under RISC-OS the main window will not resize. Now this may not
seem like much of a problem but the trouble is that the printer window
is hidden under the main window and cannot be easily accessed.
2.10
Fortunately the corners of the window are just visible and can be
clicked on. The printer driver window pops up when clicked on ok, but
while the destination printer window can be clicked on, the name of the
selected destination printer is still hidden. This problem is compounded
by the last line of the 1st paragraph on page 154 of the manual being
wrong. öThe four options Parallel Port, Serial Port, Network Port and
Disc will appear in rotation.
2.10
They do not rotate in the order above. Parallel Port is the first and
Disk is the third not fourth but which is network and serial? Can
someone with Arthur please tell us?
2.10
Thus, if you want to do a merge to parallel printer it works fine. For
disc, point to the corner of the window and give 2 clicks (not 3). If
you need serial or network, try 1 or 3 clicks.
2.10
Thanks to Mark Burch who helped to crack the problem.
2.10
Å Installing Artisan Ö Sean Kelly Ö There are three tips: the first is
on getting Artisan to return control to the desktop without resetting
the system; the second is on putting Artisan in any chosen directory;
the third is not strictly related to RISC-OS, but is on persuading
Artisan to work with compressed screens.
2.10
Returning to the desktop Ö When Artisan is installed as described on the
RISC-OS support disc, it does not return correctly to the desktop. The
following modification was made to the program on my A440, and works
perfectly:
2.10
1. Load program ART5 and, using the BASIC EDITOR, find the line: öDEF
PROCLARò
2.10
2. The next line should be a multi-statement line containing in-line
assembly code. If so, you have found the correct routine. Delete
everything on this line except for the first three statements and then
add ö:QUITò so that the new line reads:
2.10
MODE12:OSCLIöFX4ò:OSCLIöUPò:QUIT
2.10
3. Rename the old ART5 (in case you have made a mistake) and save the
new version as ART5.
2.10
This new version returns to the desktop, in the same condition as when
Artisan was called, when you quit Artisan.
2.10
Altering the directory structure Ö When installed using the hard disc
install program, Artisan insists on living in a directory called
:4.$.Artisan. This can be changed Ö the following details relate to my
chosen directory of :4.$.APPS.!ARTISAN.
2.10
1. !RUN should be altered from the support disc version. The new version
is:
2.10
ECHO <22><&8C>
2.10
WIMPSLOT -MIN 200k
2.10
DIR :4.$.APPS.!ARTISAN *** put your own directory here ***
2.10
URD @ BASIC ART4
2.10
In my case, the pathname of !RUN is ö:4.$.APPS. !ARTISAN.!RUNò. Before
changing !RUN, re-name the old one in case of accident.
2.10
2. Alter ART5 using the Basic Editor. Several lines need changing; in
each case the change consists of altering the given directory to point
to your new directory. The lines that need altering can be found by
searching for the following strings using the editor (they are all
unambiguous, but the case of each letter is crucial):
2.10
cLare%=FALSE:
2.10
A%=cLARESMI
2.10
WHEN12:OSCLI
2.10
WHEN1:OSCLIöLOAD
2.10
OSCLIöCDIR
2.10
OSCLIöDIR ò+ClA$+
2.10
Preserve the old ART5 in case of problems.
2.10
Å Adapting Artisan for Compressed Screens Ö I use a modified version
of the screen compression routine originally published in Personal
Computer World magazine. It uses the commands *CSCREENLOAD and
*CSCREENSAVE to load and save compressed screens, and compressed screens
are given the filetype &010. The adaptation below will work equally well
with other com-pression routines with the proviso that the compressed
screen loading routine must recog-nize and correctly deal with normally
saved screens (filetype &FF9).
2.10
1. Load ART5 and modify it using the BASIC Editor (first rename ART5, in
case of errors). Immediately after the REM statements at the start of
the program, add these two lines (substituting your own compressed
screen save and load commands):
2.10
*SET Alias$SCREENSAVE CSCREENSAVE %0
2.10
*SET Alias$SCREENLOAD CSCREENLOAD %0
2.10
Substitute the names of your own commands for CSCREENSAVE and
CSCREENLOAD.
2.10
2. Find DEFPROCcLaRESM with the editor. Look about 14 lines down and
there will be a line beginning with WHEN&FF9. Four lines further down
should be a line beginning with ENDIF. Add two new lines after this
ENDIF line (substituting your own compressed screen filetype):
2.10
WHEN &010
2.10
RES%=3:mIC%=ReSM%:ReSM%+=1:cLarESM%=7
2.10
3. Find DEFPROCPS with the editor. Look about seventeen lines down and
there will be a line beginning with WHEN&FF9. Six lines further down
should be a line beginning with ENDIF. Add two new lines after this
ENDIF line (substituting your own compressed screen filetype):
2.10
WHEN &010
2.10
PROCGw(laRES%): clArES%=4
2.10
The modified version of ART5 will correctly handle compressed and
uncompressed screens for loading, and will normally save screens in
compressed form.
2.10
Å RISC-OS Postscript Printer Drivers Ö One of our readers can only use
a laser printer from an Apple Mac, but wanted to obtain good quality
images of the documents that he produced in !Draw and !Edit. In order to
do this he redirected the output of the !PrinterPS to a file and
Éportedæ the file across to the Mac. The reason why this works is
because the output of !PrinterPS application is straight ASCII Post
script text, so in theory, the resulting file could be used by any
Postscript set up.
2.10
Å Configuring !PrinterDM Ö some readers have had problems outputting
to their dot matrix printers. This might be because the !PrinterDM
application must be configured for the printer you are using. This can
be done by clicking, with <select>, on the printer icon (once installed)
and then clicking on the printer name that appears in a window, until
the name of your printer appears. Then select the öSave Choiceò option
on the !PrinterDM menu. The printers that !PrinterDM supports are: Epson
FX, LQ, and LQ-850 compatibles and the NEC Pin-Writer P6 plus.
2.10
Å RISC-OS multisync text scaling solution! Ö Richard Averill Ö If you
turn back to Archive 2.9 p14, you will see the problem of text scaling
in multisync modes raised. Having also experienced this problem, I tried
to solve it.
2.10
Firstly, I tried using the output to sprites feature to modify this.
Since this did not alter the size of the font at all, I then tried a
more interesting method. I knew that the standard vdu 5 font size was
8x8 pixels, so I ran the following program to tell me which locations in
the operating systemæs workspace (&0000-&7FFF) contained the value 8.
2.10
10 REM > $.TextSize.Find8
2.10
20 REM (C) Richard Averill, 1989.
2.10
30 FOR I%=0 TO &7FFC STEP 4
2.10
40 IF !I%=8 THEN PRINT ~I%;
2.10
50 NEXT
2.10
I then had a list of locations, so I set vdu 5 mode and *Memoryæed each
of the locations to have a closer look. Storing 16 in the second
location (&1360) caused the x text size to be doubled! There were 3 more
8És consecutively after this value, so after a little testing I came to
the conclusion shown by the following table:
2.10
Address Contents
2.10
&1360 x size
2.10
&1364 y size
2.10
&1368 x spacing
2.10
&136C y spacing
2.10
All values are given in pixels, so by default these are 8,8,8,8. The
WIMP manager changes the x and y values according to the x and y Éeigæ
factors read by swi OS_ReadModeVariable detailed in OS1.2 PRM pages
124Ö126. Note that the values need not be multiples of 8, but the
characters will look rather odd otherwise!
2.10
The following procedure will enable you to set the text size and
spacing. The syntax is PROCtextsize(x size, y size, x spacing, y
spacing).
2.10
10000 DEF PROCtextsize(x%,y%,sx%
2.10
,sy%)
2.10
10010 !&1360=x%
2.10
10020 !&1364=y%
2.10
10030 !&1368=sx%
2.10
10040 !&136C=sy%
2.10
10050 ENDPROC
2.10
For example, PROCtextsize(16,8,16,8) will give you double width text
when in VDU 5 mode. This will be square in mode 12 etc. and of a
rectangular shape in mode 20 etc. The text spacing will usually be the
same as the text size.
2.10
To set the default text size from the RISC-OS desktop (the answer to the
query,) run the following program (which is in the ö$.TextSizeò
directory of the monthly disc) from within the desktop, and it will
redraw the whole screen to enable the new size to take effect.
2.10
10 REM > $.TextSize.SetSize
2.10
20 REM (C) Richard Averill, 1989.
2.10
30 REM restores default text size and spacing in the RISC-OS desktop.
2.10
40
2.10
50 !&1360=8
2.10
60 !&1364=8
2.10
70 !&1368=8
2.10
80 !&136C=8
2.10
90 SYS öWimp_Initialiseò,200,
2.10
&4B534154 TO task%
2.10
100 SYS öWimp_ForceRedrawò,-1,0,0,
2.10
&FFFF,&FFFF
2.10
110 SYS öWimp_CloseDownò,task%,
2.10
&4B534154
2.10
120 QUIT
2.10
This will set the text size to 8 pixels, the same as under the Arthur
WIMP manager. So if you have a high resolution monochrome, the text will
become four times smaller in each direction than normal!
2.10
Unfortunately, there is a slight problem. The RISC-OS WIMP assumes
scaling will be done to ensure that the size of the text is always 16x32
OS units and uses these values when calculating text widths/heights
instead of finding the sizes from the operating system. So any verti
cally centred text (such as window titles) will not be centred properly
in multisync modes!
2.10
For real compatibility with Arthur 1.2 WIMP applications, you can save
the Arthur 1.2 WindowManager module from ROM to disc and *RMLoad this
into RISC-OS instead. The Arthur 1.2 WIMP module is in the ö$.TextSizeò
directory of this monthæs programs disc.
2.10