home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1995 / ARCHIVE95.iso / text / hints / volume_02 / issue_10 < prev    next >
Text File  |  1995-02-16  |  34KB  |  927 lines

  1. Å   Partitioning hard drives Ö It is possible to partition hard drives
  2. with less than 10 Mbyte. The answer is in the REM statements in the
  3. Harddisc program on the PC disc. Change the A2080 in line 610 to any
  4. multiple of &8800 (in hex). Details are given in the REMs.
  5. Å   Hearsay Ö We mentioned changing modem baud rates in H & T in May.
  6. Philip Green sends us a way of doing this automatically suggested by
  7. Alfons Tjin. Use a dial prefix in the modem driver edit screen of just
  8. öATò and then put B3D or B0D, as necessary, in front of the phone number
  9. in the telephone directory.
  10. Å   Case sensitive system variables Ö Some readers have had problems
  11. using the *SETMACRO Alias$ command. This is because system variables are
  12. case sensitive i.e. you need to type: Alias$ not ALIAS$
  13. Å   Overload passwords:  A B BROS, CABBAGED, SLIPPERS, PREVIOUS,
  14. PILLAGED, BOVERBOD, LAVATORY, CASSETTE, WHALE╩FM, EXTRACTS, STOPKETS
  15. The following hints were sent in by Lorcan Mongey
  16. Å   ÉTæ Option in LDR and STR Ö Assembly language programmers may have
  17. noticed that the Programmeræs Reference Manual mentions a ÉTæ option in
  18. the description of the LDR and STR com-mands (page 608), but neglects to
  19. say what it does. It is, in fact, used for setting the write-back option
  20. and has exactly the same effect as É!æ. Note that the *MEMORYI disassem
  21. bler always disassembles pre-indexed write-back with É!æ and post-
  22. indexed write-back with ÉTæ, although you may use either form when
  23. assembling. Bear in mind that post-indexed write-back always takes
  24. place, regardless of the state of the write-back flag.
  25. 2.10
  26. Å   Bit patterns for LDR and STR Ö There is an omission in Appendix C of
  27. the öARM Assembly Language programmingò book published by Com-puter
  28. Concepts. Appendix C gives the bit patterns of the ARM instruction set,
  29. but does not describe the ÉLæ bit of the ÉSingle Data transferæ
  30. instruction. This is the Load/Store bit: 0=store (STR), 1=load (LDR).
  31. 2.10
  32. This description also applies to the ÉBlock data transferæ instructions
  33. (STM and LDM).
  34. 2.10
  35. Å   BASIC restrictions Ö In BASIC II on the BBC B (and IV on the Master)
  36. there were a number of restrictions which no longer apply to BASIC V on
  37. the Archimedes, but have not been specifically mentioned in the
  38. Archimedes User Guide. They are worth noting because they have probably
  39. become ingrained in BBC B users who may not have realised that they have
  40. been lifted.
  41. 2.10
  42. 1) You can now change MODE inside a procedure or function. This is
  43. because the screen RAM is now completely separate from the program area.
  44. 2.10
  45. 2) The nesting limits of FOR, REPEAT and GOSUB (10, 20 and 26 respec
  46. tively) no longer apply. Instead of a fixed limit, you can now nest
  47. loops until you run out of RAM. I have successfully nested loops 15,000
  48. deep and run a recursive procedure 30,000 levels deep! Strangely,
  49. nesting GOSUBs too deeply is not trapped and will corrupt your program,
  50. but this situation is unlikely to happen in practice.
  51. 2.10
  52. Å   BASIC errors Ö I have found four BASIC errors not listed in the User
  53. Guide (Issue 2). They are:
  54. 2.10
  55. 11 No room for this dimension Ö An attempt was made to dimension an
  56. array for which there was insufficient space.
  57. 2.10
  58. 25 Bad MODE Ö An attempt was made to select a screen mode for which
  59. there is insufficient memory. More memory can be allocated by *CONFIGURE
  60. SCREENSIZE.
  61. 2.10
  62. 37 No room for function/procedure call Ö An attempt was made to Énestæ
  63. too many function and/or procedure calls.
  64. 2.10
  65. 44 Too many nested structures Ö An attempt was made to Énestæ too many
  66. FOR...NEXT, REPEAT...UNTIL and/or WHILE... ENDWHILE loops.
  67. 2.10
  68. Note that 11 and 44 are covered in the Archimedes 400 series BBC BASIC
  69. Guide.
  70. 2.10
  71. Å   Using FORTRAN 77 Ö The article on using FORTRAN 77 in Archive 1.7
  72. included a sample subroutine showing how to access graphics from
  73. FORTRAN. There are a number of problems with this subroutine. It canæt
  74. cope with negative graphics coordinates (needed after an origin shift),
  75. it sends a line feed to the screen when it is used, which can cause your
  76. graphics to scroll upwards, and it uses an output channel which should
  77. be kept free for file access. The following solves all the problems:
  78. 2.10
  79. SUBROUTINE PLOT(K,X,Y)
  80. 2.10
  81. INTEGER X,Y  I1=IAND(X,?IFF)
  82. 2.10
  83. I2=ISHFT(IAND(X,?IFF00),-8)
  84. 2.10
  85. J1=IAND(Y,?IFF)
  86. 2.10
  87. J2=ISHFT(IAND(Y,?IFF00),-8)
  88. 2.10
  89. PRINT 100,CHAR(25),CHAR(K),CHAR(I1),
  90. 2.10
  91. CHAR(I2),CHAR(J1),CHAR(J2)
  92. 2.10
  93. RETURN
  94. 2.10
  95. 100 FORMAT (6A1$)
  96. 2.10
  97. END
  98. 2.10
  99. This method masks out the unwanted bits and shifts the data into the
  100. l.s.b., thus preserving the sign. It uses PRINT instead of WRITE,
  101. avoiding the need for a channel number. The $ at the end of the FORMAT
  102. statement suppresses the line feed. (No criticism of the original
  103. authors is intended; my first attempt looked very similar!)
  104. 2.10
  105. Included on this monthæs program disc is Graph_ FOR, the FORTRAN source
  106. of a set of graphics subroutines which provide a full set of VDU calls.
  107. Some, like BELL for instance, are trivial, but others are more
  108. complicated.
  109. 2.10
  110. Å   Printer conventions Ö Many people seem to have difficulty with
  111. setting up the correct linefeed or non-linefeed for their printers for
  112. different app-lications, so I.J. King has tried to explain it for us╔
  113. 2.10
  114. How the Archimedes deals with varying printer standards Ö Since there
  115. are two standards for printers, the Archimedes has a mechanism to allow
  116. it to cope with both. The standards in question affect the way the paper
  117. is fed through the mechanism and there are two possible cases:
  118. 2.10
  119.  A. Auto Linefeed: every time the printer receives a carriage return
  120. character (code 13), it generates a line feed (code 10) to move the
  121. paper up a line.
  122. 2.10
  123. B. Non-Auto Linefeed: the printer does not gener-ate its own linefeed
  124. characters but relies on the com-puter to send a linefeed after every
  125. carriage return.
  126. 2.10
  127. Most modern printers will actually have a switch to select either of
  128. these modes, allowing them to be compatible with most computers, but
  129. this is likely to be difficult to reach. The Archimedes will (in the
  130. case of virtually all software) send a line feed after every carriage
  131. return. To allow compatibility with printers in mode (A) above, it is
  132. possible to tell the machine to ignore a particular code when sent to
  133. the printer. By setting this to 10 (the code for line feed), no line
  134. feeds will be sent to the printer and you are compatible with type (A)
  135. printers.
  136. 2.10
  137. This code is set up using the *IGNORE command, for example:
  138. 2.10
  139. *IGNORE 10
  140. 2.10
  141. To disable the trap altogether, simply enter *IGNORE on its own. Either
  142. of these may be preceded by CONFIGURE to make the effect permanent, e.g.
  143. 2.10
  144. *CONFIGURE IGNORE 10
  145. 2.10
  146. The Archimedes is set up with a factory default ignore code of 10,
  147. making the system compatible with type (A) printers when it arrives.
  148. 2.10
  149. Problems arising when the protocol is ignored Ö The above should make
  150. everything seem fairly simple and indeed it ought to be. However, some
  151. software houses, notably GST and Grafox (i.e. First Word Plus and
  152. Logistix) have chosen to ignore the sensible protocols described above
  153. and override the *IGNORE status in such a way that they are only
  154. compatible with type (B) printers, regardless of the setting of *IGNORE.
  155. 2.10
  156. This means that the hapless user will have been forced to configure his
  157. printer to be type (B) but will not have re-configured his Archimedes
  158. since the software will override the settings and work anyway. They then
  159. go out and purchase a correctly written package, such as System
  160. DeltaPlus etc, and the result is a type (B) printer (generating no line
  161. feeds) on a machine configured for a type (A) printer (and so sending no
  162. line feeds) which results in no line feeds at all and the text all comes
  163. out on the same line.
  164. 2.10
  165. A subsidiary problem occurs in some cases, when reconfiguring the
  166. Archimedes to work with type (B) printers, as is necessary if you wish
  167. to use both First Word Plus/Logistix and other, correctly written,
  168. software. The correct way to do this is to enter the command *CONFIGURE
  169. IGNORE with no parameters, completely disabling the printer trap. It is
  170. not correct to enter *CONFIGURE IGNORE 0 as this prevents code 0 from
  171. being sent to the printer and may corrupt some graphics/font change
  172. sequences used by certain software.
  173. 2.10
  174. Conclusions Ö If you are using any package which overrides the Acorn
  175. protocols for printer compatibility in the way described above and also
  176. wish to use correctly written software (in my case, I use both Logistix
  177. and System DeltaPlus), you should take the following steps:
  178. 2.10
  179. 1. Set your printer so that Auto Linefeed is OFF (usually a DIP switch).
  180. 2.10
  181. 2. Enter *CONFIGURE IGNORE
  182. 2.10
  183. 3. Press <ctrl-break> to reconfigure your machine.
  184. 2.10
  185. This now only leaves us with one question Ö why are Acornsoft apparently
  186. condoning this system of forcing the user to have a printer type
  187. different from that for which the machine is configured by default?!
  188. 2.10
  189. Å   PC Emulator Star Commands (Response to query in Archive 2.5 p5) Ö
  190. There is no need for a *Configure Floppies command from the PC emul-ator
  191. when copying from one 3.5ö disc to another. You must understand the
  192. distinction between log-ical and physical drives: logical drives are
  193. known to the emulator as A, B, C, etc, and are mapped onto the physical
  194. drives 0, 1, etc. It is possible to have more than one logical drive
  195. assigned the same phys-ical drive. This is what happens when you have
  196. your Archimedes configured for one floppy Ö the emul-ator maps logical
  197. drives A and B onto physical drive 0 and, recognising this when you copy
  198. from A to B, prompts for a disc change. If you have two floppies, the
  199. emulator maps A and B onto 0 and 1 respect-ively. I use an external
  200. 5.25ò 40/80 track drive on my Archimedes and my config.sys file, listed
  201. below, illustrates the way around the problem.
  202. 2.10
  203. device=driver.sys /d:0 /t:80 /f:2
  204. 2.10
  205. device=driver.sys /d:1 /t:80 /f:2
  206. 2.10
  207. device=driver.sys /d:1 /t:40 /f:0
  208. 2.10
  209. device=driver.sys /d:1 /t:40 /f:0
  210. 2.10
  211. files=20
  212. 2.10
  213. buffers=10
  214. 2.10
  215. The first four lines assign more logical drives (which the emulator
  216. gives the letters C, D, E and F) to the physical drives 0 and 1. The
  217. meaning of the parameters is:
  218. 2.10
  219. /d: physical drive number
  220. 2.10
  221.    (0 for internal, 1 for external)
  222. 2.10
  223. /t: number of tracks on disc
  224. 2.10
  225.    (80 for 720k and 40 for 360k)
  226. 2.10
  227. /f: disc format
  228. 2.10
  229.    (2 means 720k, 0 means 360k)
  230. 2.10
  231. The first line assigns logical drive C to physical drive 0. You can now
  232. copy from 3.5ö to 3.5ò by using Écopy a:x.dat c:æ and DOS will prompt
  233. for a disc change. The second line maps logical drive D to physical
  234. drive 1, enabling copying between 5.25ö 80-track floppies (copy b:x.dat
  235. d:). The last two lines assign two 40-track drives (E and F) to physical
  236. drive 1, allowing copying between 40-track 5.25ò discs (copy e:x.dat f:)
  237. in the same way.
  238. 2.10
  239. You should be aware that loading all these device drivers will use up
  240. some application workspace, leaving less for programs, so only install
  241. them when you need them!
  242. 2.10
  243. Å   Three SWIs which are not mentioned in the Programmeræs Reference
  244. Manual (Issue 1):
  245. 2.10
  246. OS_AddToVector &47
  247. 2.10
  248. OS_WriteEnv &48
  249. 2.10
  250. WaveSynth_Load &40300
  251. 2.10
  252. (WaveSynth_Load was mentioned but not ident-ified in Archive 1.8, p9)
  253. 2.10
  254. Also, there is one SWI which seems to have been mis-spelled in the
  255. Arthur 1.20 ROMs, namely:
  256. 2.10
  257. Sound_QSDispatch &401C4
  258. 2.10
  259. The ÉSæ between Q and Dispatch shouldnæt be there. If you refer to SWIs
  260. by name rather than number then you must mis-spell this one in the same
  261. way otherwise it wonæt be recognised!
  262. 2.10
  263. Å   Infinite energy for ThunderMonk Ö J.R. Donaldson sent in this
  264. program, which will alter your ThunderMonk disk to give you infinite
  265. energy.
  266. 2.10
  267.  10 REM > Thun_Cheat
  268. 2.10
  269.  20 REM Joe Pineapples Ö Cool Assassin
  270. 2.10
  271.  30
  272. 2.10
  273.  40 DIM sector% &400
  274. 2.10
  275.  50
  276. 2.10
  277.  60 MODE 0
  278. 2.10
  279.  70 PRINT öPlease insert ThunderMonk
  280. 2.10
  281.  disc and press a key.ö
  282. 2.10
  283.  80 G = GET
  284. 2.10
  285.  90
  286. 2.10
  287. 100 PRINT ÉöNow loading relevant
  288. 2.10
  289.  sectoröÉ
  290. 2.10
  291. 110
  292. 2.10
  293. 120 SYS öADFS_DiscOpò,, 1, &C6400,
  294. 2.10
  295.  sector%, &400
  296. 2.10
  297. 130
  298. 2.10
  299. 140 PRINT öDo you want to play
  300. 2.10
  301.  (C)heat or Normal ?ö
  302. 2.10
  303. 150 G = GET
  304. 2.10
  305. 160
  306. 2.10
  307. 170 IF G=ASC(öCò) OR G=ASC(öcò) THEN
  308. 2.10
  309. 180   sector%!&388 = &E59C0044
  310. 2.10
  311. 190   sector%!&38C = &E28000FE
  312. 2.10
  313. 200   sector%!&390 = &E58C0044
  314. 2.10
  315. 210   ELSE
  316. 2.10
  317. 220   sector%!&388 = &059C0044
  318. 2.10
  319. 230   sector%!&38C = &02400001
  320. 2.10
  321. 240   sector%!&390 = &058C0044
  322. 2.10
  323. 250 ENDIF
  324. 2.10
  325. 260
  326. 2.10
  327. 270 PRINT ÉöNow saving relevant
  328. 2.10
  329.  sectoröÉ
  330. 2.10
  331. 280
  332. 2.10
  333. 290 SYS öADFS_DiscOpò,, 2, &C6400,
  334. 2.10
  335.  sector%, &400
  336. 2.10
  337. 300
  338. 2.10
  339. 310 PRINT öChange complete. Now use
  340. 2.10
  341.  disc as normal.ö
  342. 2.10
  343. 320 END
  344. 2.10
  345. Å   Thunder Monk passwords Ö the Thunder Monk passwords change from disc
  346. to disc (or do they change from month to month? Ed), but they can be
  347. found at address &4E400. Just find your level two password in the list
  348. below and next two words will be used for levels three and four e.g. our
  349. level two password is STEVES so the passwords for the next levels are
  350. BIRTHDAY and MIDSUMMER.
  351. 2.10
  352. SHIRT JUMPER WELLIES Y-FRONTS LOVERS HEARTS CUPID VALENTINE DANIEL AND
  353. SIMONS BIRTHDAY JOKES SHOWERS FOOL SPRING POLE EXAMS SUNNY STUDY STEVES
  354. BIRTHDAY MIDSUMMER WARMER HOLIDAYS MAJORCA SUNHAT HOTTER RESULTS FAILED
  355. PASSED PISSUP SCORCHER RESTART SUNBURN ARCHIE SPOOK SHIVER HALLOWEEN
  356. COOLING BONFIRE WEEEEEE FIREWORKS CHILLY CHRISTMAS HOLLY PRESENTS MERRY!
  357. 2.10
  358. (Dæyou get the significance of the passwords?? Ed.)
  359. 2.10
  360. Å   View to FWP Ö When using the utility provided with First Word Plus
  361. to convert View files, Robert Leon noted that the left margin default
  362. (in the Print File dialogue window) should be changed to 4, otherwise
  363. the file is not printed properly.
  364. 2.10
  365. Å   Using 1st Mail for multi-column printouts Ö David Scott Ö Text which
  366. is to be printed in more than one column is first prepared with First
  367. Word Plus and it is at this stage that preparations must be made for the
  368. print format. The text format must suit the final required column width
  369. otherwise First Mail will ignore the instructions to print out in multi
  370. columns.
  371. 2.10
  372. An example will show how to lay out the text. Suppose that you require
  373. two columns each 31 characters wide set side by side on a 65 character
  374. wide sheet. This will be possible as it allows 3 characters for the
  375. central white column since
  376. 2.10
  377.  31 + 3 + 31 = 65
  378. 2.10
  379. The text must be prepared using a line length of 31 characters. The page
  380. markings in First Word Plus will show final page 1 column 1 as page 1,
  381. final page 1 column 2 as page 2, final page 2 column 1 as page 3 and so
  382. on.
  383. 2.10
  384. When the text has been fully prepared enter First Mail and follow the
  385. instructions given on pages 196 and 197 of the manual. The number of
  386. columns must be set to 2 in this example.
  387. 2.10
  388. Å   Another possible bug in First Mail Ö David Leckie Ö When using First
  389. Word Plus with the ruler set to double line spacing, continuous text,
  390. i.e. no returns are double spaced but text followed with a return is not
  391. double spaced as you would expect.
  392. 2.10
  393. However when a First Mail mail-merge is done from the file, the mrg file
  394. contains double spaced text where there was single spaced text in the
  395. original doc. Thus if you want, say, your address lines to be double
  396. spaced then they should be a RETURN between each line in the doc file
  397. only if you are not going to do a First Mail mail merge. If you are
  398. doing a mail merge then they should be single spaced i.e. no RETURNS
  399. because after the mail merge double line spacing will be inserted! Very
  400. funny!
  401. 2.10
  402. Å   öMemallocò module Ö John Fidler was playing with the !Lander program
  403. in RISC-OS when he realised that it should not have run with the
  404. configuration settings on his machine. He looked in the !Lander
  405. directory (by clicking on the icon in the directory viewer while holding
  406. the <shift> key) and found the Memalloc module.
  407. 2.10
  408. This module provides nine new star commands, which allow you to check
  409. and alter the size of various memory pools i.e. system heap, RMA, screen
  410. area, sprite area and font cache.
  411. 2.10
  412. ==> Help on keyword MemAlloc
  413. 2.10
  414. Module is: MemAlloc util 0.11 (06 Dec 1988)
  415. 2.10
  416. Commands provided:
  417. 2.10
  418. SystemSize RMASize ScreenSize SpriteSize FontSize
  419. 2.10
  420. RAMFSSize RMAFree SpriteFree FontFree
  421. 2.10
  422. Å   Desktop ScreenSize configuration Ö When using the desktop, the
  423. memory allocated to the screen area is regulated by the desktop screen
  424. mode and not the configuration setting e.g. if you are in mode 12 then
  425. the screen area will have 80k allocated to it (or 96k for the 400
  426. series).
  427. 2.10
  428. Å   Desktop startup commands Ö When starting the desktop using *Desktop,
  429. you can make the Archimedes run a file or perform a star command. This
  430. facility could be used to start the desktop up in a predefined state.
  431. 2.10
  432. ==> Help on keyword Desktop
  433. 2.10
  434. *Desktop starts up any dormant Wimp modules, and also passes an optional
  435. 2.10
  436. *command or file of *commands to Wimp_StartTask.
  437. 2.10
  438. Syntax: *Desktop [<*command> | -File <filename>]
  439. 2.10
  440. Å   Converting ArcTerm 6.01 to RISC-OS Ö Arc-Term 6.01 will work under
  441. RISC-OS if you make a !Run file in the !ArcTerm application directory:
  442. 2.10
  443. RMEnsure InternationalKeyboard 0.17
  444. 2.10
  445. RMReInit InternationalKeyboard
  446. 2.10
  447. DIR <Obey$Dir>.!ArcTerm
  448. 2.10
  449. Run ArcTerm
  450. 2.10
  451. Å   Extra Options for the Copy Command Ö The new User Guide (page 208)
  452. lists a number of new options for the Copy command which considerably
  453. extend its usefulness. The L and N options are par-ticularly useful for
  454. performing backups from hard disc to floppy disc. Thus the command:
  455. 2.10
  456.  *Copy HD::$.A.* FL::$.* ~CFQR
  457. 2.10
  458. will make a quick backup, without confirmation, of all the files and
  459. subdirectories in directory A of the hard disc named HD onto the floppy
  460. disc named FL. If however the option N is also added then only the files
  461. which have changed since the last backup will be copied, thus reducing
  462. the backup time consider-ably. If the L option is also added then even
  463. more time is saved as the directories of both source and destination
  464. disks are checked before any attempt is made to load the files
  465. themselves.
  466. 2.10
  467. If suitable Copy commands are added to the end of an application !Run
  468. file then an automatic backup of changed files can be made when you have
  469. finished using the application. In this case it is vital to quote the
  470. name of the required backup floppy disc so that a request to load it can
  471. be given if it is not already in the drive.
  472. 2.10
  473. Å   RISC-OS RS423 Ö Richard House says that using RISC-OS he can now
  474. communicate with his BBC Model B at 19200 baud, without any errors
  475. (whereas under Arthur 1.2, even with the patch, he was limited to 9600
  476. baud).
  477. 2.10
  478. Å   Diagram II using RAMdisc Ö Load the file öSetupò and change the ö8ò
  479. in lines 10045, 10750, 10765, 10805 and 11325 to ö23ò. This will cause
  480. it to access the ram-disk (assuming you copied Diagram II over to the
  481. ram-disk) thereby running much faster during scrolling and saving wear
  482. and tear on your floppy or hard disk. (J.Daniels of Pineapple Software)
  483. 2.10
  484. Å   MIDI !Maestro Ö One reader says that there is an undocumented
  485. facility in the !Maestro application which can play a MIDI instrument if
  486. the MIDI podule is fitted.
  487. 2.10
  488. Å   Typing control characters Ö If you wish to use a önon-keyboardò
  489. character under RISC-OS, just hold down the <ALT> key and type in the
  490. character number on the keypad.
  491. 2.10
  492. Å   RMReInit SpriteUtils Ö Many applications unplug modules and
  493. reinitialise them later. Often, under RISC-OS, the SpriteUtils module
  494. does not get reinitialised. If you have any problems loading sprites or
  495. get the öSWI not knownò error, you can check whether your modules have
  496. been reinitialised properly by typing *ROMModules.
  497. 2.10
  498. One reader says that ÉPacmaniaæ can be cured of this by adding the
  499. following line to the !BOOT file:
  500. 2.10
  501. 935 *RMReInit SpriteUtils
  502. 2.10
  503. Å   Multi-Tasking Ö How many tasks can RISC-OS run simultaneously? The
  504. manual doesnæt say, so I decided to find out by loading multiple copies
  505. of the desktop clock. When I tried to load the 29th clock I got an error
  506. message öToo many tasksò, making the upper limit 28.
  507. 2.10
  508. Å   Leaving the Desktop from a Command File Ö David Scott Ö The answer
  509. to my own previous help query is actually quite simple when you know
  510. how! The last command in the file, which must be an obey file, (it does
  511. not work with an exec file) must be:
  512. 2.10
  513. *fx138,0,252
  514. 2.10
  515. which simulates pressing <control-shift-f12>.
  516. 2.10
  517. Å   Space for large applications Ö The methods used by Acorn and other
  518. suppliers of application software to load their applications which
  519. require a lot of space, seem to be both devious and, in many cases,
  520. ineffective since they result in less space being available for the
  521. application than under Arthur 1.2.
  522. 2.10
  523. The method illustrated below allows over 300k of data space in Logistix
  524. or over 600k of memory with the PC Emulator on a 1Mbyte machine. The
  525. technique is a three stage process and is illustrated for Logistix.
  526. 2.10
  527. Note that the machine will have to be reset after using the application
  528. in order to restore all the normal modules and their facilities.
  529. 2.10
  530. Note also that the amount of free space will vary depending on the
  531. configuration settings. In my case, these are 80k for the screen (Mode
  532. 12) and 0K for System sprites, font cache and RAM FS.
  533. 2.10
  534. If you use Econet then the modules NetFS, NetPrint, BBCEconet, NetFiler
  535. and NetStatus should also be killed in Stage 2. If you do not use Econet
  536. then you will gain marginally more space for all applications by
  537. *Unplugging these modules as I have done.
  538. 2.10
  539. Stage 1 Ö Set up the standard !Run file for the application so that it
  540. sets a function key to execute the stage 2 file after quitting the
  541. desktop.
  542. 2.10
  543. | >$.!Logistix.!Run
  544. 2.10
  545. IconSprites <Obey$Dir>.!Sprites
  546. 2.10
  547. Key1 Quit|MDir $|MExec $.!Logistix.Lgx1|M
  548. 2.10
  549. Fx138,0,252
  550. 2.10
  551. Fx138,0,129
  552. 2.10
  553. Stage 2 Ö This file must be an command file (not Obey). It clears the
  554. temporary modules and then kills all the unwanted modules. A function
  555. key is then set up to execute Stage 3 and the file ends by recovering
  556. the freed space using the RMTidy com-mand which must be the last command
  557. in the file.
  558. 2.10
  559. | >$.!Logistix.Lgx1
  560. 2.10
  561. RMClear
  562. 2.10
  563. RMKill Debugger
  564. 2.10
  565. RMKill Desktop
  566. 2.10
  567. RMKill WindowManager
  568. 2.10
  569. RMKill FontManager
  570. 2.10
  571. RMKill InternationalKeyboard
  572. 2.10
  573. RMKill SoundScheduler
  574. 2.10
  575. RMKill StringLib
  576. 2.10
  577. RMKill Percussion
  578. 2.10
  579. RMKill SpriteExtend
  580. 2.10
  581. RMKill Draw
  582. 2.10
  583. RMKill Hourglass
  584. 2.10
  585. RMKill Podule
  586. 2.10
  587. Key 1 *Obey $.!Logistix.Lgx2|M
  588. 2.10
  589. FX138 0 129
  590. 2.10
  591. RMTidy
  592. 2.10
  593. Stage 3 Ö This Obey file sets the current directory (it was cleared by
  594. the radical effects of RMtidy) and then loads the Floating point
  595. emulator and Logistix directly. The final line is an optional backup
  596. command which automatically backs the new and changed data files up to a
  597. floppy disc (named S1 in this case).
  598. 2.10
  599. | >$.!Logistix.Lgx2
  600. 2.10
  601. Dir $.!Logistix
  602. 2.10
  603. RMLoad $.!System.Modules.
  604. 2.10
  605. FPEmulator
  606. 2.10
  607. Lgx
  608. 2.10
  609. COPY :DJS.!Logistix.Sheet.* :S1.*
  610. 2.10
  611.  ~CFLNQ
  612. 2.10
  613. PC Emulator Ö The method is similar for stages 1 and 2 except the
  614. following additional modules can be killed in stage 2: SystemDevices,
  615. TaskManager, PaletteUtil, Filer, ADFSFiler, RAMFSFiler, ShellCLI and
  616. RamFS. Stage 3 is not required as the line which sets the function key
  617. termination command is:
  618. 2.10
  619. Key 1 PC.Emulate|M
  620. 2.10
  621. which enters the PC Emulator directly. Note that the PC directory must
  622. be in the root and must be called PC otherwise the Emulator fails during
  623. loading.
  624. 2.10
  625. Å   Getting First Word Plus started Ö further to the comments on page
  626. 20/21, last month, it is not a good idea to use *MOUNT as First Word
  627. Plus will then not allow you to change discs, *DRIVE should be used and
  628. this works fine. My machine is configured to boot with the external
  629. drive selected, which usually holds a ölibrary discò, which is how I
  630. discovered the problem. First Word Plus now boots happily under RISC-OS,
  631. including an amended version of the key press module which traps <ctrl-
  632. f12> to provide a command line similar to that on the desk top Ö i.e.
  633. scrolling up from the bottom of the screen. (Weæll try to get hold of
  634. this for the monthly disc. Ed.)
  635. 2.10
  636. Å   First Word Plus from the RISC-OS desktop Ö create the following run
  637. file:
  638. 2.10
  639. !Run
  640. 2.10
  641. | !Run for !First Word Plus+ version 0.01
  642. 2.10
  643. IconSprites <Obey$Dir>.!Sprites
  644. 2.10
  645. WimpSlot -min 400k
  646. 2.10
  647. set FirstWordPlus$Resources $.Resources.1wp.
  648. 2.10
  649. set FirstWordPlus$Docs &.1wp.
  650. 2.10
  651. echo<5><23><17><7><6><8><0><8><0>
  652. 2.10
  653. <0><0><0><0>
  654. 2.10
  655. run ö<FirstWordPlus$Resources>1wpò
  656. 2.10
  657. Å   First Mail under RISC-OS Ö David Leckie Ö While First Word Plus has
  658. drawn a lot of comment, very little mention has been made First Mail,
  659. the mail merge program that accompanies it.
  660. 2.10
  661. When run under RISC-OS the main window will not resize. Now this may not
  662. seem like much of a problem but the trouble is that the printer window
  663. is hidden under the main window and cannot be easily accessed.
  664. 2.10
  665. Fortunately the corners of the window are just visible and can be
  666. clicked on. The printer driver window pops up when clicked on ok, but
  667. while the destination printer window can be clicked on, the name of the
  668. selected destination printer is still hidden. This problem is compounded
  669. by the last line of the 1st paragraph on page 154 of the manual being
  670. wrong. öThe four options Parallel Port, Serial Port, Network Port and
  671. Disc will appear in rotation.
  672. 2.10
  673. They do not rotate in the order above. Parallel Port is the first and
  674. Disk is the third not fourth but which is network and serial? Can
  675. someone with Arthur please tell us?
  676. 2.10
  677. Thus, if you want to do a merge to parallel printer it works fine. For
  678. disc, point to the corner of the window and give 2 clicks (not 3). If
  679. you need serial or network, try 1 or 3 clicks.
  680. 2.10
  681. Thanks to Mark Burch who helped to crack the problem.
  682. 2.10
  683. Å   Installing Artisan Ö Sean Kelly Ö There are three tips: the first is
  684. on getting Artisan to return control to the desktop without resetting
  685. the system; the second is on putting Artisan in any chosen directory;
  686. the third is not strictly related to RISC-OS, but is on persuading
  687. Artisan to work with compressed screens.
  688. 2.10
  689. Returning to the desktop Ö When Artisan is installed as described on the
  690. RISC-OS support disc, it does not return correctly to the desktop. The
  691. following modification was made to the program on my A440, and works
  692. perfectly:
  693. 2.10
  694. 1. Load program ART5 and, using the BASIC EDITOR, find the line: öDEF
  695. PROCLARò
  696. 2.10
  697. 2. The next line should be a multi-statement line containing in-line
  698. assembly code. If so, you have found the correct routine. Delete
  699. everything on this line except for the first three statements and then
  700. add ö:QUITò so that the new line reads:
  701. 2.10
  702. MODE12:OSCLIöFX4ò:OSCLIöUPò:QUIT
  703. 2.10
  704. 3. Rename the old ART5 (in case you have made a mistake) and save the
  705. new version as ART5.
  706. 2.10
  707. This new version returns to the desktop, in the same condition as when
  708. Artisan was called, when you quit Artisan.
  709. 2.10
  710. Altering the directory structure Ö When installed using the hard disc
  711. install program, Artisan insists on living in a directory called
  712. :4.$.Artisan. This can be changed Ö the following details relate to my
  713. chosen directory of :4.$.APPS.!ARTISAN.
  714. 2.10
  715. 1. !RUN should be altered from the support disc version. The new version
  716. is:
  717. 2.10
  718. ECHO <22><&8C>
  719. 2.10
  720. WIMPSLOT -MIN 200k
  721. 2.10
  722. DIR :4.$.APPS.!ARTISAN *** put your own directory here ***
  723. 2.10
  724. URD @ BASIC ART4
  725. 2.10
  726. In my case, the pathname of !RUN is ö:4.$.APPS. !ARTISAN.!RUNò. Before
  727. changing !RUN, re-name the old one in case of accident.
  728. 2.10
  729. 2. Alter ART5 using the Basic Editor. Several lines need changing; in
  730. each case the change consists of altering the given directory to point
  731. to your new directory. The lines that need altering can be found by
  732. searching for the following strings using the editor (they are all
  733. unambiguous, but the case of each letter is crucial):
  734. 2.10
  735. cLare%=FALSE:
  736. 2.10
  737. A%=cLARESMI
  738. 2.10
  739. WHEN12:OSCLI
  740. 2.10
  741. WHEN1:OSCLIöLOAD
  742. 2.10
  743. OSCLIöCDIR
  744. 2.10
  745. OSCLIöDIR ò+ClA$+
  746. 2.10
  747. Preserve the old ART5 in case of problems.
  748. 2.10
  749. Å   Adapting Artisan for Compressed Screens Ö I use a modified version
  750. of the screen compression routine originally published in Personal
  751. Computer World magazine. It uses the commands *CSCREENLOAD and
  752. *CSCREENSAVE to load and save compressed screens, and compressed screens
  753. are given the filetype &010. The adaptation below will work equally well
  754. with other com-pression routines with the proviso that the compressed
  755. screen loading routine must recog-nize and correctly deal with normally
  756. saved screens (filetype &FF9).
  757. 2.10
  758. 1. Load ART5 and modify it using the BASIC Editor (first rename ART5, in
  759. case of errors). Immediately after the REM statements at the start of
  760. the program, add these two lines (substituting your own compressed
  761. screen save and load commands):
  762. 2.10
  763. *SET Alias$SCREENSAVE CSCREENSAVE %0
  764. 2.10
  765. *SET Alias$SCREENLOAD CSCREENLOAD %0
  766. 2.10
  767. Substitute the names of your own commands for CSCREENSAVE and
  768. CSCREENLOAD.
  769. 2.10
  770. 2. Find DEFPROCcLaRESM with the editor. Look about 14 lines down and
  771. there will be a line beginning with WHEN&FF9. Four lines further down
  772. should be a line beginning with ENDIF. Add two new lines after this
  773. ENDIF line (substituting your own compressed screen filetype):
  774. 2.10
  775. WHEN &010
  776. 2.10
  777. RES%=3:mIC%=ReSM%:ReSM%+=1:cLarESM%=7
  778. 2.10
  779. 3. Find DEFPROCPS with the editor. Look about seventeen lines down and
  780. there will be a line beginning with WHEN&FF9. Six lines further down
  781. should be a line beginning with ENDIF. Add two new lines after this
  782. ENDIF line (substituting your own compressed screen filetype):
  783. 2.10
  784. WHEN &010
  785. 2.10
  786. PROCGw(laRES%): clArES%=4
  787. 2.10
  788. The modified version of ART5 will correctly handle compressed and
  789. uncompressed screens for loading, and will normally save screens in
  790. compressed form.
  791. 2.10
  792. Å   RISC-OS Postscript Printer Drivers Ö One of our readers can only use
  793. a laser printer from an Apple Mac, but wanted to obtain good quality
  794. images of the documents that he produced in !Draw and !Edit. In order to
  795. do this he redirected the output of the !PrinterPS to a file and
  796. Éportedæ the file across to the Mac. The reason why this works is
  797. because the output of !PrinterPS application is straight ASCII Post
  798. script text, so in theory, the resulting file could be used by any
  799. Postscript set up.
  800. 2.10
  801. Å   Configuring !PrinterDM Ö some readers have had problems outputting
  802. to their dot matrix printers. This might be because the !PrinterDM
  803. application must be configured for the printer you are using. This can
  804. be done by clicking, with <select>, on the printer icon (once installed)
  805. and then clicking on the printer name that appears in a window, until
  806. the name of your printer appears. Then select the öSave Choiceò option
  807. on the !PrinterDM menu. The printers that !PrinterDM supports are: Epson
  808. FX, LQ, and LQ-850 compatibles and the NEC Pin-Writer P6 plus.
  809. 2.10
  810. Å   RISC-OS multisync text scaling solution! Ö Richard Averill Ö If you
  811. turn back to Archive 2.9 p14, you will see the problem of text scaling
  812. in multisync modes raised. Having also experienced this problem, I tried
  813. to solve it.
  814. 2.10
  815. Firstly, I tried using the output to sprites feature to modify this.
  816. Since this did not alter the size of the font at all, I then tried a
  817. more interesting method. I knew that the standard vdu 5 font size was
  818. 8x8 pixels, so I ran the following program to tell me which locations in
  819. the operating systemæs workspace (&0000-&7FFF) contained the value 8.
  820. 2.10
  821. 10 REM > $.TextSize.Find8
  822. 2.10
  823. 20 REM (C) Richard Averill, 1989.
  824. 2.10
  825. 30 FOR I%=0 TO &7FFC STEP 4
  826. 2.10
  827. 40 IF !I%=8 THEN PRINT ~I%;
  828. 2.10
  829. 50 NEXT
  830. 2.10
  831. I then had a list of locations, so I set vdu 5 mode and *Memoryæed each
  832. of the locations to have a closer look. Storing 16 in the second
  833. location (&1360) caused the x text size to be doubled! There were 3 more
  834. 8És consecutively after this value, so after a little testing I came to
  835. the conclusion shown by the following table:
  836. 2.10
  837. Address   Contents
  838. 2.10
  839. &1360   x size
  840. 2.10
  841. &1364   y size
  842. 2.10
  843. &1368   x spacing
  844. 2.10
  845. &136C   y spacing
  846. 2.10
  847. All values are given in pixels, so by default these are 8,8,8,8. The
  848. WIMP manager changes the x and y values according to the x and y Éeigæ
  849. factors read by swi OS_ReadModeVariable detailed in OS1.2 PRM pages
  850. 124Ö126. Note that the values need not be multiples of 8, but the
  851. characters will look rather odd otherwise!
  852. 2.10
  853. The following procedure will enable you to set the text size and
  854. spacing. The syntax is PROCtextsize(x size, y size, x spacing, y
  855. spacing).
  856. 2.10
  857. 10000 DEF PROCtextsize(x%,y%,sx%
  858. 2.10
  859. ,sy%)
  860. 2.10
  861. 10010 !&1360=x%
  862. 2.10
  863. 10020 !&1364=y%
  864. 2.10
  865. 10030 !&1368=sx%
  866. 2.10
  867. 10040 !&136C=sy%
  868. 2.10
  869. 10050 ENDPROC
  870. 2.10
  871. For example, PROCtextsize(16,8,16,8) will give you double width text
  872. when in VDU 5 mode. This will be square in mode 12 etc. and of a
  873. rectangular shape in mode 20 etc. The text spacing will usually be the
  874. same as the text size.
  875. 2.10
  876. To set the default text size from the RISC-OS desktop (the answer to the
  877. query,) run the following program (which is in the ö$.TextSizeò
  878. directory of the monthly disc) from within the desktop, and it will
  879. redraw the whole screen to enable the new size to take effect.
  880. 2.10
  881.  10 REM > $.TextSize.SetSize
  882. 2.10
  883.  20 REM (C) Richard Averill, 1989.
  884. 2.10
  885.  30 REM restores default text size and spacing in the RISC-OS desktop.
  886. 2.10
  887.  40
  888. 2.10
  889.  50 !&1360=8
  890. 2.10
  891.  60 !&1364=8
  892. 2.10
  893.  70 !&1368=8
  894. 2.10
  895.  80 !&136C=8
  896. 2.10
  897.  90 SYS öWimp_Initialiseò,200,
  898. 2.10
  899. &4B534154 TO task%
  900. 2.10
  901. 100 SYS öWimp_ForceRedrawò,-1,0,0,
  902. 2.10
  903. &FFFF,&FFFF
  904. 2.10
  905. 110 SYS öWimp_CloseDownò,task%,
  906. 2.10
  907. &4B534154
  908. 2.10
  909. 120 QUIT
  910. 2.10
  911. This will set the text size to 8 pixels, the same as under the Arthur
  912. WIMP manager. So if you have a high resolution monochrome, the text will
  913. become four times smaller in each direction than normal!
  914. 2.10
  915. Unfortunately, there is a slight problem. The RISC-OS WIMP assumes
  916. scaling will be done to ensure that the size of the text is always 16x32
  917. OS units and uses these values when calculating text widths/heights
  918. instead of finding the sizes from the operating system. So any verti
  919. cally centred text (such as window titles) will not be centred properly
  920. in multisync modes!
  921. 2.10
  922. For real compatibility with Arthur 1.2 WIMP applications, you can save
  923. the Arthur 1.2 WindowManager module from ROM to disc and *RMLoad this
  924. into RISC-OS instead. The Arthur 1.2 WIMP module is in the ö$.TextSizeò
  925. directory of this monthæs programs disc.
  926. 2.10
  927.