home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1995 / ARCHIVE95.iso / text / hints / volume_1 < prev    next >
Text File  |  1995-06-25  |  140KB  |  3,630 lines

  1. Hints and Tips
  2. 1.1
  3. Using Electrohome Monitors
  4. 1.1
  5. Ian Nicholls of Kidderminster says that the öElectrohomeò colour
  6. monitor, as sold by Opus, works OK on the Archimedes. All you have to do
  7. is make up the appropriate connector. (Or purchase one from CJE Micros
  8. or somesuch.) The pin connections for the Archimedes are given on the
  9. inside back cover.
  10. 1.1
  11. Using Modes 18 - 20
  12. 1.1
  13. Whilst on the subject of monitors, let me clear up the confusion there
  14. seems to be in the computer press about the high resolution modes and
  15. the extra video hardware which the 400 series machines are said to have.
  16. This extra hardware is NOT for driving modes 18 - 20. Even on the 300
  17. series, there is all the hardware needed to run these modes on a multi-
  18. sync monitor.
  19. 1.1
  20. The extra hardware in the 400 series is actually for even higher
  21. resolution graphics Ö it will go up to 1280 by 976 pixels in monochrome
  22. (160 characters by 122 lines of text) and, as with modes 18 - 20, it
  23. requires a special monitor. There is no industry standard for such
  24. monitors, and Acorn are still looking into providing a suitable monitor
  25. with their own badge on it. This extra high resolution is of course
  26. aimed at the CAD (computer aided design) market, and it is said that
  27. AutoCAD is being translated onto the Archimedes.
  28. 1.1
  29. Using a Multi-sync Monitor
  30. 1.1
  31. If you have a multi-sync monitor and want to get it working on the 300
  32. series, all you need to do is to switch the computer on whilst holding
  33. down the <R> key. This resets the CMOS RAM settings (so if, like me, you
  34. had changed them, you will have to re-configure again!) and it changes
  35. the configuration of the RGB output to run in multi-sync mode. It then
  36. allows you to access the extra screen modes that had been previously
  37. forbidden to those of us who only have standard monitors. If you should
  38. want to change the machine back again to run a standard monitor, you
  39. have to do another <R-power-up> which switches it back again (and re-
  40. sets the CMOS RAM settings AGAIN!). In other words each time you do an
  41. <R-power-up> it toggles between the two monitor settings.
  42. 1.1
  43. Using View
  44. 1.1
  45. Gerald Jones of Northampton tells us that only those of you who have
  46. gone from a Master Compact to an Archimedes will be able to get View
  47. going Ö for the time being, at least, because the ROM versions of VIEW
  48. will not work under the emulator. If you do have a disc version of View,
  49. Acorn tell us that the way to get it going is to copy 65ARTHUR from the
  50. MODULES directory on the Archimedes Welcome disc onto another disc and
  51. VIEW from the Compact Welcome disc and then use *BUILD !BOOT  to create
  52. a boot file which consists of:
  53. 1.1
  54.    *65ARTHUR
  55. 1.1
  56.    *GO F800
  57. 1.1
  58.    *LOAD VIEW 8000
  59. 1.1
  60.    *GO 8000
  61. 1.1
  62. and then remember to type *OPT 4,3 to set it up so that it will execute
  63. the boot file on <shift-break>. All you have to do then is to chop up
  64. your VIEW keystrip and stick it together in the Archimedes keyboard
  65. format remembering that the f0 key functions are now on the <print> key!
  66. 1.1
  67. Attaching a 5.25ö drive
  68. 1.1
  69. Have you tried to get a 5.25ö disc drive linked up to the Archimedes?
  70. Presumably, you did the obvious thing and removed the cable from the
  71. p.c.b. to the 3.5ò drive and plugged in the cable from the 5.25ö drive.
  72. And you too found that it didnæt work! Well, the official answer is that
  73. it is possible to connect a 5.25ò drive but that there are ödifferent
  74. connectionsò. Actually, it seems that the only difference is that they
  75. have put the connector in the opposite way round!
  76. 1.1
  77. Unfortunately, you canæt just turn the connector round because of the
  78. location lug on the side of it. The solution is either to file the notch
  79. off the side of the connector so that it will go in either way round, or
  80. buy a new 34-way insulation displacement connector which you can crimp
  81. onto the end of your disc cable, the opposite way round from the
  82. existing one, or buy a disc extension cable from a supplier such as CJE
  83. Micros (ú15 + ú1 p&p Ö address in Fact-File at the back of the
  84. magazine). The advantage of doing it that way is that the extension
  85. cable is long enough to stick out at the back of the computer through
  86. the podule connection slot so that you can connect and disconnect the
  87. extra drive without taking the lid on and off.
  88. 1.1
  89. You can, if you want, put a single 5.25ö drive as drive 1 or a pair of
  90. drives as drives 1 and 2. The extra drives must, of course, have their
  91. own power supply units and you need to type *CONFIGURE FLOPPIES 2 (or 3)
  92. so that the ADFS knows how many drives there are. You will also need to
  93. get inside the 5.25ò drives in order to change the link settings to
  94. configure them as drives 1 (and 2) and you should also, theoretically,
  95. remove the terminating resistors Ö usually a set of resistors (dual-in-
  96. line or single-in-line)  near the drive-select setting links. This is
  97. because there are already terminating resistors in the internal 3.5ö
  98. drive and you should not have two sets. If you have a dual drive where
  99. they are on top of one another rather than side by side, you may find it
  100. difficult to get at the second drive in order to change the link
  101. selection. If so, the easiest solution is to make the top drive 2 and
  102. just remember that the lower drive is drive 1.
  103. 1.1
  104. One problem you may still find (which Acorn havenæt yet managed to
  105. explain) is that if you switch on the power to the disc drive before or
  106. at the same time as  the computer, the computer seems unable to start up
  107. Ö you just get a blank screen. All you have to do though is to make sure
  108. you switch the computer on first and then the disc drive. You will also
  109. find that the desk-top program does not recognise the third drive Ö even
  110. if you have typed *CONFIGURE FLOPPIES 3, it only displays two disc icons
  111. on the screen. (If anyone works out how to modify the program to
  112. recognise all three, let me know.)
  113. 1.1
  114. ADFS bugs
  115. 1.1
  116. There are one or two bugs in the ADFS, though they are apparently
  117. reasonably obscure. The only one I have found myself is that if you try
  118. to *BUILD a !BOOT file onto a disc that already has a !BOOT file and you
  119. have left the disc write-protected, when you press <escape>, the system
  120. hangs up and you have to press <ctrl-break> or reset to escape. Some of
  121. the bugs have been corrected on the 0.03 version of the ADFS that you
  122. will find in the MODULES directory on your Welcome disc. This version
  123. will have to be *RMLOADæed, then to check that you have got the right
  124. version installed, type *HELP MODULES which gives you the current
  125. version numbers of all modules. It should say ADFS 0.03 (17 Jun 1987)
  126. instead of ADFS 0.02 (05 Jun 1987). Incidentally, the file name on the
  127. Welcome disc is Adfs0-03, not Adfs0_03 as you might tend to expect, so
  128. if you get a file not found error, check that you have typed it
  129. correctly.
  130. 1.1
  131. Have you discovered╔?
  132. 1.1
  133. Iæd like this to be a regular feature. It consists of the sort of things
  134. that may be obvious to some people, but perhaps that youæve noticed from
  135. reading the User Guide (or the Programmersæ Reference Manual when it
  136. becomes available). If you find something that you thought, öWell, I
  137. didnæt realise that!æ, let us know. Iæll start it off this month with
  138. things that were new to me.
  139. 1.1
  140. Å   The pad character ö|ò which is the shifted back-slash character (the
  141. key just above the return key) can be used to öpadò out those incredibly
  142. long VDU codes that end with lots of zeros. For example, to switch off
  143. the cursor, you can use VDU23,1,0,0,0,0,0,0,0,0,0 which can admittedly
  144. be shortened to VDU23,1,0;0;0;0; can now be reduced to VDU23,1| which
  145. has the extra advantage that you donæt have to try to remember exactly
  146. how many zeros it needs to complete the command.
  147. 1.1
  148. Å   Instead of saying value=value+extra, you can use the new operator
  149. ö+=ò and say value+=extra which is a significant saving if, like me, you
  150. tend to use long variable names; likewise with Ö=extra.  (Well with
  151. ö604412 bytes remainingò, it may not be worth worrying about memory
  152. space, but it does save on printer ribbons!)
  153. 1.1
  154. Å DANGER! Å BEWARE! Å WARNING!!!!!
  155. 1.1
  156. Newcomers to ADFS beware! If you have been using *WIPE * and looking
  157. through and saying öyesò or önoò to each, Donæt try it on ADFS! You will
  158. find that *WIPE * deletes ALL the un-locked files in the current
  159. directory. Itæs like *DESTROY * but without even displaying a list of
  160. all the files it was about to delete and asking for confirmation. I
  161. discovered this Énastyæ the hard way Ö I lost about 10 programs at a
  162. stroke.It wasnæt too bad though as I had copied them across from DFS and
  163. only modified one or two.
  164. 1.1
  165. What you should say is *WIPE * C where the C stands for öConfirmò Ö then
  166. it asks you about each file in turn. Ö You have been warned!!!!
  167.  
  168. Hints and Tips
  169. RGB Connector
  170. Hugh Nolan, of Old Roan, Liverpool, writes, öThe pinout for the RGB
  171. connector on page 18 of Archive 1.1 indicates that it follows that of an
  172. IBM PGA rather than the more common EGA standard. If anybody has a
  173. monitor supplied with a lead for use with an EGA and wishes to build a
  174. new cable they should note that the EGA pinouts are as follows:
  175. 1.2
  176. 1.2
  177.    1   Ground   6   Secondary Green/Intensity
  178. 1.2
  179.    2   Secondary Red
  180. 1.2
  181.    3   Red   7 Secondary Blue/Mono
  182. 1.2
  183.    4   Green   8   Horizontal Retrace
  184. 1.2
  185.    5   Blue   9   Vertical Retrace
  186. 1.2
  187. I am currently using such a monitor with my BBC model B and the
  188. connections are fairly straightforward except that the BBCæs connector
  189. does not have separate vertical and horizontal syncs, so I have wired
  190. the composite sync to pin 9 (Vertical Retrace) of the monitor.ò
  191. 1.2
  192. Using a multi-sync monitor
  193. 1.2
  194. A much easier way to change to a multi-sync monitor is to use:
  195. 1.2
  196. *CONFIGURE MONITORTYPE 1 and
  197. 1.2
  198. *CONFIGURE MONITORTYPE 0  to switch back to the normal monitor.
  199. 1.2
  200. Epson screen-dumps
  201. 1.2
  202. No doubt you have discovered the modules called HardCopyFX, MX and RX,
  203. and you too have discovered that they donæt work! Gerrald Fitton has the
  204. answer for us. His bug-fix has been passed on to Acorn who are also
  205. circulating it. The recipe is as follows:
  206. 1.2
  207. *LOAD Modules.HardCopyFX 10000  (thatæs four noughts - beware of using
  208. three!)
  209. 1.2
  210. !&104E0=&E59C1020
  211. 1.2
  212. !&104E4=&E20100FF
  213. 1.2
  214. (now replace the disc for the one onto which you want to put the hard-
  215. copy module)
  216. 1.2
  217. *SAVE HardCopyFX 10000 + 700
  218. 1.2
  219. *SETTYPE HardCopyFX &FFA
  220. 1.2
  221. *STAMP HardCopyFX
  222. 1.2
  223. To use the module, *RMLOAD HardCopyFX (or just *HardCopyFX will do) and
  224. then call it with *HardCopyFX plus various parameters Ö *HELP HardCopyFX
  225. will show you what all the parameters are. Has anyone been  experiment
  226. ing with it? What do all the parameters mean and what are their ranges?
  227. (Landscape, XScale, YScale, Margin and Threshold)
  228. 1.2
  229. Avoiding constant use of *MOUNT
  230. 1.2
  231. If you, like me, have a number of different discs and you canæt remember
  232. what is on which, you will probably be fed up of having to type *MOUNT
  233. each time you change the disc before you can get a catalogue. Try
  234. *CONFIGURE NODIR and <ctrl-break> and you will find that as long as you
  235. havenæt gone down to lower directories, you can just change the disc and
  236. do a *CAT (or *. works as on the BBC micro) and it will re-catalogue the
  237. disc in the drive. For more details, see James Lynnæs article about
  238. *CONFIGURE.
  239. 1.2
  240. File copying problems
  241. 1.2
  242. There are one or two problems with the *COPY command under the 0.2 and
  243. 0.3 operating systems but, not being used to using ADFS myself, I am
  244. never sure when it is a bug and when it is me being stupid. One thing
  245. you will find though is that when doing a *COPY from disc to disc using
  246. a single drive, it seems to hang up when it should be saying öEnter
  247. source disc and press the space barò but donæt panic, itæs probably
  248. still OK and itæs just that the prompt has not been printed. Replace the
  249. disc you were expecting to put in next and press <space> and I think you
  250. will find that it carries on OK. If you havenæt discovered how to do
  251. disc to disc copying on one drive, see the öHave you discoveredò
  252. section.
  253. 1.2
  254. File transfer problems
  255. 1.2
  256. If you are still having problems getting files across from other
  257. computers to the Archimedes, we have received one or two programs from
  258. subscribers. There is not enough space to print them in this issue, but
  259. if you drop us a line, we could send you a listing.
  260. 1.2
  261. Attaching a 5.25ö disc drive
  262. 1.2
  263. Acorn have told us that they would not recommend us to do this as the
  264. disc drive hardware in the computer is only designed to drive 3.5ö
  265. drives with low control line loading and that if you want to attach a
  266. 5.25ò drive, you should have suitable buffer circuitry added. The
  267. feedback we are getting for subscribers is that most of you are having
  268. success with this, though one person said that one drive he attached
  269. would not work whilst another one did and another person actually blew
  270. up the driver chip in the Archimedes. So, itæs up to you, but in the
  271. light of these comments from Acorn, it would clearly be a good idea to
  272. remove the pull-up resistors on the auxilliary drive.
  273. 1.2
  274. (For an alternative, check the öHardware Availableò section to see what
  275. Brainsoft have done to get round the problem.)
  276. 1.2
  277. Three floppies on the desktop
  278. 1.2
  279. In order to get three floppies on the desktop, i.e. assuming you have
  280. added a double 5.25ö disc drive, Gerrald Fitton again comes to our
  281. rescue. öIn the BASIC library program called
  282. $.desktop.accessory.filehandlr you will find that lines 130 and 140
  283. accept the first and second floppies, so you will need an extra line:
  284. 1.2
  285. 145 IF floppies%>2 THEN PROCsys _addtoiconbar_left(öfloppy2ò,╔
  286. 1.2
  287. etc as per lines 130 and 140 and you will have to make a further copy of
  288. lines 290 to 420 (which refer to floppy 0) emulating the changes made to
  289. generate lines 430 to 560 which refer to floppy 1 by inserting ö2ò in
  290. the appropriate places.
  291. 1.2
  292. Fortran 77
  293. 1.2
  294. Tom Fortescue warns potential purchasers of Fortran77 that (a) it needs
  295. at least 1Mbyte and is therefore unusable on the A305 (I havenæt been
  296. able to check this with Acornsoft.) and (b) it does not come with an
  297. editor, so unless youæve got View or Wordwise or Inter-Word or somesuch,
  298. you wonæt get very far with it!
  299. 1.2
  300. Stereo speakers
  301. 1.2
  302. Enoch Mayer says that he has bought, for around ú25, a couple of
  303. öRealisiticò (Tandy) amplified speakers designed for use with personal
  304. stereo radio/tape players. (Model: Minimus-0.6 amplified speaker system
  305. Cat N╝ 40-1259E) Although they run off two sets of four size-C bat
  306. teries, they can easily be adapted to run off small battery eliminators.
  307. They tone in nicely with the Archimedes, but the best thing is that when
  308. no sound signal is received they automatically shut off, thus eliminat
  309. ing the öfuzzò!
  310.  
  311. Å   RAM upgrades Ö If you want to up-grade the ram yourself, rather than
  312. trying to remove the main p.c.b. to get at the sockets where the new
  313. chips are to go, you can remove the front fascia. To do this, remove the
  314. lid, then disconnect the wires that go to the speaker and the Épower onæ
  315. LED by pulling the four-pin socket off the pins on the board. The tongue
  316. at the front of this socket is a clip that holds the socket in place, so
  317. ease this forwards and the socket should slip off easily.  Then you can
  318. remove the fascia itself by undoing the five screws, three underneath
  319. and one at each side. Care should be taken with the eject button on the
  320. disc drive as this can break off fairly easily if roughly handled. (Some
  321. say, will inevitably break off, but a bit of super-glue or the like is
  322. all you need to stick it back in place.) You will then have to remove
  323. the bridge that supports the disc drive(s). This can be done by removing
  324. one screw underneath the computer (do this first) then two screws at the
  325. side. Plug in the chips and reverse the process, again being careful of
  326. the disc eject button.
  327. 1.3
  328. Å   Fitting a second drive is supposed to be a Édealer onlyæ upgrade,
  329. but as long as you know a bit about electronics and vaguely what happens
  330. inside computers, it is not too difficult to fit it yourself. However,
  331. you should watch out that the front fascia plate is not too high. If it
  332. is, it will bear on the disc and may cause an error when you try to
  333. access the disc. I discovered this when I found that the drives worked
  334. OK until I put the new two-hole fascia in place. My solution, when this
  335. happened, was öbrute force and ignoranceò! The metal bracket on which
  336. the drive is supported has a little bit of ögiveò in it Ö enough to
  337. raise the front of the drive by the couple of millimetres necessary to
  338. lift it away from the fascia.
  339. 1.3
  340. The other important thing to know is that to configure your second drive
  341. as drive 1 you need to move the tiny black slider switch at the side of
  342. the drive. It is a four position switch and usually comes in position 0,
  343. so one click will move it to position 1.
  344. 1.3
  345. Å   Anti-Buzz Fix  Ö There are, apparently, two different buzzes. One is
  346. what occurs after you have pressed <escape> or <break> and the other a
  347. much more annoying buzz which not all computers seem to have. The first
  348. buzz is a software problem which is fixed in the 1.2 Arthur, so I am
  349. told, but the other requires a hardware fix which is supposed to be done
  350. by dealers as a free modification, but if you are deft with a soldering
  351. iron and are willing to risk your warranty, hereæs what to do╔
  352. 1.3
  353. The solution, according to Acornæs technical services department is╔
  354. 1.3
  355. öSolder a 100╡F, 10 volt electrolytic capacitor across pins 7 (positive)
  356. and 4 (negative) of IC68. The capacitor should be kept as close to the
  357. p.c.b. as possible and should be secured to the board with glue or hot
  358. wax.ò
  359. 1.3
  360. The bad news is that IC 68 is underneath the bar that supports the disc
  361. drive(s)! The easiest way to get at it is actually, (1) take off the
  362. lid, (2) unplug the lead that  goes to the speaker and power-on LED
  363. (beware, the socket on the ends of the cable has a lip that locks it
  364. onto the pins on the board Ö ease the lip forward before trying to pull
  365. the socket off), (3) take off the front fascia (one screw at each side
  366. and three under the front edge) and (4) unscrew the drive-support bridge
  367. (one screw underneath and two at the side).
  368. 1.3
  369. Å   Problems with monitors Ö Some folk are having problems with certain
  370. monitors. If the problem is lack of contrast, use an oscilloscope to
  371. check the voltage output levels from the Archimedes. If they are less
  372. than 0.7 volts peak-to-peak you may need to change the values of the
  373. output resistors. Acorn have changed resistors R20, R41 and R59 from 68
  374. ohms to 43 ohms, so if you want to increase the output voltage, you
  375. could either change the resistors or solder a 120 ohm resistor in
  376. parallel with each.
  377. 1.3
  378. The other problem with some monitors, especially the NEC and Fujitsu
  379. multisync monitors, is of getting a greenish tinge on white areas. This
  380. comes about because Acorn put the sync signal onto the green line which
  381. is apparently what certain monitors expect. To remove this sync signal,
  382. simply remove resistor R39 Ö a quick snip with a good pair of side-
  383. cutters should do it, but make sure you get the right resistor!
  384. 1.3
  385. (When I tried to do these modifications, I found it wasnæt too easy to
  386. decide which resistor was which because the numbers are actually
  387. underneath the resistors. If you look at the line of resistors coming
  388. away from the video output socket you will see that they are: R1, R3,
  389. R18, R20 (68R), R35, R37, R39 (1k2), R41 (68R), R45, R50, R52, R59
  390. (68R), R60, R63 and R67.)
  391. 1.3
  392. Å   Archimedes on Econet Ö As far as we can gather, the Econet hardware
  393. to be added to the basic 305 or 310 is just the same as the module which
  394. you would purchase for the Master or Compact Ö certainly, the part
  395. supplied by Acorn to one of our readers had the same part number as the
  396. Master equivalent. One problem which Econet users may find on earlier
  397. systems is that even if you only want to use the disc system, you still
  398. have to have a clock signal available, otherwise the computer hangs up!
  399. Presumably this will be corrected in the 1.2 operating system! If you
  400. are used to using !BOOT files on the network, you will need to change
  401. them all to !ARMBOOT as well as having !BOOT files for the BBC. The
  402. Archimedes will work quite well on a Level 3 server but there are no net
  403. utilities like VIEW, REMOTE, NOTIFY, ROFF etc. The only one provided is
  404. an enhanced FREE which includes RDFREE with it. Acorn have öno plansò
  405. for providing these utilities. This, for schools, is quite a problem as
  406. you cannot get to see what is going on around the net. However, software
  407. transfer around the net is very easy. (These comments were kindly
  408. provided by Mr V Smith of King Edwards School, Lytham.)
  409. 1.3
  410. Å   Control key abbreviations Ö Lazy typists like me will like to know
  411. that if you want to type, say, MODE12 perhaps to list a program that was
  412. running in different screen mode or within a window, you can be
  413. abbreviate it to <ctrl-V><ctrl-L>. What you are doing is the equivalent
  414. of VDU22,12. On the BBC micro this was not a good idea because BASIC was
  415. unaware of the change of mode and would start to over-write screen
  416. memory with variables, but it is OK on the Archimedes because the screen
  417. memory is protected by having configured a certain amount of screen RAM.
  418. If you try it and then type PRINT MODE, it knows it is in mode 12. Other
  419. mode numbers can be worked out Ö mode 0 would be <cvtrl-V><ctrl-@>, 1 is
  420. A, 2-B, 3-C, 4-D, 5-E, 6-F, 7-G, 8-H, 9-I, 10-J, 11-K, 12-L, 13-M, 14-N,
  421. 15-O, 16-P, 17-Q, 18-R, 19-S, 20-T, 21-U.
  422. 1.3
  423. This can be extended to things like changing background colour, say to
  424. blue, with <ctrl-S><ctrl-@><ctrl-D><ctrl-@><ctrl-@><ctrl-@> (where
  425. <ctrl-@> is actually done with <ctrl-shift-2>) but there comes a limit
  426. where it is quicker to type in the command rather than remembering the
  427. control codes. You can even do all the plotting functions in this way Ö
  428. try, for example, <ctrl-Y><e><ctrl-C><ctrl-C><ctrl-C><ctrl-C>. (Thatæs a
  429. lower case öeò, not <ctrl-e> so switch caps lock off and just press <e>.
  430. If nothing happens, do a mode change first to a graphics mode, say MODE
  431. 12, then try it.)
  432. 1.3
  433. To change mode when in the Arthur Supervisor, you could use, say, ECHO
  434. || V || L or ECHO || S || @ || D || @ || @ || @ or you could use ECHO
  435. <19><0><4><0><0><0> but you can again just type in the <ctrl> sequences
  436. as mentioned above.
  437. 1.3
  438. Å   Special effects in View Ö You can use *ECHO or use the control key
  439. sequences mentioned above when you are using View. Also, if you want to
  440. put the Éformat blockæ, Émove blockæ and Édelete blockæ commands onto
  441. function keys 10 to 12 (instead of using the <print> key) you can use:
  442. 1.3
  443. *KEY 10 || ! || L
  444. 1.3
  445. *KEY 11 || ! || \
  446. 1.3
  447. *KEY 12 || ! ,
  448. 1.3
  449. Despite what it says in the User Guide about the pageup and pagedown
  450. keys not being used, they seem to work in View and they do actually move
  451. you a page at a time up and down.
  452. 1.3
  453. Å   *RMtidy Ö Beware that on the 0.20 Arthur, this can cause the machine
  454. to crash whenm you subsequently try to us *RMLOAD.
  455. 1.3
  456. Å   There is apparently another undocumented screen mode which will be
  457. available on Arthur 1.2 Ö mode 21 which is 640 x 512 in 256 colours,
  458. though it will obviously only be usable on a multi-sync monitor and uses
  459. 320k of RAM! Also, on the 400 series there will be two extra high
  460. resolution monochrome modes for 64kHz monitors Ö mode 22 which is 160 x
  461. 122 text with 1280 x 976 graphics and mode 23 which is text only at 144
  462. x 54. These use the extra hardware that is on the 400 series boards
  463. though it looks as if there should be space for the chips on the 300
  464. boards if you are prepared to risk fitting them yourself. There are no
  465. sockets, so you would have to solder-suck all the holes first, and itæs
  466. a multi-layer board.
  467. 1.3
  468. Å   Delete on keypad Ö If you compare the keypads of the Master and the
  469. Archimedes, you will see that where the Archimedes has a fullstop, the
  470. Master has a delete key. If you think it would be useful to have the
  471. delete function on the keypad, turn the num lock LED off and try
  472. pressing the fullstop key!
  473. 1.3
  474. Å   Function key definitions Ö If you want to know what the current key
  475. definitions are, *SHOW K* will print them on the screen. The only slight
  476. confusion is that they appear in alphabetic order Ö KEY$0, KEY$1, 
  477. KEY$10,  KEY$11,  KEY$12,  KEY$13, KEY$14, KEY$15,  KEY$2,  KEY$3 etc!
  478. 1.3
  479. Function key 0, as you probably know by now, is put onto the PRINT key,
  480. but where are the other function keys Ö 13, 14 and 15? The only one I
  481. have found is 13 which is on the INSERT key The other thing to watch is
  482. that although there is a separate key for function key 10 (the break key
  483. on the BBC micro), when you press <break>, KEY$10 is expanded as it was
  484. on the BBC micro! (That was on 0.2. Has it changed in later versions of
  485. the OS?)
  486. 1.3
  487. Å   Diary & notepad Ö The diary and notepad can be saved onto disc by
  488. putting the pointer on the pad or the calendar and clicking the middle
  489. button. It then asks for confirmation that you want to save it. The
  490. notepad is saved as önotepadò and the diary as öDiary87ò (or whatever
  491. year it is for). To load them back in again later, you have to open up
  492. the disc and click on the required file before clicking on the diary or
  493. notepad with the middle button and selecting LOAD. When saving, the name
  494. is fixed by the desktop program, but once it has been saved, you can
  495. rename the file if you want to save more than one, though obviously this
  496. applies more to the note-pad as I know that some of you are still having
  497. to use the notepad as a word-processor! Having said all that, I have to
  498. admit that when I was trying this out, I had problems saving the
  499. calendar Ö I kept getting öDisc fullò or öDisc in need of compactionò
  500. errors. Any offers of explanation?
  501. 1.3
  502. Å   The SYSTEMDEVS module is a set of logical device drivers that can be
  503. used from Arthur. They make the device appear to the programmer as if
  504. they were a file system. In Arthur 0.20 you have to load the module from
  505. the Welcome disc, but in 0.30 onwards it should be in ROM. They include
  506. LPT:, KEYBD:, PRINTER:, VDU and RAWVDU: so a simple command to copy a
  507. file to screen would be *COPY FILE VDU: and any non-printing characters
  508. appear in the format used to program the function keys, i.e. using pad
  509. characters so that, for example, ASCII 12 comes out as || L.
  510. 1.3
  511. What is the point of these facilities? Well, you can use them to
  512. redirect the flow of data into or out of a program or relating to an
  513. Arthur command. Thus you can say *EX {>info } which sends the output
  514. from the EX command to a file called öinfoò and *CAT {>>info } will then
  515. ADD the catalogue information onto the end of the info file, or *CAT
  516. {printer: } would print out the catalogue. *BASIC {<data } PROG would
  517. run the BASIC program PROG and take it input information from the DATA
  518. file rather than from the keyboard. Another possible application is for
  519. debugging a program that is sending data to a disc file. Rather than
  520. stopping the program and examining the disc file periodically, you could
  521. change the line in the program where you set up the file for output and
  522. use instead X% = OPENOUT öPRINT:ò then subsequent PRINT#X%æs or
  523. BPUT#X%æs would go to the printer. If the output is un-printable (or do
  524. I mean non-printing?!) characters then you could set the printer into a
  525. hex dump format which many dot matrix printers have these days. Then a
  526. final suggestion for an application would be when using network and
  527. ADFS. To avoid switching between the two, you could say X%=OPENOUT
  528. öADFS:$.TESTò. This means that you could presumably have files open on
  529. both the network and the disk at the same time, but not having a network
  530. for my solitary Archimedes, I cannot check this!
  531. 1.3
  532. (These comments were derived from an article in öEurekaò the Auckland
  533. BBC User Groupsæ Archimedes Newsletter. Many thanks to the editor, Tony
  534. Krzyzewski. Write to him if you want more details of Eureka c/o Barsons
  535. Computers, P O Box 26287, Epsom, Auckland, New Zealand.)
  536. 1.3
  537. Å   ROMs that work under the emulator.
  538. 1.3
  539. Acornsoftæs Comal, Prolog and Lisp seem at first look to be OK, and one
  540. reader comments that Logotronæs Logo is OK but that the graphics are
  541. öfunnyò Ö whatever that means.
  542. 1.3
  543. Damon Hoggett reckons that to get the View series ROMæs to work, you
  544. need to *LOAD them at &10000 and then poke the following addresses to
  545. &EA (a NOP instruction) as explained last month. View B3.0: &128A2,
  546. ViewSheet B1.0: &10690, 691 and 692 and ViewStore 1.0: &12BCE, BCF and
  547. BD0 then you *SAVE filename 10000+4000 8000 8000. We made a mistake with
  548. the mention last month of Viewstore 1.1 (page 23). The poke should be
  549. ?&12BE2=&EA, not 1ABE2 and you should also poke the next two bytes,
  550. &12BE3 and E4.
  551. 1.3
  552. BBCSoftæs Monitor ROM seems to work OK with the emulator. You can
  553. apparently assemble, disassemble and single-step through 6502 machine
  554. code without problems.
  555. 1.3
  556. Some folk are saying the Inter-Chart works under the emulator, though
  557. not option 9 to import data.
  558. 1.3
  559. Å   BASIC editor on 0.20 OS Ö If you are in BASIC and you type EDIT,
  560. BASIC issues a *ARMBE command, so if that module is not already loaded
  561. into memory, it will look in the operating system ROM and then in the
  562. current directory on the current drive for the ARMBE module. If it is
  563. not there, it will come up with öBad commandò. However, if it finds it,
  564. it will load it into memory. Then to enter the editor, you just type
  565. EDIT again. So, until you get your 1.2 OS(!) it is a good idea to copy
  566. the ARMBE module into the directory in which you keep your BASIC
  567. programs so that it is ready to use at any time.
  568. 1.3
  569. Å   No room in RMA Ö If you are in BASIC and try to *RMLOAD a module,
  570. you may get öNo room in RMAò even if the configuration is set to allow
  571. enough space for that particular module. But if you QUIT first into the
  572. Arthur supervisor you can do the RMLOAD and then go back into BASIC and
  573. OLD to get your program back. However, I think I would tend to save the
  574. program first just in case!
  575. 1.3
  576. Å   BASIC V tips from Colin Dean, author of ÉAdvanced BASICæ (Tubelinkæs
  577. BASIC V look-alike for the BBC & Master)
  578. 1.3
  579. In the LIST IF command, if you put a space between the IF and the
  580. <string> that follows it, you get a different effect. For example if you
  581. have two lines:
  582. 1.3
  583. 10RECTANGLE 1,2,3,4
  584. 1.3
  585. 20 RECTANGLE 5,6,7,8
  586. 1.3
  587. Then öLIST IF RECTANGLEò shows line 20 only, whereas öLIST IFRECTANGLEò
  588. shows both.
  589. 1.3
  590. A neat way to test more than one expression at once, without having to
  591. use heavily nested IFæs is to use öCASE TRUE OFò. For example,
  592. 1.3
  593. CASE TRUE OF
  594. 1.3
  595.   WHEN X=3 AND Y=4:PRINTöX=3 and Y=4ò
  596. 1.3
  597.   WHEN X>7, Z=0:PRINTöX>7 OR Z=0ò
  598. 1.3
  599. ENDCASE
  600. 1.3
  601. However, you should beware of mixing numerics and logicals in CASE
  602. expressions. For example,
  603. 1.3
  604. X = 6
  605. 1.3
  606. CASE X OF
  607. 1.3
  608.   WHEN TRUE : PRINT öTRUEò
  609. 1.3
  610.   WHEN FALSE : PRINT öFALSEò
  611. 1.3
  612.   OTHERWISE PRINT öSPURIOUSò
  613. 1.3
  614. ENDCASE
  615. 1.3
  616. this prints öSPURIOUSò because É6æ is neither true (Ö1) or false (0).
  617. 1.3
  618. Å   Improved boot file for WWPlus Ö The !BOOT file on the Archimedes
  619. Wordwise Plus discs is a BASIC program which checks whether the 6502
  620. emulator is installed and if not loads it off the Welcome disc. If
  621. instead you copy 65arthur onto your Wordwise Plus discs you can use a
  622. simpler boot file which just says:
  623. 1.3
  624. QUIT
  625. 1.3
  626. 65ARTHUR
  627. 1.3
  628. WW+
  629. 1.3
  630. and then do a *OPT 4 3 so that the computer EXECæs the boot file instead
  631. of running it. If you are using the disc version of CP-ROM, just add
  632. 1.3
  633. :SELECT SEGMENT 8
  634. 1.3
  635. :LOAD TEXT ö$.CP-ROM.CPstartò
  636. 1.3
  637. *FX138,0,152
  638. 1.3
  639. to the boot file and it will start up the CP-ROM as well.
  640. 1.3
  641. Å   Have you seen the whale?! Ö When playing Zarch, one or two folk have
  642. discovered a whale that appears in the sea (or is it a shark or a sea-
  643. monster?). You get 1000 points if you exterminate it and sometimes it
  644. öbeachesò itself and becomes a much easier target. By the way, how are
  645. the scores going? Iæve just about managed to avoid being called a wet
  646. lettuce or a stuffed aubergine, but one reader, Malcolm Roberts says his
  647. son has reached 53,291.
  648. 1.3
  649. (STOP PRESS! Iæve just seen it too Ö very fleetingly. It was bluish with
  650. a zig-zag fin on its back!)
  651. 1.3
  652.  
  653. Å   Having asked last time about function keys 14 and 15, it seems that
  654. they are only available when the cursor editing is switched off by doing
  655. a *FX4,2 after which, cursor right, down and up give definitions 13, 14
  656. and 15. (Remember that 13 is normally available on the insert key
  657. anyway.)
  658. 1.4
  659. Å   Word-Perfect does not work under the PC-Emulator at present. This is
  660. due to a bug in the emulator which is being fixed Ö a new version will
  661. be available öshortlyò.
  662. 1.4
  663. Å   If you want to read the mouse when using the 6502-emulator, this can
  664. be done in BASIC IV by using ADVAL 7 and 8 to return the X and Y co-
  665. ordinates respectively. 6502 machine code programs can be modified to
  666. use OS_Byte 128 with X=7 to give the X value and X=8 to give the Y
  667. value. The co-ordinates are returned in the X and Y registers, X being
  668. the low byte and y the high byte.
  669. 1.4
  670. If you want to read the mouse buttons from BASIC IV, use INKEY(-n) where
  671. n=10, 11 and 12 for select, menu and adjust respectively and in machine
  672. code use OS_Byte 129 with X containing the -n number (&F6, &F5 and &F4)
  673. and Y containing &FF.
  674. 1.4
  675. Å   Users of the Acorn colour monitors may not have realised that there
  676. is a switch inside the control panel at the front of the monitor which
  677. switches off all but the green gun. Depressing this switch makes the
  678. display slightly easier to read, especially if you are trying to use a
  679. 132 column mode.
  680. 1.4
  681. Å   Setting the ö*TIMEò format Ö The output format used by *TIME can be
  682. changed via a É*SET Sys$DateFormatæ command. The following is a list of
  683. the valid parameters and the result they will return:
  684. 1.4
  685. %am   Display Éamæ or Épmæ depending on the time.
  686. 1.4
  687. %pm   Display Éamæ or Épmæ depending on the time.
  688. 1.4
  689. %ce   Current century
  690. 1.4
  691. %cs   (Centiseconds) Hundredths of a second
  692. 1.4
  693. %dn   Day number (001 = 1st January)
  694. 1.4
  695. %dy   Day of the month
  696. 1.4
  697. %mi   Minutes
  698. 1.4
  699. %mn   Month number
  700. 1.4
  701. %mo   Current month (e.g. ÉJanuaryæ)
  702. 1.4
  703. %m3   Current month abbreviated to 3 characters (e.g. ÉJanæ)
  704. 1.4
  705. %se   Seconds
  706. 1.4
  707. %st   Day of the month trailer (i.e. Éstæ, Éndæ, Érdæ or Éthæ)
  708. 1.4
  709. %we   Weekday (e.g. ÉWednesdayæ)
  710. 1.4
  711. %w3   Weekday abbreviated to 3 characters (e.g. ÉWedæ)
  712. 1.4
  713. %wk   Week number (since start of year)
  714. 1.4
  715. %wn   Weekday number (1 = Sunday, 7 = Saturday)
  716. 1.4
  717. %yr   Current year (e.g. 87)
  718. 1.4
  719. %12   Hours on 12 hour clock
  720. 1.4
  721. %24   Hours on 24 hour clock
  722. 1.4
  723. Note that changing the format does not affect the TIME$ format as used
  724. in BASIC V.
  725. 1.4
  726. The default setting, which is: %w3,%dy %m3 %ce%yr.%24:%mi:%se, can be
  727. seen by typing *SHOW S*.
  728. 1.4
  729. If the date or the year is changed, the day of the week is automatically
  730. recalculated, so no errors occur. (See competition results on page 46.)
  731. 1.4
  732. Other characters may also be inserted into the definition of the *TIME
  733. format. For example,
  734. 1.4
  735. *SET Sys$DateFormat %we, %dy%st %mo, %ce%yr. Time: %24:%mi [%se seconds]
  736. 1.4
  737. will produce output in the form: öMonday, 07th December, 1987. Time:
  738. 12:07 [45 seconds]ò.
  739. 1.4
  740. If you want to strip off the leading zero on the %dy output, use %zdy%st
  741. which will produce ö7th Decemberò. If you want, for some reason to have
  742. the character É%æ as part of the format, use ö%%ò.
  743. 1.4
  744. If you want to split the string into several zero-terminated strings,
  745. you can use É%0æ which will insert a zero byte into the string.
  746. 1.4
  747. New time formats in BASIC Ö If all you want to do is print out the value
  748. of time within a BASIC program you can simply use the star command *TIME
  749. as a line within the program. If however you want to pick up the time as
  750. an actual string, you need to use the following function:
  751. 1.4
  752. DEF FNnewtime
  753. 1.4
  754. LOCAL Workarea, Time$
  755. 1.4
  756. DIM Workarea 256
  757. 1.4
  758. ?Workarea = 3
  759. 1.4
  760. SYS öOS_Wordò,14,Workarea,256
  761. 1.4
  762. SYS öOS_ConvertStandardDateAnd Timeò,Workarea,Workarea,256 TO Time$
  763. 1.4
  764. =Time$
  765. 1.4
  766. Help!!! The format which the system uses to record time and date is a 40
  767. bit number (as used to store the datestamp of a file) but we have not as
  768. yet found a system routine to convert any date into this format. Has
  769. anyone found such a routine or written anything of the sort?
  770. 1.4
  771. Å   Break/escape effects Ö To control the effects of <escape> and
  772. <break> with various combinations of <ctrl> and <shift>, you can use
  773. *FX247,n where n is a binary number whose eight bits control the various
  774. effects as follows:
  775. 1.4
  776. Bits 7 and 6 control action of <shift-ctrl-break>
  777. 1.4
  778.    7   6
  779. 1.4
  780.    0   0   Ö   öNormal actionò (= hard reset + boot drive 0)
  781. 1.4
  782.    0   1   Ö   Acts like <escape>
  783. 1.4
  784.    1   0   Ö   Disables <shift-ctrl-break>
  785. 1.4
  786. Bits 5 and 4 control action of <ctrl-break>
  787. 1.4
  788.    5   4
  789. 1.4
  790.    0   0   Ö   Hard reset
  791. 1.4
  792.    0   1   Ö   Acts like <escape>
  793. 1.4
  794.    1   0   Ö   Disables <ctrl-break>
  795. 1.4
  796. Bits 3 and 2 control action of <shift-break>
  797. 1.4
  798.    0   0   Ö   Boots disc in drive 0
  799. 1.4
  800.    0   1   Ö   Acts like <escape>
  801. 1.4
  802.    1   0   Ö   Disables <shift-break>
  803. 1.4
  804. Bits 1 and 0 control action of <break>
  805. 1.4
  806.    0   0   Ö   Soft reset
  807. 1.4
  808.    0   1   Ö   Acts like <escape>
  809. 1.4
  810.    1   0   Ö   Disables <break>
  811. 1.4
  812. The default setting (on 0.20 OS) seems to be *FX247,1 so that all works
  813. öas normalò except that the break key has been turned into another
  814. escape key. Typing *FX247,0 or just *FX247 turns the break key into the
  815. old öproperò break key that BBC owners will remember, i.e. it does a
  816. soft reset, as does the reset button on the back of the keyboard.
  817. 1.4
  818. Å   When you re-load a picture created by the ARM-Paint program, you
  819. sometimes find that certain of the colours are flashing. To avoid this,
  820. add a line to the PAINTING program:
  821. 1.4
  822. 18165 *FX9
  823. 1.4
  824. which should fix the problem. It actually flashes while the picture is
  825. being loaded but then the flashing stops when this line is executed.
  826. 1.4
  827. Å   Long printer cables. Those of you who have been using very long
  828. printer cables on the BBC micro will find that the Archimedesæ printer
  829. output has not got sufficient drive to cope with more than about 2
  830. metres of cable. The only way to get round this would be to use a
  831. printer buffer that had a higher output drive capability.
  832. 1.4
  833. Å   For an interesting sound effect (on 0.30 Arthur), type in
  834. ö*Configure Sounddefault 1 7 7ò followed by <ctrl-break>. This alters
  835. the bell sound as produced by VDU7. To return to normal, set Soundde
  836. fault 1 7 1.
  837. 1.4
  838. Å   For those who still havenæt got a word-processor (you did fill in
  839. your registration form, didnæt you?!?) and are wanting to use the BASIC
  840. editor as a wordprocessor, type *KEY0 L.O8||ML.||B||M||A||?||A||?||C and
  841. you will find that the Éprintæ key lives up to its name.
  842. 1.4
  843. Å   ROMs that work under the emulator. The second processor version of
  844. ISO Pascal (files Dpascal and Dcomp on the disc that comes with the two-
  845. ROM set) works fine under the emulator though the compilation time is a
  846. little slower than on the Beeb.
  847. 1.4
  848. Anyone who has the EDIT software from the BBC Master can transfer it to
  849. the Archimedes and it seems to work OK. There appears to be a strange
  850. message when the software is called and if the function key help screen
  851. is selected, it looks a bit peculiar. If you only want to process small
  852. amounts of text (about 30k) then use EDIT Ö itæs much cheaper than
  853. buying TWIN for ú30.
  854. 1.4
  855. Å   The default values of the parameters in the HardcopyFX module are
  856. 0,1,1,0,1 which gives, in order, landscape (i.e. sideways Ö to get
  857. portrait, use 1), X and Y scale factors of 1 (no limit, it seems, but
  858. you canæt use fractions), the margin which is measured in 1/72 nds of an
  859. inch with a maximum of 576 and finally the threshold (the colour number
  860. which determines whether a dot is printed or not, I presume) which can
  861. take values up to 255. There is a clever öPrinter Time Outò error built
  862. into the code in case the printer is not connected.
  863. 1.4
  864. Å   Switching off the desktop on Arthur 1.2.
  865. 1.4
  866. If, having changed from operating system 0.2 to 1.2, you donæt like
  867. going into the desktop every time you switch on, you can *CONFIGURE
  868. Language 4 and <ctrl-break> and you will be brought into BASIC instead.
  869. The desktop can then be called up with *DESKTOP at any time. If you
  870. decide to go back to initialising into the desktop, *CONFIGURE Language
  871. 3 should do the trick.
  872. 1.4
  873. Do keep the hints & tips coming. They are one of the most useful parts
  874. of the magazine Ö do you agree? We could do with more feedback about
  875. what you like and what you donæt.
  876. 1.4
  877. The trouble is that you remember that you read something but cannot
  878. remember in which issue or on which page so weære hoping to do a full
  879. Archive index Ö anyone like to start it off for us? Would you like just
  880. a paper index or one on database? Let me know what you think.
  881. 1.4
  882. Watch out too for a binder for your Archive magazine. More details next
  883. month.
  884.  
  885. Å   Text files for BASIC. I always used to write my BASIC programs in
  886. Wordwise and put an AUTO command as the top line then go into BASIC and
  887. NEW and then *EXEC <filename>. But I╒ve just discovered (what I╒m sure
  888. you all knew already) that BASIC can do it for me. You don╒t have to put
  889. AUTO at the top you just say  *BASIC -LOAD <filename> and it will load
  890. the text version of the program and put line numbers onto it. However,
  891. as with the *EXEC technique, you cannot use long multi-statement lines
  892. or you will get the öLine too longò error.
  893. 1.05
  894. (One reader, who was using Arthur 0.2, found that text files longer than
  895. 32k got corrupted, but I tried it on my system with BASIC 1.02 and
  896. Arthur 1.2 and it seemed OK.)
  897. 1.05
  898. Å   Fast screen save. This is obviously something which a number of you
  899. have been thinking about. I got a lot of response to my pleas for help.
  900. Several of you gave ways of *SAVEing the screen information from the
  901. appropriate bit of RAM and re-loading it there, though this obviously
  902. will not bring with it the palette information or the correct mode. For
  903. example:
  904. 1.05
  905. DEF PROCscreensave(filename$)
  906. 1.05
  907. LOCAL K%
  908. 1.05
  909. CASE MODE OF
  910. 1.05
  911.   WHEN 0,1,4,5,6 : K%=20
  912. 1.05
  913.   WHEN 2,3,8,9,11,18 : K%=40
  914. 1.05
  915.   WHEN 7,10,12,13,14,19 : K%=80
  916. 1.05
  917.   WHEN 16,17 : K%=132
  918. 1.05
  919.   WHEN 15,20 : K%=160
  920. 1.05
  921. ENDCASE
  922. 1.05
  923. !&80=149:!&84=-1
  924. 1.05
  925. SYS 49,&80,&88 : REM OS_ReadVduVariables
  926. 1.05
  927. OSCLIöSAVE ò+filename$+ö ò+STR$
  928. 1.05
  929. ~(!&88)+ö +ò+STR$~(K%*1024)
  930. 1.05
  931. ENDPROC
  932. 1.05
  933. This takes only a second or two to save the screen. It can be reloaded
  934. by typing *LOAD filename. The program saves the whole screen, not just
  935. the graphics window. You must not have scrolled the screen prior to
  936. saving or re-loading, but a CLS before re-loading will cancel the
  937. scrolling. Also, you must be in the right mode for the screen you are
  938. about to load and you need to have the same screen colour definitions
  939. set up.
  940. 1.05
  941. What we have been promised though is a module, which we hope to publish
  942. next month, which will give you legal *commands (or SWIs) for loading
  943. and saving screen information including palette and mode and you will
  944. find that it is several times faster than the existing SCREENSAVE
  945. routines.
  946. 1.05
  947. Å   Extra help on BASIC╔ (OS1.2) If you type *BASIC -help<return> you
  948. get a bit more help information about BASIC. (But does anyone know what
  949. the last two bits refer to? i.e. what is an öin-coreò program? Does it
  950. mean you can have more than one program in memory?)
  951. 1.05
  952. Å   ADFS: If you name all your discs with *NAMEDISC, the Archimedes will
  953. remember the previously mounted discs. So, for example, if you put in a
  954. disc called TESTING and you *MOUNT it and then put in a disc called
  955. BASICPROGS and *MOUNT that, you can then see the directory of TESTING
  956. without putting the disc back in again. All you do is type *MOUNT
  957. TESTING and you can *CAT it. If you then want to look at the disc that
  958. is in the drive, you will of course have to *MOUNT again. The only
  959. problem occurs when you have backup discs because they will have the
  960. same name ÿ this gives öAmbiguous disc nameò.
  961. 1.05
  962. Å   Sprite Editor. öTo create a new sprite╔ò It took me ages to find out
  963. how to create a new sprite. The manual tells you to click on the
  964. öCreateò box and öyou are then prompted for a name and a modeò. I was
  965. expecting a prompt something like: öPlease enter name:ò. I saw the words
  966. öCreate spriteò appear at the bottom of the screen and assumed it wanted
  967. some sort of confirmation that that was what I wanted to do, but
  968. whatever I did, the words disappeared again! In fact that is the actual
  969. prompt that the manual was referring to! All you do is type in the new
  970. name and press <return>. You would have thought they could have put in a
  971. more obvious prompt than that ÿ or maybe just switched on the cursor to
  972. indicate that it was time to type something rather than click on the
  973. mouse buttons, but perhaps I have been spoiled by using the Apple Mac
  974. where prompts are rather more obvious and logical! Huhh!
  975. 1.05
  976. Å   Reading the catalogue. An easier way to read the contents of a
  977. catalogue, rather than reading it off the screen (see Gus Gem╒s article
  978. last month) is to use SYS öOS_GBPBò as follows╔
  979. 1.05
  980. DIM C% 999
  981. 1.05
  982. !&80=&2A00
  983. 1.05
  984. SYS öOS_GBPBò,9,&80,C%,999,0,
  985. 1.05
  986. 999 TO ,,,ENTRIES
  987. 1.05
  988. This stores the filenames and sub-directories of the current directory
  989. at the address C%, in alphabetical order and each terminated by a zero
  990. byte. The number of entries is stored in the BASIC variable ENTRIES.
  991. 1.05
  992. Å   Neater than OSCLI╔ SYS 6 (equivalent of FX calls) is much neater
  993. than using OSCLIs: e.g. Matthew Treagus╒ screen bank switching would
  994. look neater if, instead of using OSCLI (öFX112,ò+STR$N%) he had used SYS
  995. 6,112,N%. If you don╒t like the anonymity of SYS 6, you can use SYS
  996. öOS_Byteò,112,N%. (See Gerald╒s article on page 12.)
  997. 1.05
  998. Å   Beebug╒s Masterfile can be made to work on the Archimedes without
  999. using the emulator ÿ it just needs a very few modifications ÿ contact
  1000. Dr╩╩Peter Catermole at Winchester College, Kingsgate Road, Winchester,
  1001. SO23 9PG.
  1002. 1.05
  1003. Å   BBC ROMs ÿ Continuing the saga of poking various bytes to get BBC
  1004. ROMs to work under the emulator, View B3.0 should apparently have A8A1,
  1005. 2 and 3 poked to &EA and Viewspell 1.0, &820F, 8210 and 8211 likewise.
  1006. 1.05
  1007. Å   When setting the clock, the setting box sometimes covers the face of
  1008. the clock, so point at the bottom right hand corner of the clock box and
  1009. then press the middle mouse button.
  1010. 1.05
  1011. Å   Plugging modules in and out. It╒s all very well to have lots of
  1012. modules in the 1.2 ROM but, at power up, several of these modules are
  1013. installed into ram which cuts down your available memory. Exactly which
  1014. ones are installed is set by various bytes in the CMOS ram. To find out
  1015. what all the modules are and whether they are actually active, type
  1016. *ROMModules. (or just *ROM. for short.) You can öunplugò the modules by
  1017. using *UNPLUG <modulename> and it stays unplugged until you öinsertò it
  1018. again with *RMREINIT <modulename>. It seems that the extra space does
  1019. not become available until you press <ctrl-break>. If you type *UNPLUG
  1020. without a module name it tells you which modules are currently
  1021. unplugged.
  1022. 1.05
  1023. Å   How╒s this for a screen dump? (sent in by Ken Yeardley) It is for
  1024. mode 0, it works on the NEC PC8023, it can be put on a function key and
  1025. it only takes 118 seconds.
  1026. 1.05
  1027. VDU2,1,27,84,1,&31,1,&36: FOR
  1028. 1.05
  1029. A%=&1FDCFB0 TO &1FDCFFF:VDU2,
  1030. 1.05
  1031. 1,27,83,1,&30,1,&35,1,&31,1,&32:
  1032. 1.05
  1033. FOR B%=A% TO A%-20400 STEP-&50:
  1034. 1.05
  1035. VDU1,?B%,1,?B%: NEXT: VDU1,10:
  1036. 1.05
  1037. NEXT: VDU3
  1038. 1.05
  1039. The reason it is so short is that the NEC printer has the MSB and LSB of
  1040. the byte that defines which pins hit the paper, the opposite way round
  1041. from Epson printers. (See page 9 for a sample screendump.
  1042. 1.05
  1043. Å   Beware the microwave! One reader was having problems with data
  1044. corruption on the RS423 but it turned out to be only when his wife was
  1045. using the microwave oven four yards away, the other side of a brick
  1046. wall!
  1047. 1.05
  1048. Å   Here╒s a little routine sent in by Mike Hobart which uses the
  1049. debugger module for disassembly and memory dumps. It doesn╒t quite rival
  1050. Toolkit, but it╒s a bit cheaper!
  1051. 1.05
  1052. INPUTöDisassembly or Memory dump? (D/M)ò,R$
  1053. 1.05
  1054. CASE R$ OF
  1055. 1.05
  1056.   WHEN ödò,öDò : N%=FNi:REPEAT PROCx(öIò,N%,ö +10ò):UNTIL FALSE
  1057. 1.05
  1058.   WHEN ömò,öMò : N%=FNi:REPEAT PROCx(öò,N%,ö +FFò):UNTIL FALSE
  1059. 1.05
  1060. ENDCASE
  1061. 1.05
  1062. END
  1063. 1.05
  1064. DEFPROCx(S$,M%,L$)
  1065. 1.05
  1066. WHILE INKEY(-99)
  1067. 1.05
  1068.   OS_CLI(öMEMORYò+S$+ö ò+
  1069. 1.05
  1070. STR$~(N%)+L$)
  1071. 1.05
  1072.  N%=N%+100
  1073. 1.05
  1074. ENDWHILE
  1075. 1.05
  1076. ENDPROC
  1077. 1.05
  1078. DEFFNi
  1079. 1.05
  1080. INPUTöFrom(Address &nnnnnn)òÉN$
  1081. 1.05
  1082. PRINTöPress <space> to scrollò
  1083. 1.05
  1084. IF ASCN$<>ASCö&òTHEN N$=ö&ò+N$
  1085. 1.05
  1086. =EVAL N$
  1087. 1.05
  1088. Å   Desktop on 1.2. (All the remaining H & T are based on material sent
  1089. in by Bruce Roberts.) As an alternative to double clicking on <select>
  1090. to open a file or run an application, try a single click on the adjust
  1091. button ÿ it has the same effect.
  1092. 1.05
  1093. The quick way to open a diary (or notepad), rather than opening the
  1094. diary window first and then pressing <menu>, is to double click on the
  1095. diary icon on the disk directory ÿ the window opens automatically.
  1096. 1.05
  1097. You can now save diaries and notepads with whatever name you like and
  1098. you can also click, or move with the cursor keys, and put text anywhere
  1099. in the window.
  1100. 1.05
  1101. The following keys can now be used on diary and notepad:
  1102. 1.05
  1103. <insert>   Insert single character
  1104. 1.05
  1105. <copy>   Delete character to the right of
  1106. 1.05
  1107.    the cursor
  1108. 1.05
  1109. <ctrl-insert>   Insert a line above the cursor
  1110. 1.05
  1111. <ctrl-copy>   Delete a line
  1112. 1.05
  1113. <shift-left/right>   Move 4 characters sideways
  1114. 1.05
  1115. <ctrl-left/right>   Move to the end of the line
  1116. 1.05
  1117. Notepads can be created from within View by saving a file (up to 100
  1118. lines, 78 characters wide) and then doing a *SETTYPE <filename> &FEE.
  1119. Existing notepads can be edited with View provided you use READ
  1120. <filename> instead of LOADing it and WRITE <filename> instead of SAVEing
  1121. it.
  1122. 1.05
  1123. Å   After using the desktop, the function keys do not produce the normal
  1124. programmable strings or ASCII values. It seems that this is because
  1125. Acorn have not stuck to their own rules (see Programmers╒ Reference
  1126. Manual, page 488) because they do not call SWI Wimp_ CloseDown. The
  1127. öfixò published elsewhere of typing *FX225,1 is fine if you only want to
  1128. restore the strings to f0 - f9. To get f10 - f12 back, you need *FX221,1
  1129. but the simplest thing seems to be to make sure that everything is back
  1130. to its default setting by using a program, perhaps called QUIT, which
  1131. you can run from the desktop instead of clicking on the exit icon. To
  1132. set the default of all the combinations of <ctrl> and <shift> with all
  1133. the function keys, you need:
  1134. 1.05
  1135.    *FX225,1
  1136. 1.05
  1137.    *FX226,&80
  1138. 1.05
  1139.    *FX227,&90
  1140. 1.05
  1141.    *FX228,0
  1142. 1.05
  1143.    *FX221,1
  1144. 1.05
  1145.    *FX222,&D0
  1146. 1.05
  1147.    *FX223,&E0
  1148. 1.05
  1149.    *FX224,&F0
  1150. 1.05
  1151.    MODE 0
  1152. 1.05
  1153.    *BASIC
  1154. 1.05
  1155. If you don╒t put in a MODE statement, you╒ll find yourself typing
  1156. invisibly! The *BASIC means you come out into BASIC but with no program
  1157. in memory.
  1158. 1.05
  1159. As an alternative, you could miss out the call to BASIC and put:
  1160. 1.05
  1161.    W%=GET
  1162. 1.05
  1163.    *MOUNT
  1164. 1.05
  1165.    *!BOOT
  1166. 1.05
  1167. The idea would be that you would click on this program, change to the
  1168. disc you want to boot up, and press a key. You may want to include a
  1169. prompt to the user to öreplace disc and press space barò or somesuch.
  1170. The use of *!BOOT means that it doesn╒t matter if the boot file should
  1171. be *EXECed or *RUN ÿ either will be done by the *!BOOT according to the
  1172. file type.
  1173. 1.05
  1174. Å   Avoiding the desktop. If you donæt want to go into the desktop every
  1175. time you switch on or press <ctrl-break>, do a *CONFIGURE LANGUAGE 4 and
  1176. press <ctrl-break>. When you want to go into the desktop, type *DESKTOP
  1177. or *DES. for short. If you change your mind, *CON. LANG. 3 will bring
  1178. you into desktop at switch on or LANG. 0 will start you in the super
  1179. visor mode.
  1180. 1.05
  1181. Å   View boot file. Here is a more sophisticated boot file than the one
  1182. we gave originally:
  1183. 1.05
  1184. *ECHO<22><3>
  1185. 1.05
  1186. *| selects mode 3
  1187. 1.05
  1188. *GOS
  1189. 1.05
  1190. *65ARTHUR
  1191. 1.05
  1192. *GO F800
  1193. 1.05
  1194. *LOAD VIEW 8000
  1195. 1.05
  1196. *GO 8000
  1197. 1.05
  1198. *ECHO<19><0><16><48><48><240>
  1199. 1.05
  1200. *| sets background colour
  1201. 1.05
  1202. *ECHO<19><1><16><240><240><208>
  1203. 1.05
  1204. *| sets foreground colour
  1205. 1.05
  1206. *ECHO<19><2><24><240><128><0>
  1207. 1.05
  1208. *| sets border/line colour
  1209. 1.05
  1210. SET FI
  1211. 1.05
  1212. *| sets Format and Insert modes
  1213. 1.05
  1214. NEW
  1215. 1.05
  1216. Å   Avoiding *MOUNT. To avoid typing *MOUNT each time you put a new disc
  1217. in the drive, you can set an alias with, for example, *SET ALIAS$? MOUNT
  1218. | M CAT so that when you type *?<return> it does the mount and the
  1219. catalogue all in one.
  1220. 1.05
  1221. Å   Centronics GLP screendump. The *HardCopyMX nearly works because the
  1222. printer  is Epson-compatible-ish! All you need to do is issue, from
  1223. BASIC, the following codes:
  1224. 1.05
  1225. VDU2,1,27,1,65,1,8,1,27,1,50,3
  1226.  
  1227. Å   (1.2 OS) If you want to look at the desktop manager programs and
  1228. perhaps modify them and run them from disk, the following information
  1229. may be of use:
  1230. 1.6
  1231. The DESKTOP has its own filing system activated by *DESKFS. If you do a
  1232. *CAT, you will get:   DeskTopMgr
  1233. 1.6
  1234. DeskTopMgr2
  1235. 1.6
  1236. &.!palette
  1237. 1.6
  1238. Icons.Desktop
  1239. 1.6
  1240. Icons.Calculator
  1241. 1.6
  1242. Icons22.Desktop
  1243. 1.6
  1244. Icons22.Calculator
  1245. 1.6
  1246. You can then LOAD the DeskTopMgr2 program and LIST it. (DeskTopMgr╩is
  1247. just the 5-line startup program that gets left in BASIC when you exit
  1248. the desktop.)
  1249. 1.6
  1250. If you change back to *ADFS, you can then save the program. To copy the
  1251. palette and/or the Icons, you have to use commands such as:
  1252. 1.6
  1253. *COPY DESKFS:I*.Desktop $.I*.Desktop
  1254. 1.6
  1255. (assuming you are in ADFS and have created a directory called Icons)
  1256. 1.6
  1257. To run the program from disk, you need the icon and palette files to be
  1258. copied across then if you fancy tackling 76k of öcrunchedò BASIC
  1259. program, you can try editing it!
  1260. 1.6
  1261. Å   If you are using the decrement or increment (+= or Ö=) in a BASIC
  1262. program and you get a öMistakeò error on that line, the chances are that
  1263. you have forgotten to initialise the variable. Try typing X=X+1:PRINT X
  1264. and it will give the value 1 but if you type Y+=1 it will say öMistakeò.
  1265. What it really should say is öUnknown or missing variableò, but still,
  1266. good programmers wonæt get the problem because we always remember to
  1267. initialise all our variables, donæt we? (We do?)
  1268. 1.6
  1269. Å   Testing multi-sync output without a multi-sync monitor! If you are
  1270. writing software and hoping to sell enough of it to be able to afford a
  1271. multi-sync monitor(!) you have the problem of testing your software in
  1272. modes 18 to 20. If you use *Configure MonitorType 1, modes 0 to 17 are
  1273. still displayed as normal then when you select modes 18 to 20 and
  1274. generate the screen output, you can use a screendump (such as Gerald
  1275. Fittonæs minidump or *HardCopyFX) to look at what youæve got. If youære
  1276. worried about damaging the monitor, switch it off before changing mode.
  1277. 1.6
  1278. Å   Using large printer buffers etc. If youære using a buffer thatæs
  1279. larger than 64 kbytes, itæs no use trying to use ADVAL with a negative
  1280. number (e.g. PRINT ADVAL(-4) for the printer buffer) Ö it only returns
  1281. the least two significant bytes. Instead, use SYS öOS_Byteò, &80, &FC TO
  1282. , X%, Y% : bytes_free%= X%+256*Y% where &FC is the Ö 4 value. (Actually,
  1283. instead of working out that Ö 4 is the equivalent of &FC you can, it
  1284. seems, be lazy and use Ö 4 in the SYS command. Ed.)
  1285. 1.6
  1286. Å   Easy loading of modules: To enable you to load the emulator and fast
  1287. BASIC easily, you can create some library programs on your Welcome disc
  1288. (or better still, a copy of your Welcome disc!). This is what you do for
  1289. fast BASIC:
  1290. 1.6
  1291. *BUILD LIBRARY.FAST
  1292. 1.6
  1293. *FX225,1|M
  1294. 1.6
  1295. *KEY1 QUIT||M*MODULES.RAMBASIC
  1296. 1.6
  1297. ||M*KEY1||MCLS||MHELP||M
  1298. 1.6
  1299. *FX138,0,129
  1300. 1.6
  1301. <escape>
  1302. 1.6
  1303. and then change it into a BASIC program with
  1304. 1.6
  1305.  *SETTYPE LIB*.FAST &FFB<return>.
  1306. 1.6
  1307. Note that there are double pad characters before each ÉMæ in order that
  1308. when the program line is run, each double pad character is interpreted
  1309. as a single pad character for the actual key definition.
  1310. 1.6
  1311. The bits after calling the module are optional. The first is to clear
  1312. key1 again in case you press it accidentally. The second is to clear the
  1313. screen and the third is to give a help message to show that you are
  1314. actually in RAM_BASIC. (See below).
  1315. 1.6
  1316. Once this is set up, to get into fast BASIC all you do is type
  1317. *FAST<return>.
  1318. 1.6
  1319. For the 6502 emulator, use the name LIB*.6502 and donæt put the HELP
  1320. command in because that does not work on BASIC IV.
  1321. 1.6
  1322. Å   Tidying up after ArcWriter! You can do a similar thing to the above
  1323. hint in order to tidy up after using ArcWriter.
  1324. 1.6
  1325. *BUILD LIBRARY.RESET
  1326. 1.6
  1327. *FX225,1|M
  1328. 1.6
  1329. *KEY1 QUIT||M*CONFIGURE FONTSIZE
  1330. 1.6
  1331. 2||M*RMREINIT FONTMANAGER||M
  1332. 1.6
  1333. *RMTIDY||M*BASIC||M
  1334. 1.6
  1335. *KEY1||MHELP||M
  1336. 1.6
  1337. *FX138,0,129
  1338. 1.6
  1339. <escape>
  1340. 1.6
  1341. Typing *RESET will do the tidy-up for you.
  1342. 1.6
  1343. Å   Identifying RAMBASIC. To get RAM_ BASIC to tell you that it actually
  1344. IS the RAM version and not the ROM version, you can change a few bytes
  1345. so that it prints out ÉRAM BBC BASICæ instead of ÉARM BBC BASICæ on the
  1346. startup and HELP messages. To do this, proceed as follows:
  1347. 1.6
  1348. *LOAD MO*.RAM* 20000
  1349. 1.6
  1350. ?&202B0=ASCöRò
  1351. 1.6
  1352. ?&202B1=ASCöAò
  1353. 1.6
  1354. ?&23F78=ASCöRò
  1355. 1.6
  1356. ?&23F79=ASCöAò
  1357. 1.6
  1358. *SAVE MO*.RAM_BASIC 20000 +E434
  1359. 1.6
  1360. *SETTYPE MO*.RA* &FFA
  1361. 1.6
  1362. Å   Reversing the CAPS lock. If you hold down the shift key when you put
  1363. the CAPS lock light on, you will find that the shift key now has the
  1364. opposite effect, i.e. letters typed without pressing shift come up as
  1365. uppercase letters, but when you press the shift key you get lower case
  1366. letters. This can be useful if you are programming and mostly work in
  1367. upper case but with occasional use of lower case.
  1368. 1.6
  1369. Å   Displaying screens in different modes. If you have a screen that has
  1370. been SCREENSAVEæd, you can display it in another mode. (e.g. Artisan
  1371. screens in 256 colour modes!) Assuming you have configured spritesize to
  1372. at least 11, proceed as follows:
  1373. 1.6
  1374. MODE 13
  1375. 1.6
  1376. *SLOAD filename  \ NOT
  1377. 1.6
  1378.  *SCREENLOAD
  1379. 1.6
  1380. *SCHOOSE screendump
  1381. 1.6
  1382. PLOT &ED,0,0
  1383. 1.6
  1384. You will note that the palette has changed and that it is a lower
  1385. resolution, however, it will still be quite decent and you will have all
  1386. those lovely colours to play around with!
  1387. 1.6
  1388. If you choose mode 15, you will get the same picture displayed in 256
  1389. colours but squeezed into only half the screen width.
  1390. 1.6
  1391. If you want to change the colours you will have to load it into the
  1392. sprite editor (SEDIT) and change the colours manually.
  1393. 1.6
  1394. Å   Using the View Series. You will find that after coming from the
  1395. desktop, TAB does not work. The solution is to type *FX219,9.
  1396. 1.6
  1397. ViewProfessional works fine if you use the second processor version Ö
  1398. the VP file on the 5.25ö disk Ö however it should be *LOADæed at 4000
  1399. (not 8000) and called with *GO 4000. (See page 5, Archive 1.1)
  1400. 1.6
  1401. Å   Diary/Notepad problems. Beware: If you are printing something from
  1402. notepad or diary, check that an active printer is on-line before
  1403. starting to print otherwise the system may hang up and the only way out
  1404. is to press <ctrl-break> Ö frustrating if you havenæt saved the text
  1405. first!
  1406. 1.6
  1407. Å   Slower listings. I know this is obvious to ex-BBC users, but Iæve
  1408. not seen mentioned anywhere the fact that holding <ctrl> and <shift>
  1409. keys down together will stop the screen scrolling. Archimedes lists
  1410. programs so quickly that even if you use <ctrl-N> to get a paged
  1411. listing, you may well get two pages instead of one if you hesitate on
  1412. pressing the shift key, so using <ctrl> and <shift> allows you to
  1413. control the listing yourself.
  1414. 1.6
  1415. Å   File transfer between wordprocessors. If you have Wordwise Plus or
  1416. View files and you want to import them into GraphicWriter, use *SETTYPE
  1417. filename &FFF to ensure that GraphicWriter sees them as text files.
  1418. (Actually it should already see Wordwise Plus files as text because of
  1419. the save address that Wordwise Plus uses Ö check by doing *INFO *.) Then
  1420. you can simply load the files into GraphicWriter using the file menu. To
  1421. transfer the files back to View or Wordwise, you need to save them as
  1422. ASCII files. This is done by opening the file menu then clicking on the
  1423. word öTEXTò with the ADJUST button, typing in a filename and pressing
  1424. <return>.
  1425. 1.6
  1426. (I tried to do the same sort of thing with ArcWriter but it kept
  1427. crashing each time I tried to load a file, so I gave up!)
  1428. 1.6
  1429. Å   Smart ON ERROR routine. If your ON ERROR routine includes the
  1430. following, you get the usual error message and then, if you press any
  1431. key other than <escape> it will drop into the ARM BASIC editor at the
  1432. offending line. So if you do not want to go into the editor, press
  1433. <escape> instead.
  1434. 1.6
  1435. ON ERROR OFF
  1436. 1.6
  1437. PRINT REPORT$+ö at line ò;ERL
  1438. 1.6
  1439. dummy%=GET
  1440. 1.6
  1441. SYS 5,(öKEY0 EDIT ò+STR$(ERL)
  1442. 1.6
  1443. +ö|Mò)
  1444. 1.6
  1445. SYS 6,138,0,128
  1446. 1.6
  1447. END
  1448. 1.6
  1449. If you prefer to move into EDIT a few lines above the offending line,
  1450. use STR$(ERLÖ50) or whatever.
  1451. 1.6
  1452. Å   Dual purpose boot files. It is quite possible to have a boot file
  1453. that will work equally well from within the desktop or as a conventional
  1454. boot file operated with <shift-break>. What you do is *BUILD the file as
  1455. usual but then *settype <filename> &FFB which gives it a link to BASIC.
  1456. If you then double-click on it in the desktop, it adds line numbers to
  1457. it and runs it as a BASIC program. However, it will only work with
  1458. <shift-break> if the machine is configured to start up in BASIC, not in
  1459. the desktop (i.e. *CON. Language 4, not 3).
  1460. 1.6
  1461. Å   With the PC emulator you can get more space than Mark Sealey
  1462. reckoned in his review last month by *unplugging various of the modules.
  1463. On reader reckons to get almost 590,000 bytes free (= 576k).
  1464. 1.6
  1465. Å   Disabling Modules. Archive no.5 explains how *Unplug can be used to
  1466. disable Modules, but this method needs a <ctrl-break>. An alternative is
  1467. to use *RMKill and *RMTidy from the operating system *-prompt (not from
  1468. BASIC), e.g.
  1469. 1.6
  1470. *RMKill FontManager
  1471. 1.6
  1472. *RMKill StringLib
  1473. 1.6
  1474. *RMKill Percussion
  1475. 1.6
  1476. *RMKill ARMBasicEditor
  1477. 1.6
  1478. *RMKill WindowManager
  1479. 1.6
  1480. *RMTidy
  1481. 1.6
  1482. This typically releases 96 Kbytes of memory on an A310 machine and
  1483. doesnæt need a <ctrl-break>. It is particularly useful if youære short
  1484. of space in BASIC, Pascal or FORTRAN, etc and arenæt using fancy sound,
  1485. the WIMP environment or the BASIC editor. Each module can be reinstated
  1486. by using *RMReinit <Module name>, or all can be restarted by <ctrl-
  1487. break>.
  1488. 1.6
  1489. Å   GW BASIC on the PC Emulator. There is an undocumented way to get
  1490. back into the MS-DOS operating system after using GW BASIC. Try pressing
  1491. function key f-11.
  1492. 1.6
  1493. Å   PC Emulator. Version 1.09 (which existing users can get by sending
  1494. back their old disc plus ú15 to Acorn) runs, amongst other things,
  1495. Ability Plus, dBase 3 Plus, Kermit, Word Perfect, LTS NewsMaster (see
  1496. separate review). (Can anyone add to this list?)
  1497. 1.6
  1498. Å   RS423╔ yet again! If you have the 1.2 operating system and if you
  1499. have the version of the serial chip that is made by GTE (itæs the 28 pin
  1500. IC at the back left of the pcb) and if you change over from using the
  1501. CTS line at the Archimedes end to using the DSR line (i.e. link 1, 4 and
  1502. 8 and join pin 6 to the RTS line from the other machine) then Acorn have
  1503. a fix which you load in as a module. Send a blank disc to Customer
  1504. Services to get a copy. The version they sent me didnæt work the first
  1505. time I tried it with some data transfer software so I pressed <escape>
  1506. and tried again and it worked perfectly at 19,200 baud. Then I tried
  1507. again and it wouldnæt send anything, pressed <escape> and away it went!
  1508. Still, when you do get it going it sends and receives at 19,200 baud in
  1509. both directions without any data corruption. I left it running for a
  1510. couple of hours and there was no corruption at all.
  1511. 1.6
  1512. Å   After the desktop╔ simpler than the list of FX commands that we gave
  1513. last month is to call SYSöWimp_CloseDownò (which is what Acorn should
  1514. have put in their desktop program in the first place!!!) but if you
  1515. donæt fancy trying to type that every time, getting upper and lower case
  1516. exactly correct, you can create a one line BASIC program with 10
  1517. SYSöWimp_Close Downò and save it on your disk as $.library. undesk and
  1518. then just type *undesk (or whatever abbreviation you can get away with)
  1519. and all will be restored to normal.
  1520. 1.6
  1521. Å   Using the Seikosha 250X printer is a bit of a problem. When you plug
  1522. it into the Archimedes, all power is lost. This seems to be because of
  1523. the +5.0 volts on lines 18 and 36 of the printer connector Ö these are
  1524. earthed at the Archimedes end and so have to be disconnected somehow.
  1525. One reader, Adrian Moreton, has succeeded but it is too complicated to
  1526. explain here. If you want the information, send us an s.a.e. and weæll
  1527. send you a photocopy of his letter and the excellent diagrams he has
  1528. drawn.
  1529. 1.6
  1530. Å   ADFS wildcards. Had you gathered that ADFS will take * or #
  1531. wildcards anywhere in a filename? On the BBC, you could only put them at
  1532. the end of the filename. So, for example, if youæve got PROGRAM1,
  1533. PROGRAM2, PROGRAM3 etc you only need to say something like LOAD öPR*2ò
  1534. or even LOAD ö*2ò if none of the other files have numeric endings. That
  1535. makes life much easier, doesnæt it?! (Thanks to Benjamin Finn for
  1536. pointing that out. The next hint is his, too.)
  1537. 1.6
  1538. Å   Errors in library procedures. If an error occurs in a PROC or FN
  1539. that is installed using LIBRARY or INSTALL, the correct error message is
  1540. given but the line number quoted is the last number in the main program.
  1541. Although we cannot get a line number pointer to the error, we can at
  1542. least find out from which procedure in the main program the library
  1543. routine was called when the error occurred.
  1544. 1.6
  1545. At the beginning of each definition of a PROC or FN you should put
  1546. something like:
  1547. 1.6
  1548.    DEF PROCdosomething
  1549. 1.6
  1550.    LOCAL ERROR
  1551. 1.6
  1552.    ON ERROR LOCAL PRINT REPORT$
  1553. 1.6
  1554.  ö in PROCdosomethingò:END
  1555. 1.6
  1556.       .
  1557. 1.6
  1558.       .
  1559. 1.6
  1560.    ENDPROC
  1561. 1.6
  1562. Å   Help with Econet is offered by Michael Ryan of XOB, Balkeerie,
  1563. Eassie, By Forfar, Angus, DD8 1SR. Michael says, öHere are some comments
  1564. about Archimedes on Econet in response to comments in Archive 1.3, page
  1565. 8.
  1566. 1.6
  1567. öRDFREE is part of the Econet filing system module and hence not a disc-
  1568. based utility as with the BBC version. Issued with a user identity as
  1569. parameter, it gives the total disc free space and that useræs allocated
  1570. portion of it. Issued with no parameter, it returns the useræs own free
  1571. space and the total free space.
  1572. 1.6
  1573. öAcorn are supplying a number of other utilities including SETFREE,
  1574. SETSTAT, USERS, PROT and UNPROT, though they have not yet made it clear
  1575. how they are to be distributed, so donæt hold your breath.
  1576. 1.6
  1577. öThough it is very unlikely that they will supply the more sophisticated
  1578. utilities (VIEW, REMOTE, NOTIFY etc) all is not lost. XOB already have a
  1579. wide range of utilities for the BBC/Master series and have already
  1580. implemented several of them on the Archimedes. More details from us on
  1581. 0307Ö84364.ò
  1582.  
  1583. Å   Most of the keys on the numeric pad have secondary functions if used
  1584. with the Num Lock off. In BASIC, 1 gives copy, 2 and 3 are both cursor
  1585. down, 4 is cursor left, 5 doesnæt seem to do anything, 6 is cursor
  1586. right, 7 is Écursor homeæ and 8 and 9 and cursor up. In View, the single
  1587. cursor movements are 2, 4, 6 and 8 while 3 and 9 are page down and page
  1588. up respectively.
  1589.  
  1590. Å   GETfile and PUTfile on the MS-DOS emulator are difficult to use if
  1591. you only have a single drive. However, if you configure a RAM disc with
  1592. MS-DOS you can then copy MS-DOS files onto it and then form the ADFS
  1593. files on the physical drive and vice versa to take ADFS files in to the
  1594. MS-DOS file system.
  1595. 1.7
  1596. Å   Programs that work under the PC-emulator. Iæve had lots of informa
  1597. tion about MS-DOS software that does work, but has anyone found any
  1598. software that does NOT work under the PC-emulator?
  1599. 1.7
  1600. Å   With version 1.09 of the PC emulator, if you do the following╔
  1601. 1.7
  1602. *LOAD PC.Emulate 10000
  1603. 1.7
  1604. ?&137C8=0
  1605. 1.7
  1606. *SAVE PC.Emulate2 10000
  1607. 1.7
  1608. you will find that the memory isnæt cleared when you press the reset
  1609. button.
  1610. 1.7
  1611. Å   One good book to help new MS-DOSæers (sorry!) is öQuick Reference
  1612. Guide to MS-DOSò by Van Wolverton, published by Microsoft Press,
  1613. obtainable via Watford Electronics at ú3.95. (ISBN 1-55615-025-3)
  1614. 1.7
  1615. Å   From various reports, it seems that CHKDSK does work properly though
  1616. it has to be used with care. It can be used to repair the File Allo
  1617. cation Table (FAT) and repair errors in directories. Files are not
  1618. necessarily stored contiguously on an MS-DOS disc, so if part of a file
  1619. is lost then CHKDSK can be used to convert lost chains to files (i.e.
  1620. write to a disc directory). Generally, CHKDSK by itself is safe. CHKDSK
  1621. *.* /V is usually safe, but CHKDSK *.* /F is dangerous if you donæt know
  1622. what you are doing!
  1623. 1.7
  1624. Å   One reader says he has solved the problem of öTo linefeed or not to
  1625. linefeed╔ò by adding a single pole switch in parallel with the contact
  1626. on the printer dip-switch that sets the auto-linefeed on and off,
  1627. leaving the dip-switch in the open position, of course. Donæt forget
  1628. though that most printers only look at the dip-switch settings at power-
  1629. up, though some do so when you do a software reset with 27,64.
  1630. 1.7
  1631. Å   With Arc-Writer, to get it not to double space on a Panasonic
  1632. printer, use the AW_PCedit program, select the RX80D and change the
  1633. number of steps per 100 units vertically from 21600 to 600.
  1634. 1.7
  1635. Å   View 3 works under the emulator if you poke locations A8A1, A8A2 and
  1636. A8A3 with &EA.
  1637. 1.7
  1638. Å   Acornsoft ISO Pascal, Comal, Prolog and LISP all work under the
  1639. emulator says one reader.
  1640. 1.7
  1641. Å   Share Analyser (Synergy Software) works perfectly under the 6502
  1642. emulator.
  1643. 1.7
  1644. Å   Four floppies on 1.2 OS. If you try *con. floppies 4, you will find
  1645. that it tells you the number is too big, but if you use *FX162,135,4 and
  1646. do a <ctrl-break>, you will finds that *STATUS tells you that you have
  1647. four floppies.
  1648. 1.7
  1649. Å   Booting other drives. In contrast with the BBC micros, you can, on
  1650. Archimedes, *MOUNT 1 and then <shift-break> to boot the disc in drive 1.
  1651. 1.7
  1652. Å   WIMP Manager. Be aware that the first time Wimp_poll is called, it
  1653. clears the screen.
  1654. 1.7
  1655. Å   Fitting the backplane: It is an awkward job to fit the backplane
  1656. because two plastic spacers are used into which self-tapping screws have
  1657. to be inserted. This is best done in a vice to avoid stripping screw
  1658. heads and/or sticking screwdrivers through your fingers!
  1659. 1.7
  1660. Å   ÉUnknown IRQ at &00000000æ. If you get this error message (and
  1661. possibly find that the machine hangs up on you) check whether your RS423
  1662. lead is properly screened, if at all. If it is not screened, it seems to
  1663. be able to pick up interference (remember the micro-wave problems
  1664. mentioned in issue 5, page 8?) and this generates spurious interrupts.
  1665. 1.7
  1666. Å   More ideas on the black art of RS423 communication! Here is one
  1667. readeræs recipe for succesful RS423 transfer, though it may not work for
  1668. everyone╔ Try using the Éfixæ module (Archive 1.6 program disc) with
  1669. pins 1,4,8 and 9 linked together and 6 (DSR) and 7 (RTS) as the control
  1670. lines.
  1671. 1.7
  1672. Å   Running more than one BASIC program. If you have a BASIC program you
  1673. want to run while you are working on another program in memory, you can
  1674. program a couple of keys with:
  1675. 1.7
  1676. *KEY 4 P%=PAGE : PAGE=&30000
  1677. 1.7
  1678. : CHAIN ötestprogò|M
  1679. 1.7
  1680. *KEY 5 PAGE=P% : OLD|M
  1681. 1.7
  1682. Å   System Delta Plus: If you have trouble loading newly formed
  1683. databases and get öNo Roomò when you know there is plenty of room, add a
  1684. .D to the filename when loading, i.e. type in the filename as, say,
  1685. öRECORDS.Dò.
  1686. 1.7
  1687. Å   Inter-Word: If you have come from the desktop, you will find that
  1688. the tab key does not work. This can be corrected with *FX219,9.
  1689. 1.7
  1690. If you want the ú sign, you will find it is produced by the ` key (far
  1691. top left key).
  1692. 1.7
  1693. If you want the ` sign╔ tough! (The ú sign duplicates the öinsert rulerò
  1694. function!)
  1695. 1.7
  1696. Å   Stuck in a black hole? If you find yourself typing in black on
  1697. black, try typing MODE MODE<return>. It allows you to type again, but
  1698. maintains the mode you were in.
  1699. 1.7
  1700. Å   SystemDevs module. The redirection commands, some of which we said
  1701. didnæt seem to work, are sensitive to spacing. The correct forms are as
  1702. follows where the spaces are represented by bullets (Å):
  1703. 1.7
  1704. *CATÅ{Å>ÅinfoÅ }
  1705. 1.7
  1706. Spools catalogue to file öinfoò
  1707. 1.7
  1708. *CATÅ{Å>>ÅinfoÅ }
  1709. 1.7
  1710. Adds catalogue to file öinfoò
  1711. 1.7
  1712. *BASICÅ{Å<ÅdataÅ }ÅPROG
  1713. 1.7
  1714. Runs öPROGò and uses information in file ödataò for input.
  1715. 1.7
  1716. Å   Using the Acorn ROM Podule: No links are available for the RAM
  1717. sockets, although you can configure the sockets by software for 8k, 32k
  1718. or 128k RAM chips. Using HM6264LP-15 ram in the sockets and configuring
  1719. them as 8k does not immediately work. However if you configure them as
  1720. 32k chip and apply an offset of &2000 when loading i.e.:
  1721. 1.7
  1722. *RMLoad <podule number>
  1723. 1.7
  1724. <socket> <filename> 2000
  1725. 1.7
  1726. then your data will load correctly. This is because the Chip Select (CS)
  1727. on the 8k chips is on the pin Address 13 (pin 26) on the 32k and 128k.
  1728. This causes the 8k chip to be mapped into 8-16k and 24-32k hence the
  1729. offset of 8k. The inverted CS on pin 20 is common to all three devices.
  1730. (Without configuring them as 32k, the operating system reports that the
  1731. device is not big enough for an 8k offset.)
  1732. 1.7
  1733. Å   Concerning Acornsoft C and TWIN: ÉConcurrencyæ (keeping text in one
  1734. window and compiling a program in the other) does not work. The compiler
  1735. (v1.5A) has a bug in it that prevents it from working. Acorn said that
  1736. it used to work OK on the pre-release version! However, compiler output
  1737. can be sent to a file called tmp.temp if the -spool option is used.
  1738. 1.7
  1739. It may be necessary to relocate TWIN in order to compile programs. My
  1740. version of TWIN loaded at &60000 but needed to be relocated to &80000 to
  1741. allow the compiler enough space. (See below.) If the compiler crashes,
  1742. try increasing the SystemSize using *configure.
  1743. 1.7
  1744. The two compiler messages, ÉFatal I/O erroræ and ÉBinary output erroræ,
  1745. simply mean that your disc is full!
  1746. 1.7
  1747. Å   More about TWIN. Twin is an editor which seems to have one or two
  1748. hidden features; firstly it is a relocatable program, and consequently
  1749. can be loaded anywhere where RAM exists (barring overwriting OS
  1750. workspace etc.). I have created a version which I call LoTwin which
  1751. loads at &10000; this leaves space for BASIC programs only 256 bytes
  1752. fewer than are available on a BBC Master using Shadow RAM, and yet it
  1753. allows me considerably more work space than the standard Twin.
  1754. 1.7
  1755. To create a version of Twin called ÉMYTWINæ which loads and runs other
  1756. than at the Énormalæ address, perform the following actions:
  1757. 1.7
  1758. *DIR <diræry_containing _Twin>
  1759. 1.7
  1760. *LOAD TWIN <new_load_address>
  1761. 1.7
  1762. *EX
  1763. 1.7
  1764. *SAVE MYTWIN <new_load_
  1765. 1.7
  1766. address> +<size>
  1767. 1.7
  1768. <size> is obtained from the 3rd column of hex data after the É*EXæ.
  1769. 1.7
  1770. Then, to invoke the new version, type
  1771. 1.7
  1772. *MYTWIN
  1773. 1.7
  1774. and it will run. Pressing <shift-f5> followed by <T> after entering
  1775. MYTWIN will show the load address on the top line immediately to the
  1776. left of the time.I have yet to see mentioned in print the Éwarm startæ
  1777. for TWIN. If something nasty happens and your Archimedes locks up just
  1778. as you have spent a couple of hours typing in something using TWIN, and
  1779. you have no option but to press <ctrl-break>, or even <ctrl-reset>, do
  1780. not despair, simply type:
  1781. 1.7
  1782. *GO <twin_start_address> -WARM
  1783. 1.7
  1784. and you will find yourself back in TWIN exactly as you were when the
  1785. Énastyæ happened, barring any corruption caused by the Énastyæ. Donæt
  1786. forget the É-æ preceding the öWARMæ! I have found myself in this
  1787. position after a momentary power cut, and although the warm start did
  1788. not restore TWIN as a fully functional editor (due to corruption), it
  1789. restored Twinæs ability to save text, so I saved what I had done, and
  1790. was then able to reload Twin, and then reload my text.
  1791. 1.7
  1792. Å   Iso Pascal: Be warned before you buy Iso Pascal, it has NO support
  1793. for Arthur Ö otherwise, says one reader, it is an excellent implementa
  1794. tion. Also (in common with C) it comes with a very thin manual, so a
  1795. copy of TWIN and a book about the language (see the mini-review on page
  1796. 25) will be needed for most people.
  1797. 1.7
  1798. (More information  about other languages was sent in, but this was all I
  1799. could digest with my limited knowledge of languages other than BASIC.
  1800. Would anyone be prepared to receive all the öother languagesò informa
  1801. tion and knock it up into a special section each month?)
  1802. 1.7
  1803. Using the Computer Concepts ROM Podule
  1804. 1.7
  1805. How many times have you had to press <ctrl-break> and muttered under
  1806. your breath because youæve lost your function key definitions? That need
  1807. never happen again if you have Computer Conceptsæs ROM podule with some
  1808. battery-backed RAM on it. All you do is configure the system to start up
  1809. in the RFS instead of the ADFS and also configure it to auto-boot. Then
  1810. in the RFS, you put a boot file something like:
  1811. 1.7
  1812. REM > RFS:!BOOT
  1813. 1.7
  1814. *SET Run$Path ,ADFS:$.,RFS:$.%.
  1815. 1.7
  1816. *ADFS
  1817. 1.7
  1818. *FX255,8
  1819. 1.7
  1820. PRINT öAcorn ADFSòÉ
  1821. 1.7
  1822. *KEY 0 These are
  1823. 1.7
  1824. *KEY 1 my favourite
  1825. 1.7
  1826. *KEY 2 key definitions
  1827. 1.7
  1828. *SET ALIAS$> Cat
  1829. 1.7
  1830. *SET ALIAS$? HELP etc
  1831. 1.7
  1832. *BASIC
  1833. 1.7
  1834. (You will notice that the Run$Path uses É$æ instead of É%æ as stated on
  1835. page 28 of the Computer Concepts manual.)
  1836. 1.7
  1837. Å   To get the Inter series software to boot up with a simple call such
  1838. as *ISHEET, copy 65Arthur into the RAM area using *COPY
  1839. ADFS:Modules.65Arthur RFS:65Arthur and, providing you have set up the
  1840. Run$Path as above, *ISHEET, *IWORD and *ICHART will automatically load
  1841. the emulator and then the appropriate software.
  1842. 1.7
  1843. Å   Installing Wordwise Plus. If you copy the Archimedes version of
  1844. Wordwise Plus from Computer Conceptsæs disc (filename öWW+ò) into the
  1845. RFS calling it, say, WWIMAGE, you can modify the BASIC program öISHEETò
  1846. and save it as öWW+ò so that, as above, you can just type *WW+ and it
  1847. will auto-load the emulator and run the software. The modifications are
  1848. to change the references to öISIMAGEò at lines 130 and 270 into
  1849. öWWIMAGEò.
  1850. 1.7
  1851. Å   If you want to modify any of the programs in a ROM, all you do is
  1852. either LOAD it, edit it and SAVE it or, if you have the modified version
  1853. on disc, just *COPY it. If you tell it to SAVE a file with a name that
  1854. exists in ROM it gives the ram version precedence over the ROM version.
  1855. 1.7
  1856. To find out whether a particular file is in ROM or RAM, use the *INFO
  1857. <filename> command. If it comes up with a ö*ò before the final figure of
  1858. the information, the file is in the RAM area. To get the ROM version
  1859. back, you either have to do a <ctrl-break> or type *RMREINIT RFS
  1860. <return> because *delete filename removes all trace of it so that even
  1861. the ROM version is inaccessible.
  1862. 1.7
  1863. Thanks to Adrian Look for all the following hints and tips.
  1864. 1.7
  1865. Å   X-SWIæs. When using SWIæs if you put an X before the name then the
  1866. SYS call from BASIC will not generate an error. For example:
  1867. 1.7
  1868. SYS öXOS_CLIò,block
  1869. 1.7
  1870. Å   Modes & drawing speed. The VIDC receives the video data down the
  1871. data bus lines of the ARM processor. While this is happening the RISC
  1872. chip cannot perform any processing. This means that the screen modes
  1873. using higher memory will be slower. Try timing a FOR-NEXT loop of
  1874. 1,000,000!  So, if speed is of the essence, it may be better to go into
  1875. mode 0, do the calculations and save them in an array and then go into
  1876. mode whatever to plot the results.
  1877. 1.7
  1878. However, there is a compensating factor. The lower memory modes use one
  1879. byte to represent several pixels, thus addressing pixels requires extra
  1880. calculation Ö whereas the higher memory modes use only one byte to
  1881. represent a pixel so addressing pixels is much quicker. This means that
  1882. graphics will be quicker in higher modes.
  1883. 1.7
  1884. Mode   F/N loop   Draw   Mem.   Colours
  1885. 1.7
  1886.       (secs)   (secs)   (k)
  1887. 1.7
  1888.    0   14.9   51   20   2
  1889. 1.7
  1890.    1   14.9   38   20   4
  1891. 1.7
  1892.    2   15.6   34   40   16
  1893. 1.7
  1894.    3   15.6    Ö   40   Text
  1895. 1.7
  1896.    4   14.9   38   20   2
  1897. 1.7
  1898.    5   14.9   32   20   4
  1899. 1.7
  1900.    6   14.9    Ö   20   Text
  1901. 1.7
  1902.    7   15.6    Ö   80   T-Text
  1903. 1.7
  1904.    8   15.6   54   40   4
  1905. 1.7
  1906.    9   15.6   40   40   16
  1907. 1.7
  1908.    10   17.1   39   80   256
  1909. 1.7
  1910.    11   15.6    Ö   40   Text
  1911. 1.7
  1912.    12   17.1   61   80   16
  1913. 1.7
  1914.    13   17.1   45   80   256
  1915. 1.7
  1916.    14   17.1    Ö   80   Text
  1917. 1.7
  1918.    15   21.3   79   160   256
  1919. 1.7
  1920.    16   19.6    Ö   132   Text
  1921. 1.7
  1922.    17   19.5    Ö   132   Text
  1923. 1.7
  1924.    18   15.4   70   40   2
  1925. 1.7
  1926.    19   16.9   77   80   4
  1927. 1.7
  1928.    20   21.0   98   160   16
  1929. 1.7
  1930. Å   OS_Pretty Print. Have you ever wondered how the operating system
  1931. manages to display all its messages without any of the words getting
  1932. split at the end of a screen line, no matter what mode it is in? Well,
  1933. the answer is ÉOS_ PrettyPrintæ.
  1934. 1.7
  1935. If you print all your strings using this call it will stop any words
  1936. going over the end-of-line boundary. This call recognises the following
  1937. control characters in a special way:
  1938. 1.7
  1939. Ö CR (CHR$(13)) causes not just a carriage return but also a newline.
  1940. 1.7
  1941. Ö TAB (CHR$(9)) causes a tabulation to the next multiple of eight
  1942. columns.
  1943. 1.7
  1944. Ö CHR$(31) is a Épad characteræ, that is, the procedure will print a
  1945. space when this code occurs but it will not break the string up at this
  1946. point.
  1947. 1.7
  1948. Example:
  1949. 1.7
  1950. A$=öHello my name is...ò
  1951. 1.7
  1952. SYS öOS_PrettyPrintò,A$
  1953. 1.7
  1954. Å   The QUICK option When you use the (Q)uick option in the *COPY and
  1955. *BACKUP commands, the OS will use all available memory. This means that
  1956. if you are in high memory screen modes then you will have less memory to
  1957. use. So if you want even quicker *COPYing or *BACKUPs then try it in a
  1958. mode which uses less memory.
  1959. 1.7
  1960. Å   Run$Path and File$Path. The FileSwitch uses two system variables
  1961. called Run$Path and File$Path. You can see their values by typing
  1962. either:
  1963. 1.7
  1964. *SHOW File$Path <return> and/or
  1965. 1.7
  1966. *SHOW Run$Path <return>
  1967. 1.7
  1968. You will probably get the following results:
  1969. 1.7
  1970. File$Path : type String, value :
  1971. 1.7
  1972. Run$Path : type String, value : ,%.
  1973. 1.7
  1974. These are the default settings. The values stored in the File$Path and
  1975. Run$Path variables are actually a list of directory filenames separated
  1976. by commas and terminated with dots.
  1977. 1.7
  1978. When the FileSwitch is told to read a file it will look at File$Path
  1979. variable and search for the file in each of the directories listed until
  1980. it finds a match. Similarly the FileSwitch will do the same when it is
  1981. told to execute a file, only it will use the Run$Path variable as the
  1982. list of directories. For example:
  1983. 1.7
  1984. *SET File$Path RFS:%.,,%.
  1985. 1.7
  1986. This would cause the FileSwitch to search for the file first in the RFS
  1987. filing systemæs library directory, then in the current filing systemæs
  1988. current directory (hence the ö,,ò which means donæt add anything to the
  1989. filename as entered), and finally in the current filing systemæs library
  1990. directory.
  1991. 1.7
  1992. Here is a list of all the possible directory prefixes (although you can
  1993. actually specify any directory by name Ö wildcards may be used):
  1994. 1.7
  1995.  *    Ö    all
  1996. 1.7
  1997.  $    Ö    root
  1998. 1.7
  1999.  &    Ö    user
  2000. 1.7
  2001.  @    Ö    current
  2002. 1.7
  2003.  ^    Ö    parent
  2004. 1.7
  2005.  %    Ö    library
  2006. 1.7
  2007.  }    Ö    previous
  2008. 1.7
  2009. Å   Flushing the Mouse. You may have noticed that the mouse has a buffer
  2010. of its own. This means that the Arc stores all the mouse movements and
  2011. clicks just as it stores the keyboard entries. How many of you play
  2012. around with the mouse when a program is Éthinkingæ or waiting for a
  2013. screen to load? This will leave a whole load of mouse positions and
  2014. clicks in the buffer, so any subsequent MOUSE X,Y,B readings will not
  2015. reflect the true position of the mouse but the positions stored in the
  2016. buffer!!! So how do you clear the buffer? To flush all the buffers,
  2017. type:
  2018. 1.7
  2019. *FX 15 <return>
  2020. 1.7
  2021. to flush just the mouse buffer, type:
  2022. 1.7
  2023. *FX 21,9 <return>
  2024. 1.7
  2025. Å   Local DATA statements. (Based on an idea sent in by C.R.Fitch) In
  2026. answer to the query last month, it is possible to have DATA statements
  2027. in a program that does not rely on line numbers. What you can do is to
  2028. use the error handler to pin-point a line number just before the local
  2029. data statements. For every data set you want to access, just use the
  2030. following format:
  2031. 1.7
  2032. DEFPROCdata_set
  2033. 1.7
  2034. LOCAL ERROR
  2035. 1.7
  2036. ON ERROR LOCAL RESTORE ERL
  2037. 1.7
  2038. IF ERL=0 THEN ERROR 1,öget line
  2039. 1.7
  2040.  numberö
  2041. 1.7
  2042. RESTORE ERROR                    
  2043. 1.7
  2044. DATA 1,2,3,4,5 : REM put your
  2045. 1.7
  2046.  own data here
  2047. 1.7
  2048. ENDPROC
  2049. 1.7
  2050. Then if you want to use the data set, just call the procedure, as for
  2051. example:
  2052. 1.7
  2053. PROCdata_set
  2054. 1.7
  2055. FOR i=1 TO 5
  2056. 1.7
  2057. READ data:PRINT data
  2058. 1.7
  2059. NEXT i
  2060. 1.7
  2061. The procedure leaves everything exactly as it was (except the data
  2062. pointer) so it does not affect the program at all. The only snag is that
  2063. we donæt know where the old data pointer was so we canæt continue
  2064. reading data from where we left off! Any ideas??
  2065. 1.7
  2066. (The remaining information in this section is about using the MS-DOS
  2067. emulator. More information than this was sent in, but this was all I
  2068. could digest with my limited knowledge of MS-DOS. Would anyone be
  2069. prepared to receive all such information and knock it up into a special
  2070. MS-DOS section each month?)
  2071. 1.7
  2072.  
  2073. Å Colour TV output for Archimedes?  If you havenæt got a colour monitor
  2074. and want to use a TV to look at the output from the Archimedes in
  2075. colour, you can feed the signal from the video output into the Évideo
  2076. inæ on a video recorder (always assuming youæve got one!) and connect
  2077. the ÉRF outæ from the recorder to the TV.
  2078. 1.08
  2079. Å Drive lights on external 5.25ö drives.  One reader suggested that to
  2080. avoid the external drive light coming on when I accessed the interal
  2081. drive(s) I should remove all links except DS1 (I use DS2 to make it
  2082. drive2), TO, RR and MS.  I followed his advice and it seems to be OK
  2083. now.
  2084. 1.08
  2085. Å 400 or 300?  If a piece of software wants to find out if it is running
  2086. in a 300 series machine or a 400 series it can read the MEMC to find the
  2087. size of page being used, thus:
  2088. 1.08
  2089.    program segment missing
  2090. 1.08
  2091. Å More buzzing.  One reader noticed that the buzzing from the speaker
  2092. gets worse when you upgrade from a 305 to a 310.  Other readers have
  2093. found that the buzz gets to an intolerable level with certain software
  2094. such as ArcWriter.  In any case, this is now recognised by Acorn as a
  2095. field change, so your local dealer should be able to sort it out for
  2096. you.  If your local dealer is not within easy reach then the öcapacitor
  2097. fixò mentioned in issue 3, page 7, is easy enough to do as long as you
  2098. are reasonably competent at soldering.
  2099. 1.08
  2100.  
  2101. 1.08
  2102. Å Printer Acknowledge Line.  The IOC (Input Output Controller) has a
  2103. printer acknowledge line which can be read from the ARM supervisor mode. 
  2104. However, it is not advisable to Éplay aroundæ in this area, unless you
  2105. know what you are doing, because some locations are read only and
  2106. attempting to write to them could damage your IOC chip.  Here is an
  2107. example program that reads the printer acknowledge line.
  2108. 1.08
  2109.    program segment missing
  2110. 1.08
  2111. Å *TypeFile Command.  One reader tried to define an alias which types
  2112. out a file on the printer and then switches the printer off again, but
  2113. he found that it was easier said than done.  I set Adrian Look onto it
  2114. and he has managed to find a way of doing it (albeit rather tortuous!):
  2115. 1.08
  2116.    program segment missing
  2117. 1.08
  2118. then to print out the file, you do a *TypeFile<filename>.  The <60> and
  2119. <62> are the ASCII codes for ö<É and ö>ò.
  2120. 1.08
  2121. It sounds a bit long-winded, but what you are trying to do is generate
  2122. ASCII codes <2> and <3> to switch the printer on and off again.  When
  2123. you do a *SHOW, it gives the definition of TypeFile as ECHO |<2>|M TYPE
  2124. %0|M ECHO |<3>|M.
  2125. 1.08
  2126. Å öWhatæs the time, Arthur??ò  Ö If you wanted to change the prompt
  2127. which Arthur gives, you could try, for example:
  2128. 1.08
  2129.    *Set CLI$PROMPT >>>
  2130. 1.08
  2131. and you would get a question mark instead of the star prompt.  Then, if
  2132. you want Arthur to tell you time at each prompt, use:
  2133. 1.08
  2134.    *SETMACRO CLI$PROMPT <SYS$TIME>*
  2135. 1.08
  2136. This prints out the time and then prints the star prompt.  The reason
  2137. you use SETMACRO rather than just SET is that it needs to be a variable
  2138. which is up-dated each time the command is used.  If you donæt like the
  2139. seconds figure to be included, try:
  2140. 1.08
  2141.    <SYS$TIME><127><127><127>*
  2142. 1.08
  2143. This prints out the time but then generates three delete characters
  2144. which remove the seconds figures and the colon.
  2145.  
  2146. Å   View B3.0. Following on from the hint about View B3.0, John Phelan
  2147. writes thÅ   öMore articles about the basics, pleaseò, said a number of
  2148. folk at the Micro User Show. We╒ve had something on using ADFS and are
  2149. starting assembler for beginners but can anyone say specifically what
  2150. they want information on and can anyone offer to write any öbasicò
  2151. articles, please? In particular╔
  2152. 1.09
  2153. Å   Article on ARMBE. We really do need someone to write a very
  2154. practical guide to using the ARM BASIC Editor. For example, I╒ve only
  2155. just realised that <insert> toggles between insert and over-write mode
  2156. and so you don╒t have to go through the preferences menu. I suspect a
  2157. lot of people are not using ARMBE simply because they are familiar with
  2158. BASIC╒s own line editor and haven╒t got time to learn ARMBE even though
  2159. it would save them time in the long run. Please write to us if you would
  2160. like to have a go at this. Thanks.
  2161. 1.09
  2162. Å   BASIC V utility library. If you have worked out some neat utilities
  2163. like the one in Hints & Tips about aligning decimal points, why not send
  2164. them in to us. Clifford Hoggarth has offered to edit the section, so
  2165. either send your contributions to us or direct to him at 20 Pinfold
  2166. Drive, Eccleston Mere, St Helens, WA10 5BT.
  2167. 1.09
  2168. Å   Education articles. I╒m getting requests for articles relevant to
  2169. education, but no-one is offering such articles. Can anyone help?!
  2170. 1.09
  2171. Å   Hard Disc users. One reader, who has a 440 on order, wants to know
  2172. if there are any do╒s and don╒t╒s with a hard disc. Are there any hard-
  2173. disc users who want to comment?
  2174. 1.09
  2175. Å   View B3.0. Following on from the hint about View B3.0, John Phelan
  2176. writes that there is still a problem with the pound key. On the
  2177. Archimedes, this key returns ASCII 163. Is this redefinable?
  2178. 1.09
  2179. Å   Calculating ╣ and e. Brian Cowan asks if anyone knows the way that
  2180. pi and/or e may be calculated digit by digit on a computer. Presum-ably
  2181. they must be all integer algorithms(?)
  2182. 1.09
  2183. Å   Taxan KP-810 on ArcWriter. Has anyone worked out how to get a
  2184. printer driver working for this combination? Drop a line to E. Clinks
  2185. cales, 68 Wyvis Drive, Nairn, IV12 4TP.
  2186. 1.09
  2187. Å   Video-titling. Is there any software, says M Davies of Cardigan, for
  2188. video-titling? Wild Vision do the hardware for Genlock and Video
  2189. Overlay, but where is the software?
  2190. 1.09
  2191. Also, he asks, is there any software, preferably ROM based, to give NLQ
  2192. print on his Epson RX80 and also desktop publishing?
  2193. 1.09
  2194. Help Answers
  2195. 1.09
  2196. Å   Label printer for cassette tapes╔ Try the June issue of Micro User,
  2197. page 39.
  2198. 1.09
  2199.  
  2200. 1.09
  2201. Å   View B3.0. In order to get View B3.0 working properly under the 6502
  2202. emulator, as well as poking the three bytes at &A8A1 to &EA you have to
  2203. poke &80C2 ÿ 4 to &EA otherwise, the emulator tries to run it as a
  2204. second processor ROM image ÿ without any success. With this patch, the
  2205. address space from &B328 to &BFFF is effectively free for patching.
  2206. Perhaps some enterprising programmer could use this space for extra
  2207. routines ÿ e.g. a resident printer-driver.
  2208. 1.09
  2209. Å   Special characters. If you want to generate special characters on-
  2210. screen, try pressing <ctrl-shift-alt> and then one of the ordinary keys
  2211. and you will find that you can get all sorts of alternative characters
  2212. such as ⌐ and ¿ and the half, quarter and three-quarter signs (which I
  2213. haven╒t even got on the Apple Mac!). What is more, if you are using Arc-
  2214. Writer, it will actually print some of the symbols, such as the
  2215. fractions, on the printer!
  2216. 1.09
  2217. Å   PSU for external 5.25ö drives. If you have an external 5.25ò disc
  2218. drive that does not have its own power supply, you can take the power
  2219. from the power supply for the hard disc but you will need a special
  2220. cable and connector. Those who have bought interfaces from Dudley Micro
  2221. Supplies might be able to get help from them. (Or try the ArcDFS
  2222. interface mentioned in Hardware & Software Available section.)
  2223. 1.09
  2224. Å   Aligning decimal points. If you are trying to print out various
  2225. figures and want the decimal points to line up above one another, you
  2226. can use the öfixed formatò. (See the explanation of the @% variable
  2227. under the section in the User Guide about the PRINT command.) However,
  2228. the fixed format prints out trailing zeros, e.g. it prints 234.0000
  2229. instead of 234.
  2230. 1.09
  2231. The bad news: One reader wanted to avoid this and so was trying to write
  2232. a BASIC routine to do the aligning and discovered some nasties (presum
  2233. ably due to rounding errors) that gave the value of LOG100 as 2 but
  2234. INT(LOG100) as 1! Also he found that LEN(STR$3.3) was given as 3, but
  2235. LEN(STR$4.3) was given as 11!
  2236. 1.09
  2237. The good news: You can do a STR$, use INSTR to find the position of the
  2238. decimal point and then use PRINT TAB( to position it correctly as in the
  2239. following example. (Thanks, APL!)
  2240. 1.09
  2241.  10 REM >$.AlignDP
  2242. 1.09
  2243.  20
  2244. 1.09
  2245.  30 REM ***************************
  2246. 1.09
  2247.  40 REM * Aligning your decimals  *
  2248. 1.09
  2249.  50 REM *  by Adrian Philip Look  *
  2250. 1.09
  2251.  60 REM *    28th April 1988      *
  2252. 1.09
  2253.  70 REM ***************************
  2254. 1.09
  2255.  80
  2256. 1.09
  2257.  90 REPEAT
  2258. 1.09
  2259. 100   random=RND(10000)-RND(1)*(RND
  2260. 1.09
  2261. (1)<.7)
  2262. 1.09
  2263. 110   PROCalign(20,random)
  2264. 1.09
  2265. 120 UNTIL FALSE
  2266. 1.09
  2267. 130 END
  2268. 1.09
  2269. 140
  2270. 1.09
  2271. 150 DEFPROCalign(x,number)
  2272. 1.09
  2273. :REM x = position of DP
  2274. 1.09
  2275. 160 number$=STR$(number)
  2276. 1.09
  2277. 170 dot=INSTR(number$,ö.ò)
  2278. 1.09
  2279. 180 IF dot=0 dot=LEN(number$)+1
  2280. 1.09
  2281. :REM i.e. no DP
  2282. 1.09
  2283. 190 IF dot=1 dot=0:REM leads with DP
  2284. 1.09
  2285. 200 PRINT TAB(x-dot);number
  2286. 1.09
  2287. :REM beware of (x-dot)<0
  2288. 1.09
  2289. 210 ENDPROC
  2290. 1.09
  2291. STOP PRESS. The original enquirer about this, Peter Trigg, has just come
  2292. back with:
  2293. 1.09
  2294. DEFPROCalign(x%,number)
  2295. 1.09
  2296. :REM x% = position of DP
  2297. 1.09
  2298. LOCAL length%
  2299. 1.09
  2300. length%=LEN(STR$(INT(number)))
  2301. 1.09
  2302. PRINT TAB(x%-length%);number
  2303. 1.09
  2304. ENDPROC
  2305. 1.09
  2306. This is somewhat neater and it seems to work OK. (This just emphasises
  2307. the need for sharing ideas ÿ which is why we are setting up our öBASIC
  2308. utilitiesò section ÿ see Help!!! section.)
  2309. 1.09
  2310. Å   Music Editor. If you have a number of tunes that were prepared using
  2311. the Music Editor on the 0.2 or 0.3 Welcome discs. You will probably find
  2312. that all the voices are wrong ÿ usually that the main tune was being
  2313. played on the percussion! The reason is that the Music Editor refers to
  2314. the voices by number only, so if the modules are in a different order,
  2315. the voices are likewise in a different order. It is however possible to
  2316. change the order of the modules by *RMKILLing the one which is higher in
  2317. the *ROMMODULES list then doing a *RMTIDY and then *RMREINITing the
  2318. module which you had just killed.
  2319. 1.09
  2320. Å   Beware &36D!  Some BBC software (Apollo Mission for example) pokes
  2321. !877=0 (or !&36D=0). If you transfer this to the Archimedes you will
  2322. find that the system locks up and neither <ctrl-break> nor <reset> has
  2323. any effect. Even switching off is ineffective. The only way out is an
  2324. <R>-power-up. (Do it twice to restore the correct monitor-type setting.)
  2325. 1.09
  2326. Å   File copying on a single drive. Are you having difficulty copying
  2327. files from one disk to another using just one disk drive? Is it that
  2328. when using the *COPY command with the Prompt option, the system prompts
  2329. for insertion of the destination disk but never recognises it? If so, 
  2330. issue the command *NODIR first. The system will then read the disk
  2331. directory every time it attempts to access a disk rather than storing
  2332. the directory in memory so that disks no longer need *MOUNTing. It is
  2333. possible to make the change permanent by doing *Configure NODIR.
  2334. 1.09
  2335. Å   Boot files that work from desktop or with <shift-break> ÿ set *OPT
  2336. 4,2 (Run) and create a BASIC program called !BOOT. You can then <shift-
  2337. break> if configured as language 3 or 4 (desktop or BASIC) or double
  2338. click the !boot icon from desktop.
  2339. 1.09
  2340. If necessary the !BOOT file can contain a line such as: 10*EXEC !BOOT1
  2341. 1.09
  2342. !BOOT1 contains tasks such as loading modules that need to be done from
  2343. supervisor mode.
  2344. 1.09
  2345. Å   To run Master software, use *Alphabet Master and *Keyboard Master.
  2346. 1.09
  2347. Å   *TypeFile again. After the ideas given last month, I knew there
  2348. should be an easier way╔ Clifford Hoggarth has come up with:
  2349. 1.09
  2350. *Alias$TypeFile Echo ||B|M Type %0|M Echo ||C|M
  2351. 1.09
  2352. The point is that on first interpretation, || is turned into | so that
  2353. it become Echo |B which gives the ASCII 2 (ctrl-B) to turn on the
  2354. printer and Echo |C to do the reverse.
  2355. 1.09
  2356. Å   System Delta Plus ÿ The section in the manual on printer control
  2357. codes is not very clear. The following points may make it clearer: (1)
  2358. Clicking on <menu> on the printer control icon brings up a sub-menu
  2359. giving options for Bold, Compressed or Reset. (2) To select multiple
  2360. escape sequences, click <select> on the printer control icon, select the
  2361. Escape icon and enter the first code in the sequence, then press
  2362. <return>, enter the second code and again press <return>. Repeat this if
  2363. necessary and click on the OK icon when you have finished. E.g. to get
  2364. NLQ on an Epson , you want ESC120,1. So use: <select> Escape icon, type
  2365. 120, press <return>, type 1, press <return>, <select> OK icon.
  2366. 1.09
  2367. One limitation of the System Delta Plus package, as it stands, is that
  2368. you can only create four numeric total fields when producing a öListò.
  2369. The solution, according to Minerva Systems will be to purchase their
  2370. öReporterò software ÿ when it becomes available!
  2371. 1.09
  2372. Å   Taxan Kaga printer (or the Canon equiv-alent) ÿ there is a fairly
  2373. simple way of being able to switch the auto-line feed on and off, to
  2374. avoid problems with software that may or may not require the printer to
  2375. auto-line feed.
  2376. 1.09
  2377. All you do is to place a switch between two pins of the printer
  2378. connector. The pins to connect are pin 14 (auto-line feed) and any GND
  2379. line. When they are connected an auto-line is not performed.
  2380. 1.09
  2381. Å   Ambiguous *-commands. If you have two modules loaded into the
  2382. Archimedes that use the same *-command name, you can call the command
  2383. required by: *<module name>: <command> <....> So, for example, if you
  2384. had two modules, ╘Utility╒ and ╘Toolkit╒ both of which have a CATALL
  2385. command, you can use either *Utility:CATALL or *Toolkit:CATALL to
  2386. differentiate between them.
  2387. 1.09
  2388.  
  2389. Å   BASIC Editor. If you type öEDIT.ò instead of just öEDITò, it gets
  2390. you back into the editor at the same place you left it. This can be very
  2391. useful when editing long programs. It even seems to work if you load and
  2392. save other programs in the interim as long as you get the original
  2393. program back into memory. Also, you can say EDIT Fred and it will take
  2394. you to the first occurrence of the word öFredò in the file. So, with
  2395. judicious use of REM statements, you can jump into the program at just
  2396. the right place every time. If you want to find DEFPROCfred, EDIT fred
  2397. will probably bring you to PROCfred rather than the definition itself,
  2398. but REM !FRED above the top of the procedure would allow you to type
  2399. EDIT !FRED (note, all uppercase, which is easier to type) to drop you
  2400. straight to the desired place in the program.
  2401. 1.10
  2402. Å   Artisan ÿ fast load and save. If you have typed in the Fastload/Save
  2403. module from the March issue of Archive, *COPY FastRm onto the Artisan
  2404. disk and then LOAD öART3ò, list line 270 and add *RMLOAD FastRm|M and
  2405. then re-save it. Now LOAD öART5ò change line 2540 to OSCLIöFastLoad ò+f$
  2406. and line 2620 to OSCLIòFastSave ö+f$. Then re-save it. You now have a
  2407. new and improved disc facility for Artisan.
  2408. 1.10
  2409. Å   305, 310, 410 or 440? Following on from the hint in the May issue
  2410. (page 7) it╒s all very well to know what the page size is, 8k or 32k,
  2411. but to differentiate between a 305 and a 310 or between a 410 and a 440,
  2412. you need to know how much memory is available. One way of doing this is
  2413. to set up a local error trap and do a *Configure Spritesize 128. If the
  2414. machine has 1 Mbyte or less it will generate a öConfigure parameter too
  2415. bigò error. If it still generates an error when you use *Configure
  2416. Spritesize 64 then the software knows it is running in a 305. We have
  2417. not had chance to check this on a 305 or a 410, so please will someone
  2418. let us know if it does not work.
  2419. 1.10
  2420. Å   System DeltaPlus. If you want to use two drives, issue the following
  2421. two commands from the card index:
  2422. 1.10
  2423. *dir :1
  2424. 1.10
  2425. *set Delta$WPPrefix :0.$
  2426. 1.10
  2427. Then don╒t specify the drive number in the data file name.
  2428. 1.10
  2429. Å   View 3 & Viewstore 1.1. Various folk are still having problems with
  2430. these. If so, try the following as suggested by Sean Kelly ÿ thanks.
  2431. 1.10
  2432. Viewstore 1.1. Locations &ABE2, &ABE3 and &ABE4 should all be set to the
  2433. value &EA.
  2434. 1.10
  2435. View 3. Set locations &A8D6, &A8D7 and &A8D8 to the value &EA. Also,
  2436. there are four places where you get LDA#&82, JSR Osbyte (i.e. &A9, &82,
  2437. &20, &F4, &FF). This is used to check for the second processor on the
  2438. BBC. So to fool it, you have to change each of these to: LDX#&FF,
  2439. LDY#&FF, NOP. You can either do this by poking &A2, &FF, &A0, &FF, &EA
  2440. into each of the sets of locations: &8834 to &8838, &88D8 to &88DC,
  2441. &895C to &8960 and &AF8D to &AF91. (I checked these locations against
  2442. the B3.0 version in the Master 128╒s and it bore no resemblance to it.
  2443. Apparently it refers to the A3.0 version. Ed.)
  2444. 1.10
  2445. Å   Improved sound. If you have the colour monitor that comes with the
  2446. Archimedes, you can use the Audio Input at the back of the monitor (a
  2447. phono socket) to take a signal from the Headphones output (3.5 mm stereo
  2448. jack) from the Archimedes. Just use one of the channels or combine them
  2449. with 100R resistors. (If you╒re not quite sure how to do this, we╒ll try
  2450. to give more details next month.) This give a much better sound and
  2451. provides you with a volume control.
  2452. 1.10
  2453. Next two hints are from Peter Kiggins╔
  2454. 1.10
  2455. Å   When using a SWI from BASIC which either takes or returns a string,
  2456. it is not necessary to use pointers to strings.  The SYS command knows
  2457. that a pointer has been returned by the SWI and copies the relevant text
  2458. into the string.  For example, instead of
  2459. 1.10
  2460. $TxtPtr%=Number$
  2461. 1.10
  2462. SYSöOS_ReadUnsignedò,FromBase%,TextPtr% TO ,,Decimal%
  2463. 1.10
  2464. you can use the more readable and easier
  2465. 1.10
  2466. SYSöOS_ReadUnsignedò,FromBase%,Number$ TO ,,Decimal%
  2467. 1.10
  2468. And to read the command line which started the program, all thatæs
  2469. required is
  2470. 1.10
  2471. SYS öOS_GetEnvò TO Command_line$
  2472. 1.10
  2473. Å   BASIC commands TWIN and TWINO can be used without Acornæs (editor)
  2474. TWIN.  How?  When TWIN is executed, BASIC first converts the current
  2475. program from internal tokenised format to plain text format; then it
  2476. calls TWIN with the location of the text as a command line string.  So
  2477. all that is required is a program called TWIN which reads the command
  2478. line and saves the relevant chunk of memory:-
  2479. 1.10
  2480.  10 REM >twin
  2481. 1.10
  2482.  20 REM*** fails with very short pieces of text ***
  2483. 1.10
  2484.  30 SYS öOS_GetEnvò TO command_line$
  2485. 1.10
  2486.  40 posat%=INSTR(command_line$,ö@ò)
  2487. 1.10
  2488.  50 poscomma%=INSTR(command_line$,ö,ò,posat%)
  2489. 1.10
  2490.  60 possemic%=INSTR(command_line$,ö;ò,poscomma%)
  2491. 1.10
  2492.  70 start$=ö&ò+MID$(command_line$,posat%+1,poscomma%-(posat%+1))
  2493. 1.10
  2494.  80 finish$=ö&ò+MID$(command_line$,poscomma%+1,possemic%-(poscomma%+1))
  2495. 1.10
  2496.  90 INPUTöEnter file name: ò file$
  2497. 1.10
  2498. 100 OSCLI(ösave ò+file$+ö ò+start$+ö ò+finish$)
  2499. 1.10
  2500. 110 OSCLI(ösettype ò+file$+ö &FFFò)
  2501. 1.10
  2502. The point of all this is that the BASIC Editor can now be used to
  2503. produce text files ÿ for wordprocessing, compiling, etc.
  2504. 1.10
  2505. Å   Auto-Booting ÿ some of the commercial auto-boot programs donæt take
  2506. into account the filing system! This can be very annoying if you have a
  2507. ROM podule and your system is set to start up in the RFS. The answer is
  2508. (i) the software developers should produce proper auto-boot programs; or
  2509. (ii) if you already have bought a program ÿ put *CON.FILE.ADFS in auto-
  2510. boot program!
  2511. 1.10
  2512. Hard Disc Auto-Booting ÿ some readers are lucky enough to have hard
  2513. discs. However, life with a hard disc is not all a bed of roses! Having
  2514. copied your application programs to the hard disc, you run into problems
  2515. with the auto-booting routines. Here is a one of many possible solu
  2516. tions. Indeed this program could be used for those of us with floppies,
  2517. who have more than one application on a disc.
  2518. 1.10
  2519.  10 REM >$.!BOOT
  2520. 1.10
  2521.  20 REM **************************
  2522. 1.10
  2523.  30 REM * Multiple  Auto-Booting *
  2524. 1.10
  2525.  40 REM * written by Adrian Look *
  2526. 1.10
  2527.  50 REM *     22nd June 1988     *
  2528. 1.10
  2529.  60 REM **************************
  2530. 1.10
  2531.  70
  2532. 1.10
  2533.  80 SYS öOS_Byteò,161,16 TO ,,misc_flags
  2534. 1.10
  2535.  90 auto_boot=(misc_flags AND %10000)
  2536. 1.10
  2537. 100 file$=öbootò
  2538. 1.10
  2539. 110 file=OPENIN(file$):CLOSE #file
  2540. 1.10
  2541. 120 IF file=0 THEN PROCmenu
  2542. 1.10
  2543. 130 file=OPENIN(file$)
  2544. 1.10
  2545. 140 INPUT #file,boot$
  2546. 1.10
  2547. 150 CLOSE #file
  2548. 1.10
  2549. 160 IF auto_boot THEN OSCLI(öREMOVE ò+file$)
  2550. 1.10
  2551. 170 OSCLI(öRUN ò+file$)
  2552. 1.10
  2553. 180 END
  2554. 1.10
  2555. 190
  2556. 1.10
  2557. 200 DEFPROCmenu
  2558. 1.10
  2559. 210 REM **** your own code ****
  2560. 1.10
  2561. 220 REM
  2562. 1.10
  2563. 230 REM should exit with file$
  2564. 1.10
  2565. 240 REM containing the filename
  2566. 1.10
  2567. 250 REM of the program to be run.
  2568. 1.10
  2569. 260 REM
  2570. 1.10
  2571. 270 REM e.g. PRINT #file,filename$
  2572. 1.10
  2573. 280 ENDPROC
  2574. 1.10
  2575. The program checks whether a file (file$) is on the disk. If it is, then
  2576. the program reads the filename contained in file$ and runs it! Other
  2577. wise, the program should create file$ ÿ as indicated.
  2578. 1.10
  2579. This method also allows you to write library programs which will: create
  2580. file$ and then run the boot program. Thus by running these library files
  2581. you can also initiate your application programs ÿ without the need for a
  2582. menu!
  2583. 1.10
  2584. Å   Quazer Fix. If you are using Quasar 1.40, here is a cheat, (for
  2585. those who like such things!) which allows you to keep going a bit
  2586. longer. Firstly, *LOAD QuazCode 9000 and then rename Quazcode as, say,
  2587. OldCode. Now if you want to set the number of lives, you need to change
  2588. location &3D058. It should currently contain 2, so to change the number
  2589. of lives to, say 10, put ?&3D058=10. Now if you want to avoid being
  2590. killed when you collide, change the contents of location &3D90B from &E2
  2591. to &F2 by puting ?&3D90B=&F2. Finally, *SAVE QuazCode 9000 +36520.
  2592. 1.10
  2593. ÅPasswords if you want them. Quazer Passwords: 2 Lizards, 3 Spiders, 4
  2594. Pedantic, 5 Analysis, 6 Larkin, 7 Company, 8 Manual,9 Trading
  2595. 1.10
  2596. Hoverbod passwords: 2 Minervas, 3 SirBarry, 4 ZotyBlob, 5 Flumpies, 6
  2597. Squidgee, 7 Wobblies, 8 Posskett
  2598. 1.10
  2599.  
  2600. 1.10
  2601. The following Hints & Tips were sent in by Mike Harrison (of Watford
  2602. Digitiser fame). He╒s also sent us various other bits of information
  2603. which appear elsewhere in this issue and the next issue. Many thanks
  2604. Mike.
  2605. 1.10
  2606. Writing modules
  2607. 1.10
  2608. (Ref. issue 5, page 45) SWIs in modules must always use the ÉXæ version
  2609. of the SWI and, where appropriate, check for an error and exit,
  2610. preserving the value of r0 returned by the SWI (i.e. donæt restore the
  2611. old value of R0 if it had been saved). e.g.
  2612. 1.10
  2613. .a_module_routine
  2614. 1.10
  2615. STMFD R13!,{r0-2 ,14} \or however many registers you need to save
  2616. 1.10
  2617. SWI öXOS_SomethingOrOtherò
  2618. 1.10
  2619. STRVS R0,[R13] \overwrite old r0 with error pointer
  2620. 1.10
  2621. LDMVSFD R13!,{r0-2 ,PC}
  2622. 1.10
  2623. \ the last 2 statements could alternatively have been :
  2624. 1.10
  2625. \
  2626. 1.10
  2627. \ ADDVS R13,R13,#4 : LDMVSFD R13!,{r1-2 ,PC}
  2628. 1.10
  2629. For short routines, or where several SWIs are used, the following is
  2630. neater..
  2631. 1.10
  2632. .a_short_routine
  2633. 1.10
  2634. STMFD R13!,{r0-5 ,14}
  2635. 1.10
  2636. SWI öXOS_SomeSwiò
  2637. 1.10
  2638. SWIVC öXOS_SomethingElseò
  2639. 1.10
  2640. SWIVC öXOS_YetAnotherSwiò
  2641. 1.10
  2642. STRVS R0,[R13]
  2643. 1.10
  2644. LDMFD R13!,{r0-5 ,PC}
  2645. 1.10
  2646. In this example, all code after first SWI should be conditional on V
  2647. clear, so if any SWI gives an error, the code will Édrop throughæ to the
  2648. end.
  2649. 1.10
  2650. Remember that some SWIs may return errors you donæt expect ÿ e.g.
  2651. OS_WriteC could return an error when output is *Spooled, setting the
  2652. screen mode could give ÉBad Modeæ etc. ÿ some thought is required to
  2653. ensure that module code will be reliable in all environments.
  2654. 1.10
  2655. When setting up offsets in headers and command tables, it is much easier
  2656. to specify them when using offset assembly (OPT 4/6/7) ÿ set O% to the
  2657. code buffer, and P% to 0. Offsets can then be included directly with
  2658. EQUD (e.g. EQUD moduletitle). Warning ÿ if you are still using Basic
  2659. 1.00, there is a bug in ALIGN when using offset assembly. Version 1.02
  2660. is OK.
  2661. 1.10
  2662. The following assembler macro is useful when building keyword tables in
  2663. modules (it assumes the use of offset assembly, as described above):
  2664. 1.10
  2665. DEF FNcommand(I%,A$)
  2666. 1.10
  2667. [ OPTpass : EQUS A$ : EQUB0 :
  2668. 1.10
  2669. ALIGN
  2670. 1.10
  2671. EQUD EVAL(A$)
  2672. 1.10
  2673. EQUD I%
  2674. 1.10
  2675. EQUD EVAL(A$+ösyntaxò)
  2676. 1.10
  2677. EQUD EVAL(A$+öhelpò)
  2678. 1.10
  2679. ]:=pass
  2680. 1.10
  2681. OPT FNcommand(öNewCmdò,N) will create a table entry, using the labels
  2682. .NewCmd .NewCmdhelp and .NewCmdsyntax (N is the information word).
  2683. 1.10
  2684. Note that Épassæ is the name of the pass variable ÿ change this if you
  2685. use a different name.
  2686. 1.10
  2687. Podule manager/Clock slowdown
  2688. 1.10
  2689. (Ref. issue 7, page 44) The problem here is that SWIs are passed to
  2690. modules with interrupts disabled, so if the SWI takes a significant
  2691. amount of time to complete, the clock will slow down (the mouse pointer
  2692. will also become sluggish). I canæt see why the podule manager should
  2693. need interrupts off, so itæs probably an unintended Éfeatureæ ÿ SWI code
  2694. which takes time to execute SHOULD enable interrupts, unless they have
  2695. to be off. (The digitiser module only runs with interrupts off when
  2696. absolutely necessary!) When interrupts have been disabled for signifi
  2697. cant amounts of time, the seconds count of the real-time clock gets out
  2698. of step with the minutes, which then donæt roll over at 59 secs ÿ this
  2699. looks weird if you donæt know about it!
  2700. 1.10
  2701. System Devices
  2702. 1.10
  2703. (Ref. issue 6, page 41) There is a very interesting feature, which I
  2704. havenæt seen documented, concerning device oriented filing systems. When
  2705. you set the printer type using *FX5,n where n is greater than 2, the OS
  2706. looks for a system variable called printertype$n ÿ n being the value
  2707. used for FX5. This variable holds the name of the output file or device
  2708. to which printer output should be sent. The Econet module, NetPrint,
  2709. uses this to set printer type 4 to önetprint:ò. What happens is that
  2710. when you do <ctrl-B>, a file is opened, with the name given in this
  2711. system variable, and <ctrl-C> closes the file. While this would normally
  2712. send output to a hardware device, it can also use the name of a normal
  2713. file; e.g.
  2714. 1.10
  2715. *set printertype$5 outfile
  2716. 1.10
  2717. *fx5 5
  2718. 1.10
  2719. Will cause subsequent printer output to be written to the file öoutfileò
  2720. ÿ handy for debugging, and for saving data to print on other machines.
  2721. Note that this will only work if a program does VDU2, sends ALL its
  2722. output, then does VDU3. If it keeps turning the printer on and off all
  2723. the time with VDU2/3, only the last part of the output will be in the
  2724. file, as VDU2 re-opens the file, discarding its previous contents.
  2725. (Econet users know only too well the problems caused by software not
  2726. handling the printer correctly!)
  2727. 1.10
  2728. Just for fun, try :
  2729. 1.10
  2730. *set printertype$5 vdu:
  2731. 1.10
  2732. *fx5 5
  2733. 1.10
  2734. <Ctrl-B>
  2735. 1.10
  2736. All vdu output will appear ttwwiiccee!! ÿ once via the normal route, and
  2737. again via the printer stream.
  2738. 1.10
  2739. Use of SYS
  2740. 1.10
  2741. (Ref. issue 9, page 47) The following is a bomb-proof version of OSCLI
  2742. in BASIC, which will report errors without entering BASICs error handler
  2743. (it can also be used for other SWIs ÿ e.g. OS_File to trap filing errors
  2744. neatly)
  2745. 1.10
  2746. DEFPROCoscli(OS$)
  2747. 1.10
  2748. LOCAL flag%,error%
  2749. 1.10
  2750. SYSöXOS_CLIò,OS$ TO error% ; flag%
  2751. 1.10
  2752. IF flag% AND 1 THEN P.öError : ò;:SYSöOS_Write0ò,error%+4
  2753. 1.10
  2754. REM the error number can be read using !error%
  2755. 1.10
  2756. ENDPROC
  2757. 1.10
  2758. It works by reading back the V flag and error pointer returned by the X
  2759. version of the SWI
  2760. 1.10
  2761. TWIN
  2762. 1.10
  2763. (Ref. issue 7, page 7) You can warm start Twin using *Twin -warm, using
  2764. the same version of Twin, of course ÿ *GO may cause problems if the code
  2765. has been corrupted, (or youæve forgotten the address!). There is a bug
  2766. in all the versions of Twin Iæve seen (Iæm not sure what version has
  2767. been released), which means that when exiting from TWIN to BASIC, the
  2768. event vector is messed up, so if you overwrite the address where Twin
  2769. was run, and enable events, the machine crashes. This can be avoided by
  2770. doing QUIT, *BASIC, and OLD.
  2771. 1.10
  2772. In one issue, there was a tip for entering ARMBE automatically at the
  2773. line in error ÿ hereæs a similar routine if you prefer using TWIN to
  2774. edit BASIC programs ÿ It uses the TWINO8 option to strip line numbers
  2775. (which you donæt need to use, DO YOU!!). If the error wasnæt Escape,
  2776. pressing <Y> will enter TWIN at the line where the error occurred. Note
  2777. that it assumes lines are numbered in 10s ÿ this will be the case if the
  2778. program has been edited in TWIN without line numbers, but not if lines
  2779. have been inserted/deleted from the BASIC prompt ÿ in this case, enter
  2780. TWIN, and exit again, or do RENUMBER.
  2781. 1.10
  2782. ON ERROR PROCERR
  2783. 1.10
  2784. ...
  2785. 1.10
  2786. ...
  2787. 1.10
  2788. DEFPROCERR
  2789. 1.10
  2790. REPORT:PRINTö at line òERL
  2791. 1.10
  2792. IF ERR=17 END
  2793. 1.10
  2794. PRINTöEDIT ?ò:IF GET$=öYò ELSE END
  2795. 1.10
  2796. *FX138 0 129
  2797. 1.10
  2798. *FX138 0 128
  2799. 1.10
  2800. FORA%=1 TO LEN(STR$(ERL DIV10))
  2801. 1.10
  2802. SYS 6,138,,ASC(MID$(STR$(ERL DIV10),A%,1))
  2803. 1.10
  2804. NEXT:*FX138 0 13
  2805. 1.10
  2806. END
  2807. 1.10
  2808. Hidden software
  2809. 1.10
  2810. (Ref. issue 9, page 4)  Take a close look at the digitiser module!
  2811. 1.10
  2812.  
  2813. Hints & Tips
  2814. 1.11
  2815. Å   *COMPACT Ö The User Guide says that *COMPACT ömoves files around on
  2816. the disc, collecting all the free space into a continuous blockò.
  2817. However, if you have a disc that has several gaps you will find that you
  2818. need several compactions. One disc which had 5 gaps in the FS map had to
  2819. be compacted eight times before the map showed only a single gap. (See
  2820. review of R.A.Engineeringæs Utilities, page ?????)
  2821. 1.11
  2822. Å   *COPY Ö When copying multiple files using wildcards, you must ONLY
  2823. specify the directory into which to copy and not try to specify the
  2824. actual file name in any way e.g. if you want to copy files PROGA, PROGB,
  2825. PROGC etc from the öBASICò directory into the öBACKUPò directory, use
  2826. *COPY $.BASIC.PROG* $.BACKUP.* but if you try to use *COPY $.BASIC.PROG*
  2827. $.BACKUP.PROG* it wonæt work. This is not desperately clear in the User
  2828. Guide and Iæve only just worked out why 90% of my attempts to do
  2829. wildcard copies have not worked!
  2830. 1.11
  2831. Å   CAPS LOCK Ö Another thing which is obvious if you know about it is
  2832. that you can set up the keyboard to print upper case normally but then
  2833. go into lower case when you press <shift>. This can be done either by
  2834. *Configure SHCAPS if you want it to start up in that mode (or CAPS or
  2835. NOCAPS if you donæt) or by holding the shift key down and pressing and
  2836. releasing the Caps Lock key.
  2837. 1.11
  2838. Å   CHAINing programs Ö In response to our complaint in last monthæs Bug
  2839. or Feature that programs chaining one another cannot be called from
  2840. drive 1 using the desktop, Philip Colmer of Acornæs Customer Support
  2841. Department tells us that it is definitely a feature. There are a number
  2842. of ways of avoiding the problem. Firstly, you could reference files by
  2843. disc name, so we could CHAINö:ProgDisc.$.Progs.Nextprogò or whatever.
  2844. Alternatively, you could use the fact that when you run a BASIC program
  2845. in drive 1 from the desktop, it generates a command something like
  2846. *basic Öquit öADFS::1.$.Progs.FirstProgò. You could then use OS_GetEnv
  2847. to read the command string and find out where the program has been
  2848. called from. Thridly, have a look at PC.PC from the 1.20 version of the
  2849. PC emulator to see an intelligent (incredibly so!) boot-up program which
  2850. has been very carefully commented to enable you to modify it for your
  2851. own use.
  2852. 1.11
  2853. Å   Auto-booting Ö Again from Philip Colmer comes the suggestion that
  2854. you should use the PC.PC program to boot up applications from within
  2855. directories on the hard disc. The program uses legal OS calls instead of
  2856. re-configuring. It does a *DIR and then runs the program specified. The
  2857. only restriction on it is that it cannot change the system sprite size
  2858. but, he points out, if programs were written properly, they would not be
  2859. using the system sprite area!
  2860. 1.11
  2861. Å   System Devices Ö You can treat devices as files, e.g.
  2862. C%=OPENOUT(öNETPRINT:ò). This is particularly useful in the example
  2863. given on page 9 last month because you can now open a channel to the
  2864. network printer, send some stuff to it when you are ready (using BPUT
  2865. #C%) and when everything is done, close the Éfileæ (CLOSE#0) and it will
  2866. then be printed! (This also came from Philip Colmer Ö Thanks PC! Ö
  2867. Funny, you know, I always thought that PC stood for Personal Computer!
  2868. Ed.)
  2869. 1.11
  2870. The following Hints were prepared by Adrian Look╔
  2871. 1.11
  2872. Å   Smooth Scrolling Ö Using VDU 23,7 you can scroll the current text
  2873. window up, down, left, or right. Horizontally, the picture can be
  2874. scrolled by one byte, but vertically it can only be scrolled by one
  2875. character cell. This can produce a smooth scroll by placing a WAIT (for
  2876. the vertical sync pulse) command before the VDU 23,7. If any further
  2877. delay is implemented then the picture shudders as it scrolls. This means
  2878. that a slow smooth scroll cannot be used. The answer is to redefine the
  2879. screen base address manually (as we used to do on the BBC). This is done
  2880. using ÉOS_Wordæ &16.
  2881. 1.11
  2882. DIM block% 4
  2883. 1.11
  2884. :
  2885. 1.11
  2886. block%?0=type
  2887. 1.11
  2888. block%!1=offset
  2889. 1.11
  2890. WAIT
  2891. 1.11
  2892. SYS öOS_Wordò,&16,block%
  2893. 1.11
  2894. ötypeò   : when 1 Ö base used by VDU drivers (i.e. screen updated)
  2895. 1.11
  2896.    : when 2 Ö base used by hardware (i.e. screen displayed)
  2897. 1.11
  2898. öoffsetò   : from the address of the base of the screen buffer to the
  2899. start of the screen display.
  2900. 1.11
  2901. The following example program should help to make it clearer.
  2902. 1.11
  2903.  10 REM >scrolling
  2904. 1.11
  2905.  20
  2906. 1.11
  2907.  30 REM **************************
  2908. 1.11
  2909.  40 REM *   Scrolling Screens??  *
  2910. 1.11
  2911.  50 REM * written by Adrian Look *
  2912. 1.11
  2913.  60 REM *     21st July 1988     *
  2914. 1.11
  2915.  70 REM **************************
  2916. 1.11
  2917.  80
  2918. 1.11
  2919.  90 MODE 0:OFF
  2920. 1.11
  2921. 100 DIM block% &10
  2922. 1.11
  2923. 110 count=0
  2924. 1.11
  2925. 120
  2926. 1.11
  2927. 130 PRINTTAB(3,15);öSome textò
  2928. 1.11
  2929. 140
  2930. 1.11
  2931. 150 REPEAT
  2932. 1.11
  2933. 160   PROCscroll(1)
  2934. 1.11
  2935. 170 UNTIL 0
  2936. 1.11
  2937. 180 END
  2938. 1.11
  2939. 190
  2940. 1.11
  2941. 200 DEFPROCscroll(speed)
  2942. 1.11
  2943. 210 PROCinfo
  2944. 1.11
  2945. 220 add=x/m
  2946. 1.11
  2947. 230 IF SGN(count)>0 THEN speed=-speed
  2948. 1.11
  2949. 240 REPEAT
  2950. 1.11
  2951. 250   block%?0=2
  2952. 1.11
  2953. 260   block%!1=add*count
  2954. 1.11
  2955. 270   WAIT
  2956. 1.11
  2957. 280   SYS öOS_Wordò,22,block%
  2958. 1.11
  2959. 290   count+=speed
  2960. 1.11
  2961. 300 UNTIL add*count>x*y/m+4160 OR count<0
  2962. 1.11
  2963. 310 ENDPROC
  2964. 1.11
  2965. 320
  2966. 1.11
  2967. 330 DEFPROCinfo
  2968. 1.11
  2969. 340 SYS öOS_ReadModeVariableò,MODE,4 TO ,,x
  2970. 1.11
  2971. 350 x=4-x:x=8*(2^x)*10
  2972. 1.11
  2973. 360 SYS öOS_ReadModeVariableò,MODE,5 TO ,,y
  2974. 1.11
  2975. 370 y=3-y:y=y*256
  2976. 1.11
  2977. 380 SYS öOS_ReadModeVariableò,MODE,3 TO ,,c
  2978. 1.11
  2979. 390 CASE c OF
  2980. 1.11
  2981. 400   WHEN 1  : m=8
  2982. 1.11
  2983. 410   WHEN 3  : m=4
  2984. 1.11
  2985. 420   WHEN 15 : m=2
  2986. 1.11
  2987. 430   WHEN 63 : m=1
  2988. 1.11
  2989. 440 ENDCASE
  2990. 1.11
  2991. 450 ENDPROC
  2992. 1.11
  2993.  
  2994. 1.11
  2995. Å   Desktop Utilities Ö The desktop is essentially a skeleton program
  2996. which allows the programmer to install his/her own icons, windows,
  2997. menus, commands, etc, which the DeskTop will then operate. This is done
  2998. with a very clever set of FNæs. for example:
  2999. 1.11
  3000. PROCinstall(öadrianò)
  3001. 1.11
  3002. :
  3003. 1.11
  3004. DEFPROCinstall(file$)
  3005. 1.11
  3006. INSTALL file$
  3007. 1.11
  3008. void=EVAL(öFNinstall_file_ò+file$)
  3009. 1.11
  3010. ENDPROC
  3011. 1.11
  3012. This means that by EVALuating a string the DeskTop can call any file-
  3013. specific function. In the case above, FNinstall_file_adrian will be
  3014. called. By using this system, any command can be Éinstalledæ or even
  3015. replaced. Explaining or even listing the functions and procedures
  3016. available in the DeskTop program is not really possible in the magazine.
  3017. However, bearing in mind the methods used, you will find before long you
  3018. can write some very useful tools for the DeskTop. It should even
  3019. possible to completely re-write the it! As an example, here is a program
  3020. which will allow you to use star commands. Donæt forget to *SETTYPE
  3021. Éfilenameæ FE0 to indicate that the program is a desktop utility (We
  3022. have included several other utilities on the program disk).
  3023. 1.11
  3024.  10 REM >star
  3025. 1.11
  3026.  20
  3027. 1.11
  3028.  30 REM *******************************
  3029. 1.11
  3030.  40 REM *  Star Commands for Desk Top *
  3031. 1.11
  3032.  50 REM *    written by Adrian Look   *
  3033. 1.11
  3034.  60 REM * original idea Denis Howlett *
  3035. 1.11
  3036.  70 REM *******************************
  3037. 1.11
  3038.  80
  3039. 1.11
  3040.  90 DEFFNinstall_file_star
  3041. 1.11
  3042. 100 file=OPENIN(filehandler_path$+ö.istarò):CLOSE #file
  3043. 1.11
  3044. 110 IF file=0 THEN ERROR 1,öCanæt find icon file Éistaræò
  3045. 1.11
  3046. 120 OSCLI(öSMERGE ò+filehandler_path$+ö.istarò)
  3047. 1.11
  3048. 130
  3049. PROCsys_addtoiconbar(östarò,öcommandò,&301A,icon_fgcol,icon_bgcol,48)
  3050. 1.11
  3051. 140 SYS öWimp_ForceRedrawò,-1,0,0,1279,100
  3052. 1.11
  3053. 150 =0
  3054. 1.11
  3055. 160
  3056. 1.11
  3057. 170 DEFFNaction_star
  3058. 1.11
  3059. 180 PROCstar_command(5,5,75,25,2,1)
  3060. 1.11
  3061. 190 =0
  3062. 1.11
  3063. 200
  3064. 1.11
  3065. 210 DEFPROCstar_command(x0,y0,x1,y1,bx,by)
  3066. 1.11
  3067. 220 *POINTER 0
  3068. 1.11
  3069. 230 VDU 26,4,28,x0,y1,x1,y0
  3070. 1.11
  3071. 240 y0=31-y0:y1=31-y1
  3072. 1.11
  3073. 250 gx=x0*16-bx*8:dx=(x1-x0)*16+bx*16+16
  3074. 1.11
  3075. 260 gy=y1*32-by*16:dy=(y0-y1)*32+by*32+32
  3076. 1.11
  3077. 270 GCOL 0,&4:RECTANGLE FILL gx-4,gy-4,dx+8,dy+8
  3078. 1.11
  3079. 280 GCOL 0,&0:RECTANGLE FILL gx,gy,dx,dy
  3080. 1.11
  3081. 290 LOCAL ERROR
  3082. 1.11
  3083. 300 REPEAT
  3084. 1.11
  3085. 310   ON ERROR LOCAL PRINT REPORT$
  3086. 1.11
  3087. 320   *FX 4,0
  3088. 1.11
  3089. 330   INPUTö*òstar$
  3090. 1.11
  3091. 340   *FX 4,1
  3092. 1.11
  3093. 350   OSCLI(star$)
  3094. 1.11
  3095. 360 UNTIL star$=öò
  3096. 1.11
  3097. 370 RESTORE ERROR
  3098. 1.11
  3099. 380 SYS öWimp_ForceRedrawò,-1,gx-4,gy-4,gx+dx+8,gy+dy+8
  3100. 1.11
  3101. 390 VDU 26,5
  3102. 1.11
  3103. 400 *FX 21,9
  3104. 1.11
  3105. 410 *POINTER
  3106. 1.11
  3107. 420 ENDPROC
  3108. 1.11
  3109. N.B. (i) You will need a STAR shaped icon called Écommandæ, saved as
  3110. Éistaræ. However, if you want to test the program before designing an
  3111. icon, skip lines 100-120 and change öcommandò in line 130 to öunknownò.
  3112. 1.11
  3113.   (ii) Because the DeskTop uses the filename of the utility as a Éseedæ,
  3114. it important that the utilityæs filename be consistent with its
  3115. procedure names. For example: if you rename Éstaræ to Écommandæ then the
  3116. DeskTop will look for FNaction_command instead of FNaction_star, so you
  3117. will get an error!
  3118. 1.11
  3119. Å   Making the Print Key Save Ö Last month it was suggested in Neil
  3120. Strongæs article about making the print key print that a slight
  3121. modification of the program could make it save screen shots to the disc
  3122. using SCREENSAVE ö$.picò instead of HARDCOPYFX. However, this limits you
  3123. to one screen shot at a time (otherwise you will overwrite your last
  3124. one). If we use the system variables and update the Éprint keyæ program
  3125. we can get it to save a screen called É$.scr0æ, followed by, É$.scr1æ,
  3126. É$.scr2æ..etc!
  3127. 1.11
  3128. 871 adr r0,command1
  3129. 1.11
  3130. 872 swi öOS_CLIò
  3131. 1.11
  3132. 920 equs öScreenSave scr<file>ò  ; FastSave even!#?
  3133. 1.11
  3134. 941 .command1
  3135. 1.11
  3136. 942 equs öSetEval file file+1ò
  3137. 1.11
  3138. 943 EQUB 0
  3139. 1.11
  3140. 944 ALIGN
  3141. 1.11
  3142. 1020 OSCLI(öSetEval file 0ò)
  3143. 1.11
  3144. 1030 END
  3145. 1.11
  3146. If you wish to (re)set the Éfile countæ to n, then just type:
  3147. 1.11
  3148. *SETEVAL file n
  3149. 1.11
  3150. Å   SpellMaster Browse in Wordwise Plus Ö If you have Spell-Master and
  3151. Wordwise Plus you can very easily write a two line segment program which
  3152. will call the browse window. i.e.
  3153. 1.11
  3154. *BROWSE
  3155. 1.11
  3156. DISPLAY
  3157. 1.11
  3158. Thus if the program were in segment zero you could press <shift><print>
  3159. while editing your text and check your spelling using the browse window.
  3160. This obviously opens up all sorts of possibilities for Wordwise Plus to
  3161. use Spell Masteræs facilities.
  3162. 1.11
  3163.  
  3164. Å   PipeDream Ö For those who have not used View etc and who have
  3165. therefore not had to fight printer drivers, the following may be useful:
  3166. 1.12
  3167. The printer driver is loaded on initialisation and when <Alt><P><D> is
  3168. used, but NOT when a document is printed, so any changes made to a
  3169. printer driver are not acted upon until either of these events. Itæs
  3170. obvious really, but if you havenæt registered the fact, it could cause a
  3171. lot of confusion.
  3172. 1.12
  3173. For those who wish to use bold throughout a document, (e.g. for
  3174. producing something on a dot-matrix printer that will go through a Fax
  3175. machine) it would seem an obvious solution to put markers at the
  3176. beginning and end of the document and make it all bold highlight.
  3177. However, this is not a good idea because your printer will have to cope
  3178. with double printing each word, one word at a time! Instead, change the
  3179. printer driver so that the bold highlight is NOT cancelled at the end of
  3180. a line. i.e. change the Y to an N and either send the necessary ESC
  3181. sequence in the PON line or put a highlight 2 at the very start of your
  3182. text.
  3183. 1.12
  3184. Å   Transferring character definitions Ö If you have files produced by
  3185. the CHARDES program from the Master Welcome disc (mentioned last month,
  3186. page 34) here is a little BASIC program to run the files on the
  3187. Archimedes:
  3188. 1.12
  3189.  10 REM >ThinChar
  3190. 1.12
  3191.  20 CLS : INPUT öFileName ò;A$
  3192. 1.12
  3193.  30 OSCLI (öLOAD ò+A$+ö 12800ò)
  3194. 1.12
  3195.  40 FOR I=127 TO 32 STEP -1
  3196. 1.12
  3197.  50 VDU23,I
  3198. 1.12
  3199.  60 VDU(?(&12844+I-32))
  3200. 1.12
  3201.  70 VDU(?(&128A4+I-32))
  3202. 1.12
  3203.  80 VDU(?(&12904+I-32))
  3204. 1.12
  3205.  90 VDU(?(&12964+I-32))
  3206. 1.12
  3207. 100 VDU(?(&129C4+I-32))
  3208. 1.12
  3209. 110 VDU(?(&12A24+I-32))
  3210. 1.12
  3211. 120 VDU(?(&12A84+I-32))
  3212. 1.12
  3213. 130 VDU(?(&12AE4+I-32))
  3214. 1.12
  3215. 140 NEXT
  3216. 1.12
  3217. Å   Quazer (again). The fix for Quazer 1.42 is ?&3D090=N╝ of lives,
  3218. ?&3D98F=&F2, *SAVE Quazcode 9000 +365AC, *settype Quazcode FF8. Å  
  3219. Printing in binary Ö PRINT ~number% prints number% in hexadecimal but
  3220. there isnæt an equivalent for printing in binary. However, there are SYS
  3221. commands that will do it for you. The following program illustrates the
  3222. use of SYS &E0 which converts a number to a four byte binary number
  3223. string (SYSæs &DF, DE and DD convert to 3, 2 and 1 byte binary numbers).
  3224. 1.12
  3225. The only other point of interest in the program is the way that the
  3226. leading zeros are stripped off by lines 190, 200 (which can be omitted,
  3227. of course, if you want the leading zeros!). The INSTR command finds the
  3228. position of the first ö1ò starting from the left hand end of the string,
  3229. take off one to give the number of zeros to be removed. The LEFT$
  3230. command at line 200 turns those zero characters into the character set
  3231. by pad$. (This illustrates the fact that you can use string functions on
  3232. the left hand side of an assignment.) If pad$ is a space character, the
  3233. binary numbers produced will all be the same length and so will be right
  3234. justified but if you want the strings left justified, you can set pad$
  3235. to CHR$0. (An alternative for left justification would be to use
  3236. numb$=RIGHT$(numb$,32-n%).)
  3237. 1.12
  3238.  10 REM > BinPrint
  3239. 1.12
  3240.  20
  3241. 1.12
  3242.  30 pad$=CHR$0 :REM left justifæn
  3243. 1.12
  3244.  40 pad$=ö ò : REM right justifæn
  3245. 1.12
  3246.  50 OS_ConvertBinary4=&E0
  3247. 1.12
  3248.  60
  3249. 1.12
  3250.  70 REPEAT
  3251. 1.12
  3252.  80   INPUT öNumber? ònumber$
  3253. 1.12
  3254.  90   number%=EVAL(number$)
  3255. 1.12
  3256. 100   A$=FNbinconvert(number%)
  3257. 1.12
  3258. 110   PRINT A$
  3259. 1.12
  3260. 120 UNTIL0
  3261. 1.12
  3262. 130
  3263. 1.12
  3264. 140 DEF FNbinconvert(numb%)
  3265. 1.12
  3266. 150 LOCAL numb$,n%
  3267. 1.12
  3268. 160 
  3269. 1.12
  3270. 170 SYS OS_ConvertBinary4,numb%,
  3271. 1.12
  3272. 32,numb$ TO numb$
  3273. 1.12
  3274. 180
  3275. 1.12
  3276. 190 n%=INSTR(numb$,ö1ò)-1
  3277. 1.12
  3278. 200 LEFT$(numb$,n%)=STRING$(n%
  3279. 1.12
  3280. ,pad$)
  3281. 1.12
  3282. 210 =numb$ 
  3283. 1.12
  3284. Å   Hard Disc Head Parking Ö Donæt forget that if the RFS is selected,
  3285. it will accept the *BYE command but it will not park the heads on the
  3286. drive. You have to be in ADFS.
  3287. 1.12
  3288. Å   Screenload/save Ö It is interesting to compare the time taken to
  3289. save and load screens using *screensave and *screenload with the time
  3290. taken to define the whole screen as a sprite and save it using *Ssave or
  3291. load it with *Sload. In all modes there is considerable saving e.g.
  3292. 1.12
  3293.    Mode1   Mode12   Mode 15
  3294. 1.12
  3295.   *Screensave(load)   7(4)   25(18)   52(38)
  3296. 1.12
  3297.   *Ssave(load)   1(<1)   3(3)   7(6)
  3298. 1.12
  3299. Å   Libraries and *mount╔ If you *mount a disc, the library from the
  3300. previous disc remains in memory. For those with a single drive, this may
  3301. seem a nuisance but the reason the library is not changed is that you
  3302. can have a library on one drive and shove discs in and out of the other
  3303. drive without losing the library Ö particularly important with hard
  3304. discs. Obviously you could reselect the library with *library $.Library
  3305. but it is much easier to use *bye. That way, you donæt even have to use
  3306. *mount.
  3307. 1.12
  3308. Å   Reliable RS423 transfer from BBCæs. This is mostly just reiterating
  3309. what has gone before, but to transfer reliably from BBC to Archimedes at
  3310. 9,600 baud you need to [1] use the 1.24 serial patch (on Archive program
  3311. disc 7) [2] Set *Configure DATA 5 (i.e. 8 data bits and 1 stop bit which
  3312. is the default on the BBC) and [3] connect the BBCæs RTS output to the
  3313. Archimedesæ DSR input (pin 6) instead of the CTS input (pin 8) and link
  3314. pins 1, 4 and 8 together.
  3315. 1.12
  3316. Å   View A3.0 Further to the patches given in July issue (Vol. 1.10 page
  3317. 6) Richard House reckons that instead of using &FFæs in the various
  3318. locations you should use &00æs. (If someone has a working version of
  3319. A3.0, please send it in so that we can add it to our collection of
  3320. working patches!)
  3321. 1.12
  3322. Å   Viewstore 1.1 Ö Following on from the July Hints & Tips, not that
  3323. not only should &ABE2, 3 and 4 be set to &EA, but also, the LDA #&82,
  3324. JSR OSBYTE (&A9, &82, &20, &F4, &FF) routines need to be altered as with
  3325. View A3.0. These occur at locations &A256 Ö A25A, &AA22 Ö AA26 and &AB98
  3326. Ö AB9C. The code required in each of these locations is &A2, &00, &A0,
  3327. &00, &EA. (LDX #&00, LDY #&00, NOP). (If you canæt cope with these
  3328. technicalities, send us a disc with Viewstore 1.1 on it and weæll modify
  3329. it for you.)
  3330. 1.12
  3331. Å   Correct Nesting? To check that the nesting of loops, IFæs and CASEæs
  3332. is correct within a program, use LISTO2 and LIST the program. If at the
  3333. end of the program, the final line has two or more spaces after the line
  3334. number, youæve got an incorrect nesting somewhere. To check through,
  3335. there should be no spaces between line numbers and DEFPROCæs, DEFFNæs or
  3336. ENDPROCæs.
  3337. 1.12
  3338. Å   Marconi Trackerball. Archimedesæ mouseæs tail can apparently be
  3339. removed, so says Mr T A Doncaster, and plugged into an identical
  3340. connector within the Marconi RB2/PC-1 tracker ball and all works without
  3341. any further fiddling about. Watch that the supply polarity is correct
  3342. though.
  3343. 1.12
  3344. Å   Readable zeros. In InterSheet in particular, I find the slashed-
  3345. zeros misleading Ö they can easily be mistaken for eights. If you re-
  3346. program the zero character using a VDU23 command you can avoid the
  3347. confusion. It does increase the possibility of confusion with a capital-
  3348. O but that is far less important in spreadsheet work than confusion with
  3349. 8. So, I store the following program in the RAM on the RFS and call it
  3350. up with *IS<return>:
  3351. 1.12
  3352. 10 REM >RFS:IS
  3353. 1.12
  3354. 20 VDU23,48,60,102,102,102,102,
  3355. 1.12
  3356. 102,60,0
  3357. 1.12
  3358. 30 CHAIN öRFS:ISHEETò
  3359. 1.12
  3360. No doubt you could modify this program if you wanted to use the same re-
  3361. programmed zero character with other spreadsheet software.
  3362. 1.12
  3363. Å   Computer salutions. R.E.Boldero, in the July edition, asked for a
  3364. way of getting his computer to greet him each time he switched on. The
  3365. next hint shows a partial solution.
  3366. 1.12
  3367. Å   RFS Boot file Ö If you use a ROM podule with battery backup, you can
  3368. create a boot file that runs in the RFS and sets up all sorts of
  3369. goodies. I used to have a BASIC program called !BOOT which set up all
  3370. sorts of things on power-up or <ctrl-break> but if you are developing a
  3371. BASIC program, get stuck and press <ctrl-break>, you lose the program
  3372. because it is replaced by the boot program!!!!! After Adrian had fallen
  3373. into this trap a few times when using my computer, he developed the
  3374. following rather ingenious (not to say devious) EXECable boot program.
  3375. (*Configure Filesystem RFS, *Configure Boot and *OPT 4,3 in the RFS.)
  3376. 1.12
  3377. We have since added a facility for making Arthur talk to you a bit more
  3378. politely, from an idea sent in by Chris Hayes.
  3379. 1.12
  3380. To create the boot file, I start with the following Wordwise Plus file
  3381. which is then spooled as öRFS:!BOOTò.  (The line numbers are purely for
  3382. discussion purposes.)
  3383. 1.12
  3384.  1 <gr>LL160<gr>PC ö~ò
  3385. 1.12
  3386.  2 VDU21
  3387. 1.12
  3388.  3 VDU6,11,32,32,32,32,32,32,21
  3389. 1.12
  3390.  4 VDU6,19,0,4,0,0,0,21
  3391. 1.12
  3392.  5 VDU6,19,1,0,0,0,0,21
  3393. 1.12
  3394.  6 VDU6,13,11,11,11,11,11,21
  3395. 1.12
  3396.  7 VDU6:COLOUR 6:VDU21
  3397. 1.12
  3398.  8 VDU6:PRINTöN o r w i c h   C o
  3399. 1.12
  3400.  m p u t e r   S e r v i c e sö
  3401. 1.12
  3402. :VDU21
  3403. 1.12
  3404.  9 VDU6:COLOUR 7:VDU21
  3405. 1.12
  3406.  
  3407. 1.12
  3408. 10 *SETCLI$PROMPT <13><10>Good
  3409. 1.12
  3410.  Morning! *
  3411. 1.12
  3412. 11 *IF SYS$TIME LEFT 2>11 THEN SET
  3413. 1.12
  3414.  CLI$PROMPT <13><10>Good Afternoon! *
  3415. 1.12
  3416. 12 *IF SYS$TIME LEFT 2>18 THEN SET
  3417. 1.12
  3418.  CLI$PROMPT <13><10>Good
  3419. 1.12
  3420.  Evening! *
  3421. 1.12
  3422.  
  3423. 1.12
  3424. 13 *KEY0 *MOUNT 0|M*FREE|M*CAT|M
  3425. 1.12
  3426. 14 *KEY1 etc...
  3427. 1.12
  3428. 20 *KEY12 *FORMAT 0 D|M
  3429. 1.12
  3430.  
  3431. 1.12
  3432. 21 *SET Run$Path ,ADFS:$.,RFS:$.
  3433. 1.12
  3434. ,%.
  3435. 1.12
  3436. 22 *SET Alias$> CAT
  3437. 1.12
  3438.  
  3439. 1.12
  3440. 23 *FX255,8
  3441. 1.12
  3442. 24 *ADFS
  3443. 1.12
  3444. 25 *BASIC<gr>OC6
  3445. 1.12
  3446. The LL160 command (1) ensures that the command lines are not split up
  3447. and the PC command ensures that the pad characters are sent when
  3448. spooling the file. (2) switches off the screen display, but since this
  3449. actual command appears on the screen, (3) moves up and wipes it out
  3450. again! (4) and (5) change foreground and background colours (6) moves
  3451. the cursor back up the screen, before printing out a welcome message in
  3452. a different colour, (7 & 8) and switching back to white (9). The IF
  3453. SYS$TIME commands then sets up the Arthurian prompt (normally a star on
  3454. its own) to be something a bit more timely. (This doesnæt automatically
  3455. change the greeting as the time of day changes, it gives you the
  3456. greeting that was appropriate last time you pressed <ctrl-break>.) The
  3457. function keys are then programmed, the runpath is set up etc (21 Ö 24)
  3458. (See Archive 1.7, page 8) before BASIC is invoked with an OC6 to re-
  3459. enable the screen.
  3460. 1.12
  3461. (You could create it by making it a BASIC program that started...
  3462. 1.12
  3463. *SPOOL RFS:!BOOT
  3464. 1.12
  3465. PRINTöVDU21ò
  3466. 1.12
  3467. and ended╔
  3468. 1.12
  3469. PRINTö*BASICò;CHR$(6);
  3470. 1.12
  3471. *SPOOL
  3472. 1.12
  3473. I havenæt tried this BASIC version, but I presume it would work.)
  3474. 1.12
  3475. Å   Keyboard repeat speed. You may have noticed with First Word Plus or
  3476. other wordprocessors that when pressing <return> on auto-repeat it
  3477. cannot keep up and, when you take your finger off the key, it goes on
  3478. spewing out returns until the keyboard buffer is empty. You can avoid
  3479. this by reducing the auto-repeat speed with, say, *Configure repeat 15
  3480. (instead of the default of 8) and then pressing <ctrl-break>. (It should
  3481. really be called the auto repeat time as the number is the time in
  3482. centi-seconds between repeats.) Instead of changing the configuration,
  3483. you may prefer to could add a *FX12,15 command into the !BOOT file and
  3484. then press <ctrl-break> after your WP session to restore the default
  3485. repeat speed.
  3486. 1.12
  3487. Å   Disappearing cursor in EDIT. Have you noticed that if you hold the
  3488. cursor key down in the BASIC editor, the cursor disappears so that you
  3489. canæt see where it is on the line? Try changing the auto repeat speed as
  3490. mentioned in the hint above Ö doesnæt always work, but it seems to make
  3491. it better if you have a faster speed (smaller number in the command).
  3492. 1.12
  3493. Å   Auto indenting in EDIT. Some people like to put the indenting into
  3494. the program itself to show the structure (as opposed to using LISTO3 to
  3495. show the structure when you list it). If you are using the ARM BASIC
  3496. editor, you can add the spaces automatically as you type in the program.
  3497. What happens is that if you put a number of spaces at the beginning of
  3498. one program line then, when you press <return>, the new line has the
  3499. same number of leading spaces as the line before, so until you reach a
  3500. REPEAT or UNTIL or FOR or NEXT etc, you just press <return> and type the
  3501. next line without thinking about the indenting.
  3502. 1.12
  3503. Å   Disappearing programs in EDIT!! On the BASIC editor, if you edit a
  3504. line that occupies more than one screen line and make it shorter, it may
  3505. leave a blank line on the screen (no problem Ö this disappears as soon
  3506. as you move the cursor away from that line). If you then press <return>
  3507. to create a new line, the new line goes in the gap left by the editing
  3508. (still, apparently, no problem). However as soon as you try to use any
  3509. of the move, delete, or copy functions, all the line numbers go wrong
  3510. and cursor movement becomes rather unpredictable. Indeed, if you move
  3511. down the program, you will find that when the line that was edited moves
  3512. off the top of the screen, the scrolling continues and the program
  3513. disappears into oblivion! (Reset and OLD will recover your program
  3514. intact.)
  3515. 1.12
  3516. The solution is, if you get a line gap, either re-number (which happens
  3517. automatically if the line numbers were already consecutive) or move down
  3518. a line then back up again before pressing <return>.
  3519. 1.12
  3520. Å   Pencil for Artisan. If you want to add a Épencilæ facility to
  3521. Artisan, the joined-lines function can be made to provide this in the
  3522. following way. (1) Using a copy (not the original!!) of the Artisan
  3523. disc, enter the BASIC editor and load ART5. (2) Use Search and Edit to
  3524. find DEFPROCKB. (3) Alter the procedure so that it looks like this:-
  3525. 1.12
  3526. DEFPROCKB
  3527. 1.12
  3528. LOCAL X%, Y%, B%
  3529. 1.12
  3530. IF J%=6 AND CLARE%=-1 THEN
  3531. 1.12
  3532. MOUSE X%,Y%,B% :ENDPROC
  3533. 1.12
  3534. ELSE
  3535. 1.12
  3536. REPEAT:MOUSE X%,Y%,B%:UNTIL B%<>BB%:ENDPROC
  3537. 1.12
  3538. ENDIF
  3539. 1.12
  3540. (4) Save this as ART5. (5) For completeness, use the Welcome utility,
  3541. SEDIT, to change the joined-lines icon into a pencil icon. (6) Now, with
  3542. the joined-lines function selected, holding down <select> draws a
  3543. continuous line. On releasing <select>, the normal rubber band line
  3544. appears, but it can be released by pressing <adjust> once. Pressing
  3545. <adjust> again carries out the UNDO function.
  3546. 1.12
  3547. (While on the subject of modifying Artisan, note the short addition in
  3548. Acorn User, April æ88 which adds an airbrush effect.)
  3549. 1.12
  3550. Å   Star LC24-10. If you are having problems with getting a Star LC24-10
  3551. to accept output from First Word Plus or Graphic Writer, check the EPROM
  3552. chip in the printer next to the dip switches. If it has a label on it
  3553. showing version 1.0, contact Star Micronics and they will supply a free
  3554. up-grade.
  3555. 1.12
  3556. Å   Moving menus. If you find that your menus keep moving about, drag
  3557. the box down to the extreme bottom right corner of the screen until you
  3558. can go no further. This makes them a little more secure Ö simple, but
  3559. soothing!
  3560. 1.12
  3561. Å   Programming for speed. Programs like EMRæs SoundSynth and Minervaæs
  3562. Hoverbod and Missile Control are actually written in BASIC, with calls
  3563. to ARM assembly language routines where extra speed is really necessary.
  3564. 1.12
  3565. If you thought professional quality programs demanded assembly language
  3566. only, think again! Perhaps there is a program you had thought of
  3567. writing, but did not feel could be written in BASIC; the speed of the
  3568. Archimedes has changed all of that.
  3569. 1.12
  3570. Your strategy should be to write the whole program in BASIC first and
  3571. then see which routines need replacing with assembly language in order
  3572. to provide the right response times.
  3573. 1.12
  3574. Mike Ginnsæ recent book from DABS Press, öArchimedes Assembly Languageò,
  3575. contains a large number of assembly language counterparts for BASIC
  3576. statements (he calls them ötemplatesò), and would be of great value if
  3577. you want to try your hand at this sort of approach. Although the book
  3578. has rather a large number of grammatical errors and is not quite as
  3579. fully comprehensive as it claims to be, but is still a good buy at
  3580. ú14.95. (Ian Nicholls)
  3581. 1.12
  3582. First Word Plus Hints
  3583. 1.12
  3584. Å   Using PCæs Ö If you have access to a PC and a PC version of First
  3585. Word Plus, you may be interested to know that you can transfer files
  3586. between the two using the Getfile and Putfile utilities of the PC
  3587. Emulator. You can even transfer supplementary dictionaries the same way.
  3588. 1.12
  3589. Å   Adding printer drivers Ö It may not be very obvious how you add the
  3590. extra printer drivers that weæve provided on the program discs, onto
  3591. your First Word Plus disc. Suppose you want the Kaga Taxan driver. Put
  3592. in the program disc and type
  3593. 1.12
  3594. *copy 1WP.cfg.Kaga_Taxan 1WP.cfg.* P
  3595. 1.12
  3596. then change discs and press <space> as prompted. (Or use dual drives if
  3597. you have them.)
  3598. 1.12
  3599. Å   Default printer driver Ö If you want to make, say the Juki driver,
  3600. the default so that it comes up with that as the driver when you boot up
  3601. the disc, use:
  3602. 1.12
  3603. *copy  $.1WP.cfg.Juki  $.Res*.
  3604. 1.12
  3605. 1WP.1wp_print F
  3606. 1.12
  3607. The F in the copy command makes it over-write the existing default
  3608. driver.
  3609. 1.12
  3610. Å   Paging problems. You can now get a version of First Word Plus that
  3611. obeys the command in the printer driver to stop at the end of a page to
  3612. allow you to change the paper. Brian Carroll writes╔ öI returned my disc
  3613. to Acorn and had it back by return of post with a clear and helpful
  3614. letter. It seems that Acorn are at last getting the message about
  3615. customer support. There are only two modified files: $.resources.1WP.1WP
  3616. and $.resources.1WP. 1ML, so for anyone who has done some work to
  3617. configure their working master disc it would be simpler just to copy
  3618. these two files across than to start again from scratch. The bug-fix
  3619. works OK, so the printer drivers that I sent for Canon PW-1080A (program
  3620. disc number 10) will work properly.ò
  3621. 1.12
  3622. Å   LQ1050 Ö You can add double height to the printer driver merely by
  3623. using Search and Replace, changing 57 for 77 (double width for double
  3624. height). It works fine Ö the only thing to remember is to set the line
  3625. spacing to 2 in the ruler when choosing expanded pitch.
  3626. 1.12
  3627. Å   Large documents. Beware when you are printing long documents (30
  3628. pages+) as FWP can get a bit confused and print the wrong pages.
  3629.  
  3630.