Home » Archimedes archive » Archimedes World » archimedes_world_volume_16_issue_1_scp.adf » !Translatr_FILES » !Translatr/!Run

!Translatr/!Run

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » archimedes_world_volume_16_issue_1_scp.adf » !Translatr_FILES
Filename: !Translatr/!Run
Read OK:
File size: 088B bytes
Load address: 0000
Exec address: 0000
File contents
|>!Run
|
| !Run file for Translator
|

Obey <Obey$Dir>.!Boot

RMEnsure UtilityModule 3.10 Error I need RISC OS 3.10 or later
RMEnsure UtilityModule 3.70 RMEnsure CallASWI 0.01 RMLoad System:Modules.CallASWI
RMEnsure UtilityModule 3.70 RmEnsure CallASWI 0.01 Error I need CallASWI 0.01 or later

If "<Wimp$ScrapDir>" = "" then Error Wimp$ScrapDir not defined

Set Translator$ModulesDir <Translator$Dir>.Modules
Set Translator$StoreDir <Wimp$ScrapDir>
Set Translator$ScrapDir <Wimp$ScrapDir>

RMEnsure ZeriRegister 0.00 RMLoad <Translator$ModulesDir>.ZRegister
RMEnsure ZeriWimpUtils 1.03 RMLoad <Translator$ModulesDir>.ZWimpUtils
RMEnsure ZeriWimpUtils 1.03 Error I need ZeriWimpUtils 1.03 or later
RMEnsure ZeriLocal 1.01 RMLoad <Translator$ModulesDir>.ZLocal
RMEnsure ZeriLocal 1.01 Error I need ZeriLocal 1.01 or later
RMEnsure ZeriBuffer 1.02 RMLoad <Translator$ModulesDir>.ZBuffer
RMEnsure ZeriBuffer 1.02 Error I need ZeriBuffer 1.02 or later
RMEnsure ZeriArea 1.10 RMLoad <Translator$ModulesDir>.ZArea
RMEnsure ZeriArea 1.10 Error I need ZeriArea 1.10 or later
Set LoadModule No
RMEnsure ZeriImageIO 2.30 Set LoadModule Yes
If "<LoadModule>" = "Yes" then RMLoad <Translator$ModulesDir>.ZImageIO
If "<LoadModule>" = "Yes" then Set ZeriImageIO$BinDir <Translator$Dir>.Bin
If "<LoadModule>" = "Yes" then Set ZeriImageIO$ScrapDir <Wimp$ScrapDir>
Unset LoadModule
RMEnsure ZeriImageIO 2.30 Error I need ZeriImageIO 2.30 or later

| If you don't want Translator to use a dynamic area for the heap (as
| available on RISC OS 3.5 and higher) comment out the following line.
Set Translator_Heap 1
RMEnsure UtilityModule 3.50 Unset Translator_Heap

| If no dynamic area is being used for the heap, ensure the wimp slot
| is large enough or Translator will crash when running out of memory.
WimpSlot -min 160K -max 160K
If "<Translator_Heap>" = "" then WimpSlot -min 320K -max 320K

RegisterModule ZeriWimpUtils
RegisterModule ZeriLocal
RegisterModule ZeriBuffer
RegisterModule ZeriArea
RegisterModule ZeriImageIO

Run <Translator$Dir>.Translator %*0

