home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1997 / ARCHIVE_97.iso / text / hints / vol_01 / issue_07 < prev    next >
Text File  |  1995-02-16  |  18KB  |  485 lines

  1. Å   GETfile and PUTfile on the MS-DOS emulator are difficult to use if
  2. you only have a single drive. However, if you configure a RAM disc with
  3. MS-DOS you can then copy MS-DOS files onto it and then form the ADFS
  4. files on the physical drive and vice versa to take ADFS files in to the
  5. MS-DOS file system.
  6. 1.7
  7. Å   Programs that work under the PC-emulator. Iæve had lots of informa
  8. tion about MS-DOS software that does work, but has anyone found any
  9. software that does NOT work under the PC-emulator?
  10. 1.7
  11. Å   With version 1.09 of the PC emulator, if you do the following╔
  12. 1.7
  13. *LOAD PC.Emulate 10000
  14. 1.7
  15. ?&137C8=0
  16. 1.7
  17. *SAVE PC.Emulate2 10000
  18. 1.7
  19. you will find that the memory isnæt cleared when you press the reset
  20. button.
  21. 1.7
  22. Å   One good book to help new MS-DOSæers (sorry!) is öQuick Reference
  23. Guide to MS-DOSò by Van Wolverton, published by Microsoft Press,
  24. obtainable via Watford Electronics at ú3.95. (ISBN 1-55615-025-3)
  25. 1.7
  26. Å   From various reports, it seems that CHKDSK does work properly though
  27. it has to be used with care. It can be used to repair the File Allo
  28. cation Table (FAT) and repair errors in directories. Files are not
  29. necessarily stored contiguously on an MS-DOS disc, so if part of a file
  30. is lost then CHKDSK can be used to convert lost chains to files (i.e.
  31. write to a disc directory). Generally, CHKDSK by itself is safe. CHKDSK
  32. *.* /V is usually safe, but CHKDSK *.* /F is dangerous if you donæt know
  33. what you are doing!
  34. 1.7
  35. Å   One reader says he has solved the problem of öTo linefeed or not to
  36. linefeed╔ò by adding a single pole switch in parallel with the contact
  37. on the printer dip-switch that sets the auto-linefeed on and off,
  38. leaving the dip-switch in the open position, of course. Donæt forget
  39. though that most printers only look at the dip-switch settings at power-
  40. up, though some do so when you do a software reset with 27,64.
  41. 1.7
  42. Å   With Arc-Writer, to get it not to double space on a Panasonic
  43. printer, use the AW_PCedit program, select the RX80D and change the
  44. number of steps per 100 units vertically from 21600 to 600.
  45. 1.7
  46. Å   View 3 works under the emulator if you poke locations A8A1, A8A2 and
  47. A8A3 with &EA.
  48. 1.7
  49. Å   Acornsoft ISO Pascal, Comal, Prolog and LISP all work under the
  50. emulator says one reader.
  51. 1.7
  52. Å   Share Analyser (Synergy Software) works perfectly under the 6502
  53. emulator.
  54. 1.7
  55. Å   Four floppies on 1.2 OS. If you try *con. floppies 4, you will find
  56. that it tells you the number is too big, but if you use *FX162,135,4 and
  57. do a <ctrl-break>, you will finds that *STATUS tells you that you have
  58. four floppies.
  59. 1.7
  60. Å   Booting other drives. In contrast with the BBC micros, you can, on
  61. Archimedes, *MOUNT 1 and then <shift-break> to boot the disc in drive 1.
  62. 1.7
  63. Å   WIMP Manager. Be aware that the first time Wimp_poll is called, it
  64. clears the screen.
  65. 1.7
  66. Å   Fitting the backplane: It is an awkward job to fit the backplane
  67. because two plastic spacers are used into which self-tapping screws have
  68. to be inserted. This is best done in a vice to avoid stripping screw
  69. heads and/or sticking screwdrivers through your fingers!
  70. 1.7
  71. Å   ÉUnknown IRQ at &00000000æ. If you get this error message (and
  72. possibly find that the machine hangs up on you) check whether your RS423
  73. lead is properly screened, if at all. If it is not screened, it seems to
  74. be able to pick up interference (remember the micro-wave problems
  75. mentioned in issue 5, page 8?) and this generates spurious interrupts.
  76. 1.7
  77. Å   More ideas on the black art of RS423 communication! Here is one
  78. readeræs recipe for succesful RS423 transfer, though it may not work for
  79. everyone╔ Try using the Éfixæ module (Archive 1.6 program disc) with
  80. pins 1,4,8 and 9 linked together and 6 (DSR) and 7 (RTS) as the control
  81. lines.
  82. 1.7
  83. Å   Running more than one BASIC program. If you have a BASIC program you
  84. want to run while you are working on another program in memory, you can
  85. program a couple of keys with:
  86. 1.7
  87. *KEY 4 P%=PAGE : PAGE=&30000
  88. 1.7
  89. : CHAIN ötestprogò|M
  90. 1.7
  91. *KEY 5 PAGE=P% : OLD|M
  92. 1.7
  93. Å   System Delta Plus: If you have trouble loading newly formed
  94. databases and get öNo Roomò when you know there is plenty of room, add a
  95. .D to the filename when loading, i.e. type in the filename as, say,
  96. öRECORDS.Dò.
  97. 1.7
  98. Å   Inter-Word: If you have come from the desktop, you will find that
  99. the tab key does not work. This can be corrected with *FX219,9.
  100. 1.7
  101. If you want the ú sign, you will find it is produced by the ` key (far
  102. top left key).
  103. 1.7
  104. If you want the ` sign╔ tough! (The ú sign duplicates the öinsert rulerò
  105. function!)
  106. 1.7
  107. Å   Stuck in a black hole? If you find yourself typing in black on
  108. black, try typing MODE MODE<return>. It allows you to type again, but
  109. maintains the mode you were in.
  110. 1.7
  111. Å   SystemDevs module. The redirection commands, some of which we said
  112. didnæt seem to work, are sensitive to spacing. The correct forms are as
  113. follows where the spaces are represented by bullets (Å):
  114. 1.7
  115. *CATÅ{Å>ÅinfoÅ }
  116. 1.7
  117. Spools catalogue to file öinfoò
  118. 1.7
  119. *CATÅ{Å>>ÅinfoÅ }
  120. 1.7
  121. Adds catalogue to file öinfoò
  122. 1.7
  123. *BASICÅ{Å<ÅdataÅ }ÅPROG
  124. 1.7
  125. Runs öPROGò and uses information in file ödataò for input.
  126. 1.7
  127. Å   Using the Acorn ROM Podule: No links are available for the RAM
  128. sockets, although you can configure the sockets by software for 8k, 32k
  129. or 128k RAM chips. Using HM6264LP-15 ram in the sockets and configuring
  130. them as 8k does not immediately work. However if you configure them as
  131. 32k chip and apply an offset of &2000 when loading i.e.:
  132. 1.7
  133. *RMLoad <podule number>
  134. 1.7
  135. <socket> <filename> 2000
  136. 1.7
  137. then your data will load correctly. This is because the Chip Select (CS)
  138. on the 8k chips is on the pin Address 13 (pin 26) on the 32k and 128k.
  139. This causes the 8k chip to be mapped into 8-16k and 24-32k hence the
  140. offset of 8k. The inverted CS on pin 20 is common to all three devices.
  141. (Without configuring them as 32k, the operating system reports that the
  142. device is not big enough for an 8k offset.)
  143. 1.7
  144. Å   Concerning Acornsoft C and TWIN: ÉConcurrencyæ (keeping text in one
  145. window and compiling a program in the other) does not work. The compiler
  146. (v1.5A) has a bug in it that prevents it from working. Acorn said that
  147. it used to work OK on the pre-release version! However, compiler output
  148. can be sent to a file called tmp.temp if the -spool option is used.
  149. 1.7
  150. It may be necessary to relocate TWIN in order to compile programs. My
  151. version of TWIN loaded at &60000 but needed to be relocated to &80000 to
  152. allow the compiler enough space. (See below.) If the compiler crashes,
  153. try increasing the SystemSize using *configure.
  154. 1.7
  155. The two compiler messages, ÉFatal I/O erroræ and ÉBinary output erroræ,
  156. simply mean that your disc is full!
  157. 1.7
  158. Å   More about TWIN. Twin is an editor which seems to have one or two
  159. hidden features; firstly it is a relocatable program, and consequently
  160. can be loaded anywhere where RAM exists (barring overwriting OS
  161. workspace etc.). I have created a version which I call LoTwin which
  162. loads at &10000; this leaves space for BASIC programs only 256 bytes
  163. fewer than are available on a BBC Master using Shadow RAM, and yet it
  164. allows me considerably more work space than the standard Twin.
  165. 1.7
  166. To create a version of Twin called ÉMYTWINæ which loads and runs other
  167. than at the Énormalæ address, perform the following actions:
  168. 1.7
  169. *DIR <diræry_containing _Twin>
  170. 1.7
  171. *LOAD TWIN <new_load_address>
  172. 1.7
  173. *EX
  174. 1.7
  175. *SAVE MYTWIN <new_load_
  176. 1.7
  177. address> +<size>
  178. 1.7
  179. <size> is obtained from the 3rd column of hex data after the É*EXæ.
  180. 1.7
  181. Then, to invoke the new version, type
  182. 1.7
  183. *MYTWIN
  184. 1.7
  185. and it will run. Pressing <shift-f5> followed by <T> after entering
  186. MYTWIN will show the load address on the top line immediately to the
  187. left of the time.I have yet to see mentioned in print the Éwarm startæ
  188. for TWIN. If something nasty happens and your Archimedes locks up just
  189. as you have spent a couple of hours typing in something using TWIN, and
  190. you have no option but to press <ctrl-break>, or even <ctrl-reset>, do
  191. not despair, simply type:
  192. 1.7
  193. *GO <twin_start_address> -WARM
  194. 1.7
  195. and you will find yourself back in TWIN exactly as you were when the
  196. Énastyæ happened, barring any corruption caused by the Énastyæ. Donæt
  197. forget the É-æ preceding the öWARMæ! I have found myself in this
  198. position after a momentary power cut, and although the warm start did
  199. not restore TWIN as a fully functional editor (due to corruption), it
  200. restored Twinæs ability to save text, so I saved what I had done, and
  201. was then able to reload Twin, and then reload my text.
  202. 1.7
  203. Å   Iso Pascal: Be warned before you buy Iso Pascal, it has NO support
  204. for Arthur Ö otherwise, says one reader, it is an excellent implementa
  205. tion. Also (in common with C) it comes with a very thin manual, so a
  206. copy of TWIN and a book about the language (see the mini-review on page
  207. 25) will be needed for most people.
  208. 1.7
  209. (More information  about other languages was sent in, but this was all I
  210. could digest with my limited knowledge of languages other than BASIC.
  211. Would anyone be prepared to receive all the öother languagesò informa
  212. tion and knock it up into a special section each month?)
  213. 1.7
  214. Using the Computer Concepts ROM Podule
  215. 1.7
  216. How many times have you had to press <ctrl-break> and muttered under
  217. your breath because youæve lost your function key definitions? That need
  218. never happen again if you have Computer Conceptsæs ROM podule with some
  219. battery-backed RAM on it. All you do is configure the system to start up
  220. in the RFS instead of the ADFS and also configure it to auto-boot. Then
  221. in the RFS, you put a boot file something like:
  222. 1.7
  223. REM > RFS:!BOOT
  224. 1.7
  225. *SET Run$Path ,ADFS:$.,RFS:$.%.
  226. 1.7
  227. *ADFS
  228. 1.7
  229. *FX255,8
  230. 1.7
  231. PRINT öAcorn ADFSòÉ
  232. 1.7
  233. *KEY 0 These are
  234. 1.7
  235. *KEY 1 my favourite
  236. 1.7
  237. *KEY 2 key definitions
  238. 1.7
  239. *SET ALIAS$> Cat
  240. 1.7
  241. *SET ALIAS$? HELP etc
  242. 1.7
  243. *BASIC
  244. 1.7
  245. (You will notice that the Run$Path uses É$æ instead of É%æ as stated on
  246. page 28 of the Computer Concepts manual.)
  247. 1.7
  248. Å   To get the Inter series software to boot up with a simple call such
  249. as *ISHEET, copy 65Arthur into the RAM area using *COPY
  250. ADFS:Modules.65Arthur RFS:65Arthur and, providing you have set up the
  251. Run$Path as above, *ISHEET, *IWORD and *ICHART will automatically load
  252. the emulator and then the appropriate software.
  253. 1.7
  254. Å   Installing Wordwise Plus. If you copy the Archimedes version of
  255. Wordwise Plus from Computer Conceptsæs disc (filename öWW+ò) into the
  256. RFS calling it, say, WWIMAGE, you can modify the BASIC program öISHEETò
  257. and save it as öWW+ò so that, as above, you can just type *WW+ and it
  258. will auto-load the emulator and run the software. The modifications are
  259. to change the references to öISIMAGEò at lines 130 and 270 into
  260. öWWIMAGEò.
  261. 1.7
  262. Å   If you want to modify any of the programs in a ROM, all you do is
  263. either LOAD it, edit it and SAVE it or, if you have the modified version
  264. on disc, just *COPY it. If you tell it to SAVE a file with a name that
  265. exists in ROM it gives the ram version precedence over the ROM version.
  266. 1.7
  267. To find out whether a particular file is in ROM or RAM, use the *INFO
  268. <filename> command. If it comes up with a ö*ò before the final figure of
  269. the information, the file is in the RAM area. To get the ROM version
  270. back, you either have to do a <ctrl-break> or type *RMREINIT RFS
  271. <return> because *delete filename removes all trace of it so that even
  272. the ROM version is inaccessible.
  273. 1.7
  274. Thanks to Adrian Look for all the following hints and tips.
  275. 1.7
  276. Å   X-SWIæs. When using SWIæs if you put an X before the name then the
  277. SYS call from BASIC will not generate an error. For example:
  278. 1.7
  279. SYS öXOS_CLIò,block
  280. 1.7
  281. Å   Modes & drawing speed. The VIDC receives the video data down the
  282. data bus lines of the ARM processor. While this is happening the RISC
  283. chip cannot perform any processing. This means that the screen modes
  284. using higher memory will be slower. Try timing a FOR-NEXT loop of
  285. 1,000,000!  So, if speed is of the essence, it may be better to go into
  286. mode 0, do the calculations and save them in an array and then go into
  287. mode whatever to plot the results.
  288. 1.7
  289. However, there is a compensating factor. The lower memory modes use one
  290. byte to represent several pixels, thus addressing pixels requires extra
  291. calculation Ö whereas the higher memory modes use only one byte to
  292. represent a pixel so addressing pixels is much quicker. This means that
  293. graphics will be quicker in higher modes.
  294. 1.7
  295. Mode   F/N loop   Draw   Mem.   Colours
  296. 1.7
  297.       (secs)   (secs)   (k)
  298. 1.7
  299.    0   14.9   51   20   2
  300. 1.7
  301.    1   14.9   38   20   4
  302. 1.7
  303.    2   15.6   34   40   16
  304. 1.7
  305.    3   15.6    Ö   40   Text
  306. 1.7
  307.    4   14.9   38   20   2
  308. 1.7
  309.    5   14.9   32   20   4
  310. 1.7
  311.    6   14.9    Ö   20   Text
  312. 1.7
  313.    7   15.6    Ö   80   T-Text
  314. 1.7
  315.    8   15.6   54   40   4
  316. 1.7
  317.    9   15.6   40   40   16
  318. 1.7
  319.    10   17.1   39   80   256
  320. 1.7
  321.    11   15.6    Ö   40   Text
  322. 1.7
  323.    12   17.1   61   80   16
  324. 1.7
  325.    13   17.1   45   80   256
  326. 1.7
  327.    14   17.1    Ö   80   Text
  328. 1.7
  329.    15   21.3   79   160   256
  330. 1.7
  331.    16   19.6    Ö   132   Text
  332. 1.7
  333.    17   19.5    Ö   132   Text
  334. 1.7
  335.    18   15.4   70   40   2
  336. 1.7
  337.    19   16.9   77   80   4
  338. 1.7
  339.    20   21.0   98   160   16
  340. 1.7
  341. Å   OS_Pretty Print. Have you ever wondered how the operating system
  342. manages to display all its messages without any of the words getting
  343. split at the end of a screen line, no matter what mode it is in? Well,
  344. the answer is ÉOS_ PrettyPrintæ.
  345. 1.7
  346. If you print all your strings using this call it will stop any words
  347. going over the end-of-line boundary. This call recognises the following
  348. control characters in a special way:
  349. 1.7
  350. Ö CR (CHR$(13)) causes not just a carriage return but also a newline.
  351. 1.7
  352. Ö TAB (CHR$(9)) causes a tabulation to the next multiple of eight
  353. columns.
  354. 1.7
  355. Ö CHR$(31) is a Épad characteræ, that is, the procedure will print a
  356. space when this code occurs but it will not break the string up at this
  357. point.
  358. 1.7
  359. Example:
  360. 1.7
  361. A$=öHello my name is...ò
  362. 1.7
  363. SYS öOS_PrettyPrintò,A$
  364. 1.7
  365. Å   The QUICK option When you use the (Q)uick option in the *COPY and
  366. *BACKUP commands, the OS will use all available memory. This means that
  367. if you are in high memory screen modes then you will have less memory to
  368. use. So if you want even quicker *COPYing or *BACKUPs then try it in a
  369. mode which uses less memory.
  370. 1.7
  371. Å   Run$Path and File$Path. The FileSwitch uses two system variables
  372. called Run$Path and File$Path. You can see their values by typing
  373. either:
  374. 1.7
  375. *SHOW File$Path <return> and/or
  376. 1.7
  377. *SHOW Run$Path <return>
  378. 1.7
  379. You will probably get the following results:
  380. 1.7
  381. File$Path : type String, value :
  382. 1.7
  383. Run$Path : type String, value : ,%.
  384. 1.7
  385. These are the default settings. The values stored in the File$Path and
  386. Run$Path variables are actually a list of directory filenames separated
  387. by commas and terminated with dots.
  388. 1.7
  389. When the FileSwitch is told to read a file it will look at File$Path
  390. variable and search for the file in each of the directories listed until
  391. it finds a match. Similarly the FileSwitch will do the same when it is
  392. told to execute a file, only it will use the Run$Path variable as the
  393. list of directories. For example:
  394. 1.7
  395. *SET File$Path RFS:%.,,%.
  396. 1.7
  397. This would cause the FileSwitch to search for the file first in the RFS
  398. filing systemæs library directory, then in the current filing systemæs
  399. current directory (hence the ö,,ò which means donæt add anything to the
  400. filename as entered), and finally in the current filing systemæs library
  401. directory.
  402. 1.7
  403. Here is a list of all the possible directory prefixes (although you can
  404. actually specify any directory by name Ö wildcards may be used):
  405. 1.7
  406.  *    Ö    all
  407. 1.7
  408.  $    Ö    root
  409. 1.7
  410.  &    Ö    user
  411. 1.7
  412.  @    Ö    current
  413. 1.7
  414.  ^    Ö    parent
  415. 1.7
  416.  %    Ö    library
  417. 1.7
  418.  }    Ö    previous
  419. 1.7
  420. Å   Flushing the Mouse. You may have noticed that the mouse has a buffer
  421. of its own. This means that the Arc stores all the mouse movements and
  422. clicks just as it stores the keyboard entries. How many of you play
  423. around with the mouse when a program is Éthinkingæ or waiting for a
  424. screen to load? This will leave a whole load of mouse positions and
  425. clicks in the buffer, so any subsequent MOUSE X,Y,B readings will not
  426. reflect the true position of the mouse but the positions stored in the
  427. buffer!!! So how do you clear the buffer? To flush all the buffers,
  428. type:
  429. 1.7
  430. *FX 15 <return>
  431. 1.7
  432. to flush just the mouse buffer, type:
  433. 1.7
  434. *FX 21,9 <return>
  435. 1.7
  436. Å   Local DATA statements. (Based on an idea sent in by C.R.Fitch) In
  437. answer to the query last month, it is possible to have DATA statements
  438. in a program that does not rely on line numbers. What you can do is to
  439. use the error handler to pin-point a line number just before the local
  440. data statements. For every data set you want to access, just use the
  441. following format:
  442. 1.7
  443. DEFPROCdata_set
  444. 1.7
  445. LOCAL ERROR
  446. 1.7
  447. ON ERROR LOCAL RESTORE ERL
  448. 1.7
  449. IF ERL=0 THEN ERROR 1,öget line
  450. 1.7
  451.  numberö
  452. 1.7
  453. RESTORE ERROR                    
  454. 1.7
  455. DATA 1,2,3,4,5 : REM put your
  456. 1.7
  457.  own data here
  458. 1.7
  459. ENDPROC
  460. 1.7
  461. Then if you want to use the data set, just call the procedure, as for
  462. example:
  463. 1.7
  464. PROCdata_set
  465. 1.7
  466. FOR i=1 TO 5
  467. 1.7
  468. READ data:PRINT data
  469. 1.7
  470. NEXT i
  471. 1.7
  472. The procedure leaves everything exactly as it was (except the data
  473. pointer) so it does not affect the program at all. The only snag is that
  474. we donæt know where the old data pointer was so we canæt continue
  475. reading data from where we left off! Any ideas??
  476. 1.7
  477. (The remaining information in this section is about using the MS-DOS
  478. emulator. More information than this was sent in, but this was all I
  479. could digest with my limited knowledge of MS-DOS. Would anyone be
  480. prepared to receive all such information and knock it up into a special
  481. MS-DOS section each month?)
  482. 1.7
  483.  
  484. 1.7
  485.