home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1996 / ARCHIVE_96.iso / text / hints / volume_02 / issue_11 < prev    next >
Text File  |  1995-02-16  |  27KB  |  1,088 lines

  1.  
  2.  
  3. Å   Limited ADFS memory (RISC-OS/Arthur 1.2) Ö One reader has written in
  4. saying that his Archimedes will only *MOUNT six discs. On the seventh,
  5. the drive spins continuously until the disc is removed. This happens
  6. because the ADFS only has a limited amount of memory to store the
  7. directory information. The amount of memory allocated for this can
  8. controlled by using *Configure ADFSDirCache.
  9. ==> Help on keyword ADFSDirCache
  10. *Configure ADFSDirCache sets the size of the directory cache (in Kbytes)
  11. used by the ADFS. A value of 0 selects a default value which depends on
  12. RAM size.
  13. Syntax: *Configure ADFSDirCache <size>[K]
  14. You can also make the Archimedes forget that it has seen the disc by
  15. using *DISMOUNT.
  16. 2.11
  17. ==> Help on keyword Dismount
  18. 2.11
  19. *Dismount closes files, unsets directories and parks the given disc.
  20. 2.11
  21. Syntax: *Dismount [<disc spec.>]
  22. 2.11
  23. Å   Three floppies for Arthur 1.2 desktop Ö In Archive 2.8, pages 11/12,
  24. there is a hint which allows you to access three drives from the
  25. desktop. However, the hint states that you must start the desktop up by
  26. typing */Desktop instead of *Desktop. One reader says that you could of
  27. course set up *Set Alias$Desktop Run Desktop which would then allow you
  28. to start up using *Desktop.
  29. 2.11
  30. Å   In First Word Plus, when printing after opening more than one file,
  31. the first file you opened will be offered for printing, not the last one
  32. you closed!
  33. 2.11
  34. Å   Configuring your printer under the PC Emulator Ö In reply to Chris
  35. Walkeræs question, you must use the following reserved words when
  36. configuring your printer:
  37. 2.11
  38. For serial printers use: AUX or COM1, COM2, COM3╔
  39. 2.11
  40. For parallel printers use: PRN or LPT1, LPT2╔
  41. 2.11
  42. Å   Sprite Plot comments from Martin Simmons Ö The article on sprite
  43. plotting was interesting since it is always good to see how other
  44. programmers solve problems. However, the routines are far from being the
  45. fastest possible, a major inefficiency being that the screen pointer is
  46. updated after every pixel is plotted. This could be rectified by
  47. deleting 2410, 2460, 2510, 2580 and changing the following:
  48. 2.11
  49. 2010 PROCplot_4_pixels(4*
  50. 2.11
  51. (gjenta-1))
  52. 2.11
  53. 2050 ADD screen_pointerR,
  54. 2.11
  55. screen_pointerR,#320
  56. 2.11
  57. 2110 DEF PROCplot_4_pixels(index)
  58. 2.11
  59. 2400 STRNEB data5R,
  60. 2.11
  61. [screen_pointerR,#index+0]
  62. 2.11
  63. 2450 STRNEB data5R,
  64. 2.11
  65. [screen_pointerR,#index+1]
  66. 2.11
  67. 2500 STRNEB data5R,
  68. 2.11
  69. [screen_pointerR,#index+2]
  70. 2.11
  71. 2570 STRNEB data5R,
  72. 2.11
  73. [screen_pointerR,#index+3]
  74. 2.11
  75. Now the pointer is only changed at the end of each line. This improves
  76. performance over the published routine by about 10% for a 24x24 pixel
  77. sprite with no black pixels.
  78. 2.11
  79. It would be quicker to use word stores instead of byte stores but this
  80. would complicate the routine and may even slow it down overall.
  81. 2.11
  82. Å   D.I.Y. A3000 serial interface Ö Mike Harrison (Archive 2.10 p 56)
  83. didnæt know what the chip numbers were for the A3000 serial interface
  84. kit. You need a 6551 (which ought to be one of the ones manufactured by
  85. CMD) and an LT1133.
  86. 2.11
  87. Å   Evaluation of Algebraic Expressions (E.D. Engelhardt) Ö Anyone who
  88. is interested in the evaluation of valid algebraic expressions could try
  89. to use PROCexpression in program Evalexpr as given below. The procedure
  90. mentioned has been written using suggestions of Mr de Heus, ECD, Delft,
  91. Holland.
  92. 2.11
  93. Variable names in an expression are single, lower-case characters
  94. ranging from Éaæ to Ézæ. These names are stored in Évar$æ. Each
  95. character in the input expression Éex$æ is matched with its presence in
  96. Évar$æ. If so, its position in Évar$æ is detected and it is replaced by
  97. the (arbitrary) character É$æ. The position is used to assign an
  98. appropriate value to the actual variable by means of array Évar()æ. The
  99. value of the expression is obtained using the EVAL function.
  100. 2.11
  101. The reason EVAL(ex$) is preceded by EVAL (öFALSEò) in PROCevalexpression
  102. is as follows: If one enters an expression containing no variables but
  103. numbers only, and the expression cannot be evaluated (e.g. LN0 or 3/0)
  104. an error message appears on the screen. Thereafter, entering the same
  105. type of expression, again not containing variables (e.g. LN9 after LN0
  106. or 6/5 after 3/0), results in the same error message. To prevent this
  107. from happening the instruction EVAL(ö<>ò) is included. I discovered this
  108. Éfeatureæ by accident and found the solution by trial and error. I would
  109. appreciate any comments from interested readers.
  110. 2.11
  111.  10 REM >Evalexpr
  112. 2.11
  113.  20 :
  114. 2.11
  115.  30 WHILE TRUE
  116. 2.11
  117.  40   PROCevalexpression
  118. 2.11
  119.  50 ENDWHILE
  120. 2.11
  121.  60 END
  122. 2.11
  123.  70 :
  124. 2.11
  125.  80:
  126. 2.11
  127.  90 DEFPROCevalexpression
  128. 2.11
  129. 100 k$=ö Press any key to continue !ò
  130. 2.11
  131. 110 LOCAL ERROR
  132. 2.11
  133. 120 ON ERROR LOCAL IF ERR=17 THEN
  134. 2.11
  135.  PRINTÉæö *** Escaped program !òÉ
  136. 2.11
  137. :END ELSE PRINTÉö ò;REPORT$æÉk$;:
  138. 2.11
  139. dummy=GET:ENDPROC
  140. 2.11
  141. 130 :
  142. 2.11
  143. 140 PROCinput
  144. 2.11
  145. 150 :
  146. 2.11
  147. 160 PROCexpression
  148. 2.11
  149. 170 exval=EVAL(öFALSEò)  :REM
  150. 2.11
  151. *** To prevent error message
  152. 2.11
  153.  after evaluation of a wrong
  154. 2.11
  155.  expression, e.g. LN0. Try to                                   REM this
  156. line !
  157. 2.11
  158. 180 exval=EVAL(ex$)
  159. 2.11
  160. 190 :
  161. 2.11
  162. 200 PROCoutput
  163. 2.11
  164. 210 ENDPROC
  165. 2.11
  166. 220 :
  167. 2.11
  168. 230 DEFPROCinput
  169. 2.11
  170. 240 CLS:PRINTÉö Choice of variables
  171. 2.11
  172.  from a to z.öÉ
  173. 2.11
  174. 250 LINE INPUTö Give expression : ò
  175. 2.11
  176. ex$
  177. 2.11
  178. 260 ENDPROC
  179. 2.11
  180. 270 :
  181. 2.11
  182. 280 DEFPROCoutput
  183. 2.11
  184. 290 PRINTÉö Function value of ò;ex$
  185. 2.11
  186. ;ö = ò;exval
  187. 2.11
  188. 300 PRINTæk$;:dummy=GET
  189. 2.11
  190. 310 ENDPROC
  191. 2.11
  192. 320 :
  193. 2.11
  194. 330 DEFPROCexpression
  195. 2.11
  196. 340 LOCAL var$,var(),t%,i%
  197. 2.11
  198. 350 var$=öabcdefghijklmnopqrstuvw
  199. 2.11
  200. xyzö
  201. 2.11
  202. 360 DIM var(LEN(var$))
  203. 2.11
  204. 370 :
  205. 2.11
  206. 380 FOR t%=1 TO LEN(ex$)
  207. 2.11
  208. 390   i%=INSTR(var$,MID$(ex$,t%,1))
  209. 2.11
  210. 400   IF i%>0 THEN
  211. 2.11
  212. 410     var$=LEFT$(var$,i%-1)+ö$ò
  213. 2.11
  214. +MID$(var$,i%+1)
  215. 2.11
  216. 420     PRINTÉö Value of  ò;
  217. 2.11
  218. MID$(ex$,t%,1);ö     : ò;
  219. 2.11
  220. 430     INPUTöòvar(i%)
  221. 2.11
  222. 440     :
  223. 2.11
  224. 450     CASE i% OF
  225. 2.11
  226. 460       WHEN  1:a=var(i%)
  227. 2.11
  228. 470       WHEN  2:b=var(i%)
  229. 2.11
  230. 480       WHEN  3:c=var(i%)
  231. 2.11
  232. 490       WHEN  4:d=var(i%)
  233. 2.11
  234. 500       WHEN  5:e=var(i%)
  235. 2.11
  236. 510       WHEN  6:f=var(i%)
  237. 2.11
  238. 520       WHEN  7:g=var(i%)
  239. 2.11
  240. 530       WHEN  8:h=var(i%)
  241. 2.11
  242. 540       WHEN  9:i=var(i%)
  243. 2.11
  244. 550       WHEN 10:j=var(i%)
  245. 2.11
  246. 560       WHEN 11:k=var(i%)
  247. 2.11
  248. 570       WHEN 12:l=var(i%)
  249. 2.11
  250. 580       WHEN 13:m=var(i%)
  251. 2.11
  252. 590       WHEN 14:n=var(i%)
  253. 2.11
  254. 600       WHEN 15:o=var(i%)
  255. 2.11
  256. 610       WHEN 16:p=var(i%)
  257. 2.11
  258. 620       WHEN 17:q=var(i%)
  259. 2.11
  260. 630       WHEN 18:r=var(i%)
  261. 2.11
  262. 640       WHEN 19:s=var(i%)
  263. 2.11
  264. 650       WHEN 20:t=var(i%)
  265. 2.11
  266. 660       WHEN 21:u=var(i%)
  267. 2.11
  268. 670       WHEN 22:v=var(i%)
  269. 2.11
  270. 680       WHEN 23:w=var(i%)
  271. 2.11
  272. 690       WHEN 24:x=var(i%)
  273. 2.11
  274. 700       WHEN 25:y=var(i%)
  275. 2.11
  276. 710       WHEN 26:z=var(i%)
  277. 2.11
  278. 720     ENDCASE
  279. 2.11
  280. 730   ENDIF
  281. 2.11
  282. 740 NEXT
  283. 2.11
  284. 750 :
  285. 2.11
  286. 760 ENDPROC
  287. 2.11
  288.  
  289. 2.11
  290. Å   First Word Plus Ö I am sure that all users of First Word Plus have
  291. found it considerably enhanced by the use of Steve Hoareæs Interrupt
  292. Module (available on Shareware N╝6). The main use for this is in
  293. mounting new discs, formatting and creating directories. I have recently
  294. discovered that it can also be used for *EXECing files into the word
  295. processor. This can be very useful because First Word Plus treats the
  296. standard ASCII space character as a Éhardæ space. This means that if
  297. straight ASCII text is read into First Word Plus in the regular way it
  298. can not be formatted because each line is treated as an entire word. By
  299. using the interrupt module and *EXECing the file it is as if it were
  300. being typed in from the keyboard. Spaces between words are thus
  301. translated into Ésoftæ spaces so that the resulting document can be
  302. formatted in the usual way. Brian Cowan
  303. 2.11
  304. Å   Greek characters Ö (Gerald Fitton) For some time now I have been
  305. considering converting all my old Wordwise files to PipeDream files. 
  306. The thing that has been putting me off is that, since I teach (amongst
  307. other things) maths and statistics, I need to be able to print Greek
  308. letters such as CDSYabc defghijklmnopqrstuvwxy. It is relatively easy
  309. from Wordwise to define a new character on the Epson FX printer, but not
  310. so easy to include it in PipeDreamæs Printer On string.  I have got
  311. round this by running a BASIC program from within PipeDreamæs !Run file
  312. that sends the necessary codes for the Greek characters to the printer. 
  313. You can then have What-You-See-Is-What-You-Get Greek characters on
  314. screen by using the sequence <Alt>+E+C.  This is what you do:
  315. 2.11
  316. Modify the !Run file to include the command
  317. 2.11
  318. BASIC -quit ö<PipeDream$Dir>.
  319. 2.11
  320. Printers.Greekö
  321. 2.11
  322. My !Run file now looks like the one below.
  323. 2.11
  324. | > !PipeDream.!Run
  325. 2.11
  326. Set PipeDream$Dir <Obey$Dir>
  327. 2.11
  328. WimpSlot -min 160k -max 640k
  329. 2.11
  330. RMReInit InternationalKeyboard
  331. 2.11
  332. RMKill InternationalKeyboard
  333. 2.11
  334. BASIC -quit ö<PipeDream$Dir>.
  335. 2.11
  336. Printers.Greekö
  337. 2.11
  338. RMEnsure FPEmulator 2.60 RMLoad
  339. 2.11
  340.  <System$Path>Modules.FPEmulator
  341. 2.11
  342. Set Alias$@RunType_DDE Run
  343. 2.11
  344.  <PipeDream$Dir>.!Run %%*0
  345. 2.11
  346. Set File$Type_DDE PDream
  347. 2.11
  348. IconSprites <PipeDream$Dir>
  349. 2.11
  350. .!Sprites
  351. 2.11
  352. Load <Obey$Dir>.piped.pd 8000
  353. 2.11
  354. DIR <Obey$Dir>
  355. 2.11
  356. Echo <26>
  357. 2.11
  358. Pointer 0
  359. 2.11
  360. Go 8000 ; %*0
  361. 2.11
  362. DIR adfs::HardDisc4.$
  363. 2.11
  364. Include the new program ÉGreekæ in a suitable directory; I have chosen
  365. the ÉPrintersæ directory.
  366. 2.11
  367. 100 REM > <PipeDream$Dir>.
  368. 2.11
  369. Printers.Greek
  370. 2.11
  371. 150 :
  372. 2.11
  373. 160 *Alphabet Greek
  374. 2.11
  375. 180 VDU 2
  376. 2.11
  377. 200 RESTORE
  378. 2.11
  379. 210 REPEAT
  380. 2.11
  381. 220 READ byte%
  382. 2.11
  383. 230 IF byte%<>-1 THEN VDU 1,byte%
  384. 2.11
  385. 240 UNTIL byte%=-1
  386. 2.11
  387. 250 :
  388. 2.11
  389. 260 VDU 3
  390. 2.11
  391. 270 :
  392. 2.11
  393. 280 END
  394. 2.11
  395. 300 :
  396. 2.11
  397. 310 DATA 27,64
  398. 2.11
  399. 320 DATA 27,58,0,0,0
  400. 2.11
  401. 330 DATA 27,37,1,0
  402. 2.11
  403. 340 DATA 27,54
  404. 2.11
  405. 350 DATA 27,38,0,108,108
  406. 2.11
  407. 360 DATA 136,0,128,0,252,2,0,2,0,0,0,0
  408. 2.11
  409. 370 DATA 27,38,0,128,128
  410. 2.11
  411. 380 DATA 138,8,4,2,4,8,16,32,64,128
  412. 2.11
  413. ,0,0
  414. 2.11
  415. 390 DATA 27,38,0,176,176
  416. 2.11
  417. 400 DATA 168,0,0,64,160,0,160,64,0,0
  418. 2.11
  419. ,0,0
  420. 2.11
  421. 410 DATA 27,38,0,177,177
  422. 2.11
  423. 420 DATA 139,18,0,18,0,126,0,18,0,18
  424. 2.11
  425. ,0,0
  426. 2.11
  427. 430 DATA 27,38,0,195,196
  428. 2.11
  429. 440 DATA 137,130,124,130,0,128,0,128,
  430. 2.11
  431. 64,0,0,0
  432. 2.11
  433. 450 DATA 139,2,4,10,16,34,64,130,96,
  434. 2.11
  435. 26,4,2
  436. 2.11
  437. 460 DATA 27,38,0,211,211
  438. 2.11
  439. 470 DATA 139,130,0,198,0,170,0,146,0,
  440. 2.11
  441. 130,0,0
  442. 2.11
  443. 480 DATA 27,38,0,217,217
  444. 2.11
  445. 490 DATA 139,58,68,130,0,128,0,130,68
  446. 2.11
  447. ,58,0,0
  448. 2.11
  449. 500 DATA 27,38,0,225,249
  450. 2.11
  451. 510 DATA 138,28,34,0,34,20,8,20,32,2
  452. 2.11
  453. ,0,0
  454. 2.11
  455. 520 DATA 138,127,128,18,128,18,128,
  456. 2.11
  457. 114,12,0,0,0
  458. 2.11
  459. 530 DATA 11,64,0,64,32,16,11,4,8,16
  460. 2.11
  461. ,96,0
  462. 2.11
  463. 540 DATA 138,12,18,64,178,0,146,0,
  464. 2.11
  465. 146,76,0,0
  466. 2.11
  467. 550 DATA 137,8,20,8,34,8,34,8,34,0
  468. 2.11
  469. ,0,0
  470. 2.11
  471. 560 DATA 8,13,144,37,192,5,130,0,0,0
  472. 2.11
  473. ,0,0
  474. 2.11
  475. 570 DATA 10,64,60,64,0,64,0,64,63,0
  476. 2.11
  477. ,0,0
  478. 2.11
  479. 580 DATA 138,56,68,16,130,16,130,16,
  480. 2.11
  481. 68,56,0,0
  482. 2.11
  483. 590 DATA 71,0,0,124,0,4,0,0,0,0,0,0
  484. 2.11
  485. 600 DATA 138,62,0,8,0,20,0,34,0,0,0,0
  486. 2.11
  487. 610 DATA 136,130,68,40,16,8,4,2,0,0
  488. 2.11
  489. ,0,0
  490. 2.11
  491. 620 DATA 10,127,0,4,0,4,0,4,120,4,0,0
  492. 2.11
  493. 630 DATA 10,64,32,16,8,4,8,16,96,0
  494. 2.11
  495. ,0,0
  496. 2.11
  497. 640 DATA 9,128,40,212,0,149,0,149,2,0
  498. 2.11
  499. ,0,0
  500. 2.11
  501. 650 DATA 139,0,0,0,0,0,0,0,0,0,0,0
  502. 2.11
  503. 660 DATA 138,32,0,62,0,32,0,62,0,32
  504. 2.11
  505. ,0,0
  506. 2.11
  507. 670 DATA 9,63,64,0,68,0,68,56,0,0,0,0
  508. 2.11
  509. 680 DATA 139,0,0,0,0,0,0,0,0,0,0,0
  510. 2.11
  511. 690 DATA 139,28,34,0,34,0,34,28,32,0
  512. 2.11
  513. ,32,0
  514. 2.11
  515. 700 DATA 10,32,64,0,64,60,64,0,64,0
  516. 2.11
  517. ,0,0
  518. 2.11
  519. 710 DATA 9,64,56,4,0,4,0,120,0,0,0,0
  520. 2.11
  521. 720 DATA 10,56,68,0,68,187,68,0,68,56
  522. 2.11
  523. ,0,0
  524. 2.11
  525. 730 DATA 9,65,34,20,8,20,34,65,0,0
  526. 2.11
  527. ,0,0
  528. 2.11
  529. 740 DATA 11,120,4,0,4,251,4,0,4,120
  530. 2.11
  531. ,0,0
  532. 2.11
  533. 750 DATA 138,28,34,0,2,12,2,0,34,28
  534. 2.11
  535. ,0,0
  536. 2.11
  537. 760 DATA -1
  538. 2.11
  539.  
  540. 2.11
  541. Incidently, this shows how you can include a BASIC program within an
  542. Obey file and then come back to RUN the rest of the Obey file.
  543. 2.11
  544. You have to remember to remove ESC ö@ò from the Printer On string
  545. otherwise you will lose all the character definitions you have just
  546. downloaded! G L Fitton.
  547. 2.11
  548. This final section of hints and tips has been extracted from the Archive
  549. Bulletin Board Service (BBS) by Richard Forster.
  550. 2.11
  551. (N.B. There may be some over-lap with other H & T, but I donæt have time
  552. to edit it out Ö Iæm just off on my Holidays. Ed.)
  553. 2.11
  554. Å   First Word Plus Margins Ö It is possible to get First Word Plus to
  555. change its margins permanently, but it is not easy. It may also depend
  556. on your version of the software, and this method may not work on all
  557. versions. Make sure you try it on a backup copy!
  558. 2.11
  559. 10 wp%=OPENUP(öResources.1wp.1wpò)
  560. 2.11
  561. 20 margin%=8 : REM or whatever is
  562. 2.11
  563.  required
  564. 2.11
  565. 30 PTR#wp%=&2EF9C
  566. 2.11
  567. 40 BPUT#wp%,margin%
  568. 2.11
  569. 50 CLOSE#wp%
  570. 2.11
  571. Å   Taxan Multisync juddering Ö If you have an A400/1 or A3000 machine
  572. and are using it with a Taxan Multisync monitor, you may experience some
  573. juddering which can be overcome thus:
  574. 2.11
  575. A400/1: Fit a molex shunt to link 2. If you do not have a spare shunt,
  576. you can request one from Acorn Customer Services.
  577. 2.11
  578. A3000 : Take your machine to your local dealer. The modification is
  579. different from the A400/1 machines and you must not open your machine.
  580. 2.11
  581. Å   Using the Yes/No mouse icon Ö In order to use the Yes/No mouse icon,
  582. do:
  583. 2.11
  584. SWI öOS_Confirmò
  585. 2.11
  586. This changes the pointer shape, flushes the mouse buffer, waits until a
  587. key is pressed and then, on exit: R0 = (lowercased) character pressed, C
  588. flag is set if ESCAPE, Z flag set if character is ÉYæ
  589. 2.11
  590. Å   Saving Rom Sprites Ö To save rom sprites as a standard file, do:
  591. 2.11
  592. SYSöWimp_BaseOfSpritesò TO roms%
  593. 2.11
  594. SYSöOS_SpriteOpò,524,roms%,öfilenameò
  595. 2.11
  596. Save this as a BASIC program and double click it from the desktop.
  597. 2.11
  598. Å   Memory Re-allocation Ö You can re-allocate memory for spritesize,
  599. screensize etc. by loading a module called MEMALLOC. This can be found
  600. on Application Disc 2 in directory $.!Lander.
  601. 2.11
  602. Å   Hourglass  Ö The following SYS calls affect the hourglass. Note that
  603. the hourglass is nested, so if you have turned it on twice it must be
  604. turned off twice.
  605. 2.11
  606. SYSöHourGlass_Onò Ö Display Hourglass
  607. 2.11
  608. SYSöHourGlass_Offò Ö Remove Hourglass
  609. 2.11
  610. SYSöHourGlass_percentageò,number Ö Display Hourglass & percentage below.
  611. 2.11
  612. SYSöHourGlass_Smashò Ö Remove all hourglasses
  613. 2.11
  614. SYSöHourGlass-LEDsò,%AB Ö Where A is the top LED, B is the bottom LED
  615. 2.11
  616. SYSöHourGlass_Onò has a delay of 1/3 sec before actually appearing. To
  617. make the delay the value of r0 use:
  618. 2.11
  619. SYSöHourGlass_Startò
  620. 2.11
  621. Å   Tiny directories Ö The adjust button on a tiny directory opens the
  622. application and removes that tiny directory.
  623. 2.11
  624. Å   RISC-OS Speedup Ö The following calls speed up the machine ROMs from
  625. 4Mhz to 8Mhz. Try them at your own risk. (Although under Arthur they
  626. caused crashes, they seem to work OK under RISC-OS) The first switches
  627. to higher speed, the second resets it:
  628. 2.11
  629. SYSöOS_UpdateMEMCò,64,64
  630. 2.11
  631. SYSöOS_UpdateMEMCò,,64
  632. 2.11
  633. Å   Terramex Cheat Ö For infinite lives, when you first load the game,
  634. type in öSUBJECTTOCHANGEò on the loading screen.
  635. 2.11
  636. Å   RISC-OS Bugs Ö Yes, already folk have found begun to find bugs in
  637. RISC-OS.
  638. 2.11
  639. 1) Module files which show up for *cat as modules but are dated 2:27
  640. 1901 do not get a module icon in a filer window Ö this is a property of
  641. unstamped files from AASM/OBJASM.
  642. 2.11
  643. 2) Edit does not work properly in modes 2,4 or 5. (But who would want to
  644. do so?! Ed.)
  645. 2.11
  646. 3) You can drag a directory into itself creating an copy within a copy
  647. until disc space runs out. (Could that be the answer to the Élibrary
  648. virusæ in the Help!!! section? Ed.)
  649. 2.11
  650. 4) Resizing the interactive help window can cause the mouse pointer to
  651. move autonomously up the screen. Try it: Hold button down and resize it,
  652. keep holding, and it will go for a certain window size always.
  653. 2.11
  654. Å   MaxGammon under RISC-OS Ö If you have a copy of this game, the
  655. author has a version which works in the desktop. Send your original disk
  656. and a S.A.E. to 11 Maryland, Barkham, Wokingham, Berkshire RG11 4PB and
  657. you can have an upgrade to the newer version.
  658. 2.11
  659. Å   Last line in program  Ö To find the last line in a BASIC program
  660. which is in memory, hold down <ctrl>+<shift> and then press <escape>
  661. twice.
  662. 2.11
  663. Å   Hearsay Problems Ö It is still possible to select a route from the
  664. screen when in a scrolling terminal, but it must be a Élongæ click. A
  665. short click tries to home the cursor to where the pointer is by sending
  666. a string of control codes. The answer is to hold the button down a bit
  667. longer or use the keyboard.
  668. 2.11
  669. If you have problems with Xmodem make sure that Vasscomm is turned off.
  670. 2.11
  671. Å   Filer_OpenDir Ö When using Filer_OpenDir, it is important to get the
  672. full pathname correct. For instance, if your hard disc has the name
  673. ÉFredæ and you want to open the directory $.Foo, you should use:
  674. 2.11
  675. *Filer_OpenDir adfs::Fred.$.Foo
  676. 2.11
  677. and not something like:
  678. 2.11
  679. *File_OpenDir adfs::4.Foo
  680. 2.11
  681. The reason is that when you click on the drive icon, the Filer checks
  682. the list of open windows to see if the requested pathname is already
  683. visible. Unfortunately it is not too intelligent about this, and if the
  684. names do not match exactly, the Filer will open another window. This
  685. will have the side effect that when Dismount is used only windows with
  686. the first pathname will be closed.
  687. 2.11
  688. Å   Legal Text Scaling for Multisyncs Ö Richard Averillæs hint last
  689. month (Archive 2.10 pp 19/20) to help rescale text in multisync modes
  690. could be done more legally using:
  691. 2.11
  692. VDU 23,17,7,flags,x;y;0,0
  693. 2.11
  694. flags => bit 0 = not implemented
  695. 2.11
  696. bit 1 = 1 => set size of VDU 5 characters
  697. 2.11
  698. bit 2 = 1 => set size of VDU 5 spacing
  699. 2.11
  700.  10 REM > CharSize    Demonstration
  701. 2.11
  702.  of changing character size
  703. 2.11
  704.  20 REM By Martin Simmons 10/07/89
  705. 2.11
  706.  30
  707. 2.11
  708.  40 MODE 12
  709. 2.11
  710.  50
  711. 2.11
  712.  60 VDU 5:CLS:PRINTÉæ
  713. 2.11
  714.  70 GCOL 1
  715. 2.11
  716.  80 PROCprint(8,16,öDouble heightò)
  717. 2.11
  718.  90 PRINT
  719. 2.11
  720. 100 GCOL 2
  721. 2.11
  722. 110 PROCprint(16,8,öDouble widthò)
  723. 2.11
  724. 120 PRINT
  725. 2.11
  726. 130 GCOL 3
  727. 2.11
  728. 140 PROCprint(16,16,öDouble sizeò)
  729. 2.11
  730. 150 PRINT
  731. 2.11
  732. 160 GCOL 5
  733. 2.11
  734. 170 PROCprint2(8,8,16,16,öDouble
  735. 2.11
  736.  spacedö)
  737. 2.11
  738. 180 GCOL 7
  739. 2.11
  740. 190 PROCprint(8,4,öMangled half
  741. 2.11
  742.  heightö)
  743. 2.11
  744. 200 PRINTÉæ
  745. 2.11
  746. 210 GCOL 6
  747. 2.11
  748. 220 PROCprint(120,120,öBIGò)
  749. 2.11
  750. 230 VDU 4
  751. 2.11
  752. 240 END
  753. 2.11
  754. 250
  755. 2.11
  756. 260 DEF PROCprint(X%,Y%,text$)
  757. 2.11
  758. 270 VDU 23,17,7,6,X%;Y%;0,0
  759. 2.11
  760. 280 PRINT text$
  761. 2.11
  762. 290 ENDPROC
  763. 2.11
  764. 300
  765. 2.11
  766. 310 DEF PROCprint2(X%,Y%,sx%,sy%
  767. 2.11
  768. ,text$)
  769. 2.11
  770. 320 VDU 23,17,7,2,X%;Y%;0,0
  771. 2.11
  772. 330 VDU 23,17,7,4,sx%;sy%;0,0
  773. 2.11
  774. 340 PRINT text$
  775. 2.11
  776. 350 ENDPROC
  777. 2.11
  778.  
  779. 2.11
  780. Å   ARM assembler T option Ö Martyn Lovell says that although the
  781. assembler sees the T option for the LDR mnemonic the same as the !
  782. option (Archive 2.10 p 9), it is not used in the same way. The ! option
  783. should be used to force write back with pre-indexed addressing while the
  784. T option should be used with post-indexed addressing to cause the -TRAN
  785. pin on the ARM to go low for the duration of the data transfer. This is
  786. used by an OS in non-user modes to allow the OS to generate a user-mode
  787. address.
  788. 2.11
  789. Å   ALTernative keys Ö The RISC-OS Inter-nationalKeyboard module
  790. provides the facility for typing control characters by holding down
  791. <alt> and typing the number on the numeric keypad. In addition, the
  792. following keys produce symbols when pressed with <alt> held down:
  793. 2.11
  794. 1 gives 1   2 gives 2   3 gives 3   ~ gives ┬
  795. 2.11
  796. 9 gives ▒   0 gives √   , gives x    . gives ╓
  797. 2.11
  798. R gives ¿   Y gives ┤   S gives ñ   Z gives ╟
  799. 2.11
  800. X gives ╚   C gives ó   M gives ╡  
  801. 2.11
  802. shifted C gives ⌐
  803. 2.11
  804. Other keys return nothing. The old Arthur effect of using
  805. <ctrl><shift><alt> to add 128 to the code can be produced by RMKILLing
  806. this module. Doing this will also allow the use of <alt> plus a cursor
  807. key in the BASIC Editor which does not work with this module installed.
  808. 2.11
  809. Å   Colour cursor for the BASIC Editor Ö Here is a little program which
  810. will alter the ArmBE module so that you can change the colour of the
  811. cursor.
  812. 2.11
  813.  10 REM > ColourEdit Make a colour
  814. 2.11
  815.  cursor for the BASIC Editor
  816. 2.11
  817.  20 REM By Martin Simmons 11/07/89
  818. 2.11
  819.  30 REM I use yellow background,
  820. 2.11
  821.  blue foreground, red cursor
  822. 2.11
  823.  (1=6 EOR 7)
  824. 2.11
  825.  40
  826. 2.11
  827.  50 colour%=6  :REM **** CHANGE
  828. 2.11
  829.  THIS LINE TO CHANGE THE
  830. 2.11
  831.  COLOUR (EOR 7) ****
  832. 2.11
  833.  60 DIM buf% &10000
  834. 2.11
  835.  70 OSCLI öLoad :App2.Modules.
  836. 2.11
  837. BasicEdit ö+STR$~buf%
  838. 2.11
  839.  80 P%=buf%+&81E4
  840. 2.11
  841.  90 [ SWI  &100+colour%   ;Change
  842. 2.11
  843.  background palette
  844. 2.11
  845. 100 ]
  846. 2.11
  847. 110 zi%=buf%+&8320:zi%+=8+4*
  848. 2.11
  849. ((!zi%<<8)>>8)
  850. 2.11
  851. 120 wind%=buf%+&8310:wind%+=8+4*
  852. 2.11
  853. ((!wind%<<8)>>8)
  854. 2.11
  855. 130 P%=buf%+&8310
  856. 2.11
  857. 140 [ SWI  öOS_WriteSò
  858. 2.11
  859. 150   EQUB 17 : EQUB 128+colour%
  860. 2.11
  861.     ;Set background colour
  862. 2.11
  863. 160   EQUB 12  ;Clear screen
  864. 2.11
  865. 170   EQUB 23 : EQUB 16 : EQUB 1   
  866. 2.11
  867. ;Set cursor movement
  868. 2.11
  869. 180   EQUS STRING$(4-(P% AND 3)
  870. 2.11
  871. ,CHR$0)
  872. 2.11
  873. 190   BL zi%
  874. 2.11
  875. 200   BL wind%
  876. 2.11
  877. 210 ]
  878. 2.11
  879. 220 INPUTÉöEnter new file name for
  880. 2.11
  881.  the editor: öfile$
  882. 2.11
  883. 230 OSCLI öSave ò+file$+ö ò+STR$
  884. 2.11
  885. ~buf%+ö +94B4ò
  886. 2.11
  887. 240 OSCLI öSetType ò+file$+ö FFAò
  888. 2.11
  889.  
  890. 2.11
  891. Å   Wild card copy for RISC-OS Ö The destination parameter of the *Copy
  892. command now has greater freedom regarding wild cards i.e. wildcards in
  893. the destination can be used even though they were not used for the
  894. source
  895. 2.11
  896.  e.g. *COPY :0.Text :1.* is now valid.
  897. 2.11
  898. Å   RISC-OS disc names Ö It is possible to set a system variable which
  899. will behave like a disc name. If you *Set <discname>$Path <filepath> you
  900. can then access you files by :<discname>.<filename>. For example:
  901. 2.11
  902. *Set W App1:$.
  903. 2.11
  904. *Run W:!Edit
  905. 2.11
  906. You can even define several paths, just like File$Path and Run$Path:
  907. 2.11
  908. *Set W App1:$.,App2:$.
  909. 2.11
  910. *RMLoad W:Modules.BasicEdit
  911. 2.11
  912. *Run W:!Edit
  913. 2.11
  914. Å   Memory Usage Ö Gerald Fitton Ö Of course, the Ébestæ machine has
  915. both hard disc and 4Mb of memory, but some hard disc machines have less
  916. memory. If you have the Ébestæ then you will probably put all the
  917. !(application) directories that you use in your root ($) directory for
  918. instant access. When you click on the :4 icon in the icon bar, all your
  919. application !Boot files will be RUN and memory will be allocated to each
  920. application (so that it is instantly available). This is true even when
  921. the applications are not installed on the icon bar. If you have less
  922. memory, say 1Mb, then you may find that your dormant applications are
  923. using up too much memory for some of the more sophisticated appli
  924. cations. The solution is to put your applications not in the root
  925. directory but in a (non-!) sub-directory. For example, !Patience can be
  926. put together with !Zarch in a games directory, where Games is in the
  927. root directory. This way, only when you open the Games directory (by
  928. double clicking on it) will you use up memory on the dormant appli
  929. cations !Patience and !Zarch.
  930. 2.11
  931. Å   1st Mail solution Ö When using 1st Mail in RISC-OS, the printer
  932. options are hidden underneath another window. Mr Burrows has solved the
  933. problem by altering the template file:
  934. 2.11
  935. *Load $.Resources.1wp.
  936. 2.11
  937. 1ml_templa 9000
  938. 2.11
  939. !&9AA8=155
  940. 2.11
  941. !&9AB0=1023
  942. 2.11
  943. *Save $.Resources.1wp.
  944. 2.11
  945. 1ml_templa 9000+AEA
  946. 2.11
  947. *SetType $.Resources.1wp
  948. 2.11
  949. .1ml_templa FFF
  950. 2.11
  951. Å   RISC-OS Hints and Tips Ö S C Costin Ö When using !PrinterDM on the
  952. Desktop to print a text file, if the printer and Archimedes are set up
  953. where there are no ignore characters configured, i.e. can be checked as
  954. follows:
  955. 2.11
  956. F12    ;Press function key 12 from desktop
  957. 2.11
  958. *status ignore   ;Enter command
  959. 2.11
  960. No ignore   ;Returned after entering command
  961. 2.11
  962. The problem is that the line feed is suppressed and therefore over-
  963. printing occurs. This is easily overcome by clicking on the !PrinterDM
  964. icon on the icon bar, which produces a window, and selecting CR or LF
  965. conversion.
  966. 2.11
  967. A more permanent solution is to edit the file PrData. To do this hold
  968. shift key while clicking on the application directory !PrinterDM, then
  969. drag PrData icon over Edit icon on the icon bar and release the mouse
  970. button. At the end of the printer driver data change line: from 0 to 1
  971. i.e. change line:
  972. 2.11
  973. 0;0/1 1=>convert CR or LF to CR,LF
  974. 2.11
  975. to:
  976. 2.11
  977. 1;0/1 1=>convert CR or LF to CR,LF
  978. 2.11
  979. Å   Pipedream conversion to ADFS E type floppy disc by S C Costin
  980. 2.11
  981. 1)   Format new disc using the new E format.
  982. 2.11
  983. 2)   Name the new disc NewPd.
  984. 2.11
  985. 3)   Backup your original copy to the disc NewPd, using *COPY to retain
  986. E format.
  987. 2.11
  988. 4)   Copy the !PipeDream application from the support disc to the root
  989. directory of disc NewPd.
  990. 2.11
  991. 5)   Copy the Floating Point Emulator module from directory
  992. !System.Modules on Application Disc 1 into directory $.!PipeDream on
  993. disc NewPd.
  994. 2.11
  995. 6)   Delete $.!boot
  996. 2.11
  997. 7)   Delete $.piped.fpe2
  998. 2.11
  999. 8)   Delete $.rs423drive
  1000. 2.11
  1001. 9)   Add the following obey file called $.!boot
  1002. 2.11
  1003. | > $.!boot
  1004. 2.11
  1005. *quit
  1006. 2.11
  1007. RUN $.!pipedream.!run
  1008. 2.11
  1009. 10)   Leave the !PipeDream.!boot file as copied from the support disc.
  1010. 2.11
  1011. | > !PipeDream.!Boot
  1012. 2.11
  1013. Set PipeDream$Dir <Obey$Dir>
  1014. 2.11
  1015. Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
  1016. 2.11
  1017. Set File$Type_DDE PDream
  1018. 2.11
  1019. IconSprites <PipeDream$Dir>
  1020. 2.11
  1021. .!Sprites
  1022. 2.11
  1023. 11)   If mouse cursor control is required insert lines 7 & 8 in the !Run
  1024. Obey file as follows:
  1025. 2.11
  1026. | > !PipeDream.!Run
  1027. 2.11
  1028. Set PipeDream$Dir <Obey$Dir>
  1029. 2.11
  1030. WimpSlot -min 450k
  1031. 2.11
  1032. ||RMReInit InternationalKeyboard
  1033. 2.11
  1034. RMKill InternationalKeyboard
  1035. 2.11
  1036. RMEnsure FPEmulator 2.60
  1037. 2.11
  1038. RMLoad <Obey$Dir>.FPEmulator
  1039. 2.11
  1040. $.piped.cursorrm
  1041. 2.11
  1042. mousecursor on 13 &c5 131
  1043. 2.11
  1044. Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
  1045. 2.11
  1046. Set File$Type_DDE PDream
  1047. 2.11
  1048. IconSprites <PipeDream$Dir>
  1049. 2.11
  1050. .!Sprites
  1051. 2.11
  1052. Load $.Library.pd 8000
  1053. 2.11
  1054. Echo <26>
  1055. 2.11
  1056. Pointer 0
  1057. 2.11
  1058. Go 8000 ; %*0
  1059. 2.11
  1060. Å   Update for Artisan and ProArtisan Ö Clares have now produced an
  1061. application which will up-date your Artisan and ProArtisan discs for
  1062. RISC-OS. It has been put on both this monthæs and last monthæs program
  1063. discs. Many thanks to Duncan Burbridge, Kimba, Australia (age 12) who
  1064. also sent us information on updating Artisan for RISC-OS.
  1065. 2.11
  1066. Å   Not enough screen memory? Ö If a program expects to run in a
  1067. specific screen mode and not enough screen memory is available, it will
  1068. usually report a ÉBad Modeæ error when run from the desktop, as the
  1069. screen memory canæt be expanded dynamically once the application has
  1070. started. This can be fixed by either dragging the screen memory bar in
  1071. the task window, or by entering the appro-priate mode first.  A much
  1072. more elegant way is to add the following line to the Obey file that
  1073. starts the program:  Echo <22><n>  Where <n> is the mode. This ensures
  1074. that the screen memory is allocated before the application starts and
  1075. should appear before the *WimpSlot command.
  1076. 2.11
  1077. Å   Uncluttered cataloging Ö RISC-OS has a neat way of searching a disc
  1078. without cluttering the screen. Use <adjust> to open a directory and it
  1079. closes the one you were in, leaving only the new dir-ectory on the
  1080. screen. To move back up the tree, click <adjust> on the close icon, and
  1081. the next directory up will appear, closing the current directory (unless
  1082. you are in the root directory, of course!).
  1083. 2.11
  1084. Å   Bye bye hard disk! Ö The RAM disc is fantastic but not much use on 1
  1085. Mbyte machines. Also, note that when RAMFS is selected *bye does not
  1086. park the head of the Winchester Ö so beware!!!
  1087. 2.11
  1088.