UnregisterModule ZeriImageIO
UnregisterModule ZeriArea
UnregisterModule ZeriBuffer
UnregisterModule ZeriLocal
UnregisterModule ZeriWimpUtils
00000000  7c 3e 21 52 75 6e 0a 7c  0a 7c 20 21 52 75 6e 20  ||>!Run.|.| !Run |
00000010  66 69 6c 65 20 66 6f 72  20 54 72 61 6e 73 6c 61  |file for Transla|
00000020  74 6f 72 0a 7c 0a 0a 4f  62 65 79 20 3c 4f 62 65  |tor.|..Obey <Obe|
00000030  79 24 44 69 72 3e 2e 21  42 6f 6f 74 0a 0a 52 4d  |y$Dir>.!Boot..RM|
00000040  45 6e 73 75 72 65 20 55  74 69 6c 69 74 79 4d 6f  |Ensure UtilityMo|
00000050  64 75 6c 65 20 33 2e 31  30 20 45 72 72 6f 72 20  |dule 3.10 Error |
00000060  49 20 6e 65 65 64 20 52  49 53 43 20 4f 53 20 33  |I need RISC OS 3|
00000070  2e 31 30 20 6f 72 20 6c  61 74 65 72 0a 52 4d 45  |.10 or later.RME|
00000080  6e 73 75 72 65 20 55 74  69 6c 69 74 79 4d 6f 64  |nsure UtilityMod|
00000090  75 6c 65 20 33 2e 37 30  20 52 4d 45 6e 73 75 72  |ule 3.70 RMEnsur|
000000a0  65 20 43 61 6c 6c 41 53  57 49 20 30 2e 30 31 20  |e CallASWI 0.01 |
000000b0  52 4d 4c 6f 61 64 20 53  79 73 74 65 6d 3a 4d 6f  |RMLoad System:Mo|
000000c0  64 75 6c 65 73 2e 43 61  6c 6c 41 53 57 49 0a 52  |dules.CallASWI.R|
000000d0  4d 45 6e 73 75 72 65 20  55 74 69 6c 69 74 79 4d  |MEnsure UtilityM|
000000e0  6f 64 75 6c 65 20 33 2e  37 30 20 52 6d 45 6e 73  |odule 3.70 RmEns|
000000f0  75 72 65 20 43 61 6c 6c  41 53 57 49 20 30 2e 30  |ure CallASWI 0.0|
00000100  31 20 45 72 72 6f 72 20  49 20 6e 65 65 64 20 43  |1 Error I need C|
00000110  61 6c 6c 41 53 57 49 20  30 2e 30 31 20 6f 72 20  |allASWI 0.01 or |
00000120  6c 61 74 65 72 0a 0a 49  66 20 22 3c 57 69 6d 70  |later..If "<Wimp|
00000130  24 53 63 72 61 70 44 69  72 3e 22 20 3d 20 22 22  |$ScrapDir>" = ""|
00000140  20 74 68 65 6e 20 45 72  72 6f 72 20 57 69 6d 70  | then Error Wimp|
00000150  24 53 63 72 61 70 44 69  72 20 6e 6f 74 20 64 65  |$ScrapDir not de|
00000160  66 69 6e 65 64 0a 0a 53  65 74 20 54 72 61 6e 73  |fined..Set Trans|
00000170  6c 61 74 6f 72 24 4d 6f  64 75 6c 65 73 44 69 72  |lator$ModulesDir|
00000180  20 3c 54 72 61 6e 73 6c  61 74 6f 72 24 44 69 72  | <Translator$Dir|
00000190  3e 2e 4d 6f 64 75 6c 65  73 0a 53 65 74 20 54 72  |>.Modules.Set Tr|
000001a0  61 6e 73 6c 61 74 6f 72  24 53 74 6f 72 65 44 69  |anslator$StoreDi|
000001b0  72 20 3c 57 69 6d 70 24  53 63 72 61 70 44 69 72  |r <Wimp$ScrapDir|
000001c0  3e 0a 53 65 74 20 54 72  61 6e 73 6c 61 74 6f 72  |>.Set Translator|
000001d0  24 53 63 72 61 70 44 69  72 20 3c 57 69 6d 70 24  |$ScrapDir <Wimp$|
000001e0  53 63 72 61 70 44 69 72  3e 0a 0a 52 4d 45 6e 73  |ScrapDir>..RMEns|
000001f0  75 72 65 20 5a 65 72 69  52 65 67 69 73 74 65 72  |ure ZeriRegister|
00000200  20 30 2e 30 30 20 52 4d  4c 6f 61 64 20 3c 54 72  | 0.00 RMLoad <Tr|
00000210  61 6e 73 6c 61 74 6f 72  24 4d 6f 64 75 6c 65 73  |anslator$Modules|
00000220  44 69 72 3e 2e 5a 52 65  67 69 73 74 65 72 0a 52  |Dir>.ZRegister.R|
00000230  4d 45 6e 73 75 72 65 20  5a 65 72 69 57 69 6d 70  |MEnsure ZeriWimp|
00000240  55 74 69 6c 73 20 31 2e  30 33 20 52 4d 4c 6f 61  |Utils 1.03 RMLoa|
00000250  64 20 3c 54 72 61 6e 73  6c 61 74 6f 72 24 4d 6f  |d <Translator$Mo|
00000260  64 75 6c 65 73 44 69 72  3e 2e 5a 57 69 6d 70 55  |dulesDir>.ZWimpU|
00000270  74 69 6c 73 0a 52 4d 45  6e 73 75 72 65 20 5a 65  |tils.RMEnsure Ze|
00000280  72 69 57 69 6d 70 55 74  69 6c 73 20 31 2e 30 33  |riWimpUtils 1.03|
00000290  20 45 72 72 6f 72 20 49  20 6e 65 65 64 20 5a 65  | Error I need Ze|
000002a0  72 69 57 69 6d 70 55 74  69 6c 73 20 31 2e 30 33  |riWimpUtils 1.03|
000002b0  20 6f 72 20 6c 61 74 65  72 0a 52 4d 45 6e 73 75  | or later.RMEnsu|
000002c0  72 65 20 5a 65 72 69 4c  6f 63 61 6c 20 31 2e 30  |re ZeriLocal 1.0|
000002d0  31 20 52 4d 4c 6f 61 64  20 3c 54 72 61 6e 73 6c  |1 RMLoad <Transl|
000002e0  61 74 6f 72 24 4d 6f 64  75 6c 65 73 44 69 72 3e  |ator$ModulesDir>|
000002f0  2e 5a 4c 6f 63 61 6c 0a  52 4d 45 6e 73 75 72 65  |.ZLocal.RMEnsure|
00000300  20 5a 65 72 69 4c 6f 63  61 6c 20 31 2e 30 31 20  | ZeriLocal 1.01 |
00000310  45 72 72 6f 72 20 49 20  6e 65 65 64 20 5a 65 72  |Error I need Zer|
00000320  69 4c 6f 63 61 6c 20 31  2e 30 31 20 6f 72 20 6c  |iLocal 1.01 or l|
00000330  61 74 65 72 0a 52 4d 45  6e 73 75 72 65 20 5a 65  |ater.RMEnsure Ze|
00000340  72 69 42 75 66 66 65 72  20 31 2e 30 32 20 52 4d  |riBuffer 1.02 RM|
00000350  4c 6f 61 64 20 3c 54 72  61 6e 73 6c 61 74 6f 72  |Load <Translator|
00000360  24 4d 6f 64 75 6c 65 73  44 69 72 3e 2e 5a 42 75  |$ModulesDir>.ZBu|
00000370  66 66 65 72 0a 52 4d 45  6e 73 75 72 65 20 5a 65  |ffer.RMEnsure Ze|
00000380  72 69 42 75 66 66 65 72  20 31 2e 30 32 20 45 72  |riBuffer 1.02 Er|
00000390  72 6f 72 20 49 20 6e 65  65 64 20 5a 65 72 69 42  |ror I need ZeriB|
000003a0  75 66 66 65 72 20 31 2e  30 32 20 6f 72 20 6c 61  |uffer 1.02 or la|
000003b0  74 65 72 0a 52 4d 45 6e  73 75 72 65 20 5a 65 72  |ter.RMEnsure Zer|
000003c0  69 41 72 65 61 20 31 2e  31 30 20 52 4d 4c 6f 61  |iArea 1.10 RMLoa|
000003d0  64 20 3c 54 72 61 6e 73  6c 61 74 6f 72 24 4d 6f  |d <Translator$Mo|
000003e0  64 75 6c 65 73 44 69 72  3e 2e 5a 41 72 65 61 0a  |dulesDir>.ZArea.|
000003f0  52 4d 45 6e 73 75 72 65  20 5a 65 72 69 41 72 65  |RMEnsure ZeriAre|
00000400  61 20 31 2e 31 30 20 45  72 72 6f 72 20 49 20 6e  |a 1.10 Error I n|
00000410  65 65 64 20 5a 65 72 69  41 72 65 61 20 31 2e 31  |eed ZeriArea 1.1|
00000420  30 20 6f 72 20 6c 61 74  65 72 0a 53 65 74 20 4c  |0 or later.Set L|
00000430  6f 61 64 4d 6f 64 75 6c  65 20 4e 6f 0a 52 4d 45  |oadModule No.RME|
00000440  6e 73 75 72 65 20 5a 65  72 69 49 6d 61 67 65 49  |nsure ZeriImageI|
00000450  4f 20 32 2e 33 30 20 53  65 74 20 4c 6f 61 64 4d  |O 2.30 Set LoadM|
00000460  6f 64 75 6c 65 20 59 65  73 0a 49 66 20 22 3c 4c  |odule Yes.If "<L|
00000470  6f 61 64 4d 6f 64 75 6c  65 3e 22 20 3d 20 22 59  |oadModule>" = "Y|
00000480  65 73 22 20 74 68 65 6e  20 52 4d 4c 6f 61 64 20  |es" then RMLoad |
00000490  3c 54 72 61 6e 73 6c 61  74 6f 72 24 4d 6f 64 75  |<Translator$Modu|
000004a0  6c 65 73 44 69 72 3e 2e  5a 49 6d 61 67 65 49 4f  |lesDir>.ZImageIO|
000004b0  0a 49 66 20 22 3c 4c 6f  61 64 4d 6f 64 75 6c 65  |.If "<LoadModule|
000004c0  3e 22 20 3d 20 22 59 65  73 22 20 74 68 65 6e 20  |>" = "Yes" then |
000004d0  53 65 74 20 5a 65 72 69  49 6d 61 67 65 49 4f 24  |Set ZeriImageIO$|
000004e0  42 69 6e 44 69 72 20 3c  54 72 61 6e 73 6c 61 74  |BinDir <Translat|
000004f0  6f 72 24 44 69 72 3e 2e  42 69 6e 0a 49 66 20 22  |or$Dir>.Bin.If "|
00000500  3c 4c 6f 61 64 4d 6f 64  75 6c 65 3e 22 20 3d 20  |<LoadModule>" = |
00000510  22 59 65 73 22 20 74 68  65 6e 20 53 65 74 20 5a  |"Yes" then Set Z|
00000520  65 72 69 49 6d 61 67 65  49 4f 24 53 63 72 61 70  |eriImageIO$Scrap|
00000530  44 69 72 20 3c 57 69 6d  70 24 53 63 72 61 70 44  |Dir <Wimp$ScrapD|
00000540  69 72 3e 0a 55 6e 73 65  74 20 4c 6f 61 64 4d 6f  |ir>.Unset LoadMo|
00000550  64 75 6c 65 0a 52 4d 45  6e 73 75 72 65 20 5a 65  |dule.RMEnsure Ze|
00000560  72 69 49 6d 61 67 65 49  4f 20 32 2e 33 30 20 45  |riImageIO 2.30 E|
00000570  72 72 6f 72 20 49 20 6e  65 65 64 20 5a 65 72 69  |rror I need Zeri|
00000580  49 6d 61 67 65 49 4f 20  32 2e 33 30 20 6f 72 20  |ImageIO 2.30 or |
00000590  6c 61 74 65 72 0a 0a 7c  20 49 66 20 79 6f 75 20  |later..| If you |
000005a0  64 6f 6e 27 74 20 77 61  6e 74 20 54 72 61 6e 73  |don't want Trans|
000005b0  6c 61 74 6f 72 20 74 6f  20 75 73 65 20 61 20 64  |lator to use a d|
000005c0  79 6e 61 6d 69 63 20 61  72 65 61 20 66 6f 72 20  |ynamic area for |
000005d0  74 68 65 20 68 65 61 70  20 28 61 73 0a 7c 20 61  |the heap (as.| a|
000005e0  76 61 69 6c 61 62 6c 65  20 6f 6e 20 52 49 53 43  |vailable on RISC|
000005f0  20 4f 53 20 33 2e 35 20  61 6e 64 20 68 69 67 68  | OS 3.5 and high|
00000600  65 72 29 20 63 6f 6d 6d  65 6e 74 20 6f 75 74 20  |er) comment out |
00000610  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 6c 69  |the following li|
00000620  6e 65 2e 0a 53 65 74 20  54 72 61 6e 73 6c 61 74  |ne..Set Translat|
00000630  6f 72 5f 48 65 61 70 20  31 0a 52 4d 45 6e 73 75  |or_Heap 1.RMEnsu|
00000640  72 65 20 55 74 69 6c 69  74 79 4d 6f 64 75 6c 65  |re UtilityModule|
00000650  20 33 2e 35 30 20 55 6e  73 65 74 20 54 72 61 6e  | 3.50 Unset Tran|
00000660  73 6c 61 74 6f 72 5f 48  65 61 70 0a 0a 7c 20 49  |slator_Heap..| I|
00000670  66 20 6e 6f 20 64 79 6e  61 6d 69 63 20 61 72 65  |f no dynamic are|
00000680  61 20 69 73 20 62 65 69  6e 67 20 75 73 65 64 20  |a is being used |
00000690  66 6f 72 20 74 68 65 20  68 65 61 70 2c 20 65 6e  |for the heap, en|
000006a0  73 75 72 65 20 74 68 65  20 77 69 6d 70 20 73 6c  |sure the wimp sl|
000006b0  6f 74 0a 7c 20 69 73 20  6c 61 72 67 65 20 65 6e  |ot.| is large en|
000006c0  6f 75 67 68 20 6f 72 20  54 72 61 6e 73 6c 61 74  |ough or Translat|
000006d0  6f 72 20 77 69 6c 6c 20  63 72 61 73 68 20 77 68  |or will crash wh|
000006e0  65 6e 20 72 75 6e 6e 69  6e 67 20 6f 75 74 20 6f  |en running out o|
000006f0  66 20 6d 65 6d 6f 72 79  2e 0a 57 69 6d 70 53 6c  |f memory..WimpSl|
00000700  6f 74 20 2d 6d 69 6e 20  31 36 30 4b 20 2d 6d 61  |ot -min 160K -ma|
00000710  78 20 31 36 30 4b 0a 49  66 20 22 3c 54 72 61 6e  |x 160K.If "<Tran|
00000720  73 6c 61 74 6f 72 5f 48  65 61 70 3e 22 20 3d 20  |slator_Heap>" = |
00000730  22 22 20 74 68 65 6e 20  57 69 6d 70 53 6c 6f 74  |"" then WimpSlot|
00000740  20 2d 6d 69 6e 20 33 32  30 4b 20 2d 6d 61 78 20  | -min 320K -max |
00000750  33 32 30 4b 0a 0a 52 65  67 69 73 74 65 72 4d 6f  |320K..RegisterMo|
00000760  64 75 6c 65 20 5a 65 72  69 57 69 6d 70 55 74 69  |dule ZeriWimpUti|
00000770  6c 73 0a 52 65 67 69 73  74 65 72 4d 6f 64 75 6c  |ls.RegisterModul|
00000780  65 20 5a 65 72 69 4c 6f  63 61 6c 0a 52 65 67 69  |e ZeriLocal.Regi|
00000790  73 74 65 72 4d 6f 64 75  6c 65 20 5a 65 72 69 42  |sterModule ZeriB|
000007a0  75 66 66 65 72 0a 52 65  67 69 73 74 65 72 4d 6f  |uffer.RegisterMo|
000007b0  64 75 6c 65 20 5a 65 72  69 41 72 65 61 0a 52 65  |dule ZeriArea.Re|
000007c0  67 69 73 74 65 72 4d 6f  64 75 6c 65 20 5a 65 72  |gisterModule Zer|
000007d0  69 49 6d 61 67 65 49 4f  0a 0a 52 75 6e 20 3c 54  |iImageIO..Run <T|
000007e0  72 61 6e 73 6c 61 74 6f  72 24 44 69 72 3e 2e 54  |ranslator$Dir>.T|
000007f0  72 61 6e 73 6c 61 74 6f  72 20 25 2a 30 0a 0a 55  |ranslator %*0..U|
00000800  6e 72 65 67 69 73 74 65  72 4d 6f 64 75 6c 65 20  |nregisterModule |
00000810  5a 65 72 69 49 6d 61 67  65 49 4f 0a 55 6e 72 65  |ZeriImageIO.Unre|
00000820  67 69 73 74 65 72 4d 6f  64 75 6c 65 20 5a 65 72  |gisterModule Zer|
00000830  69 41 72 65 61 0a 55 6e  72 65 67 69 73 74 65 72  |iArea.Unregister|
00000840  4d 6f 64 75 6c 65 20 5a  65 72 69 42 75 66 66 65  |Module ZeriBuffe|
00000850  72 0a 55 6e 72 65 67 69  73 74 65 72 4d 6f 64 75  |r.UnregisterModu|
00000860  6c 65 20 5a 65 72 69 4c  6f 63 61 6c 0a 55 6e 72  |le ZeriLocal.Unr|
00000870  65 67 69 73 74 65 72 4d  6f 64 75 6c 65 20 5a 65  |egisterModule Ze|
00000880  72 69 57 69 6d 70 55 74  69 6c 73                 |riWimpUtils|
0000088b