Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Features » PCA/Docs/ToTest
PCA/Docs/ToTest
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 » Acorn User » AU 1996-12 B.adf » Features |
| Filename: | PCA/Docs/ToTest |
| Read OK: | ✔ |
| File size: | 0FF0 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
How to test:
============
Read the file 'intro' for an explanation of the terms 'local' and 'remote'.
Load at least two copies of !Spaint (more if you like).
Load a 24 bit sprite into one copy of !SPaint by dragging to the iconbar
icon. A window opens with three icons attached. These are from top down:
o Close window
o Information - does nothing
o Utils - opens up a list of PCA Compliant applications
Click on the Utils icon in the toolbar attached to the window. This will
construct a dialogue of the PCA compatible programs which are running that
can do something to the sprite in question.
Choose one of these to link it to the 'Local' image.
A Toolbar with three icons pops up at the bottom of the window. The icons
from left to right are:
o De-link Remote application
o Pop up Colour Picker
o Third icon is for show only - does nothing
Select a colour and paint into the window with the mouse.
Clicking MENU also pops up the colour picker.
The above is an example of 'in-place' editing where the second application
('remote') is providing tools that work on the 'Local' window.
Non In-Place editing
====================
Load one copy of !SPaint and one copy of !Processed.
Click on the Processed icon on the icon bar; press Menu over the window and
untick the 'Accept in place' menu item.
Menu again and go off the Utilities menu and select Simple Paint.
This opens another window with the same image and the toolbar attached to
the new window.
Editing in this 'Remote' window modifies the image in both windows.
Try also:
=========
1) Load !Processor bring up the Utilities menu on Processed and select the
Tool item. Click on the Processor icon and use the sliders by clicking into
them. This updates both images.
2) Linking more than one copy of !Spaint into the same image and painting in
different copies.
3) Dragging a different sprite into the local image window.
4) Quitting the copy of !Spaint containing the local image.
What happens when you click menu in the 'local' window?
-------------------------------------------------------
There are two cases
1) When not using in-place editing
When you click the local copy of Spaint it broadcasts Message_WhosAbout with
the filetype of the selected object and its address. The other PCA programs
running spot this message and respond with Message_ImHere which the Local
uses to build the dialogue box.
When the user selects an item it sends a Message_DoYourStuff message to the
task which added the dialogue item.
When the user paints in the window Spaint broadcasts Message_UpdateArea which
the other programs using the object respond to by redrawing the appropriate
area of their windows.
2) When using in-place editing
All mouse clicks are passed to the remote, which will normally bring up its
own menu in this case. See the file Remote_msg for details.
Use in C programs
=================
To use these applications you require the Acorn Toolbox modules. If you do
not have these they are provided with the Virtualise demo available from
Clares Web site at
http://www.stcoll.ac.uk/Clares/
The two application 'processor' and 'processed', demonstrate how PCAs can be
written in C using Acorn's Toolbox. Not all the features of the protocol are
used. 'Processed' does nothing in itself. It merely displays a sprite which
can be modified by other PCA applications. It also has a menu item which
causes flex to move the memory containing the sprite. This demonstrates how
to use the flex callback mechanism to notify linked applications of the
move.
'Processor' acts on sprites in other PCA applications. The sliders just
alter the red and green components of pixels in the local. Not very useful,
but it shows how addons can work.
Both applications use the virtual memory/dynamic area versions of flex,
which is provided. They also use the sprite code from Risc_OsLib, which is
also provided.
Please not that these are not intended as models of how to write Toolbox
code. They just show how the PCA protocols might me implemented in C.
00000000 48 6f 77 20 74 6f 20 74 65 73 74 3a 0a 3d 3d 3d |How to test:.===|
00000010 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 52 65 61 64 20 |=========..Read |
00000020 74 68 65 20 66 69 6c 65 20 27 69 6e 74 72 6f 27 |the file 'intro'|
00000030 20 66 6f 72 20 61 6e 20 65 78 70 6c 61 6e 61 74 | for an explanat|
00000040 69 6f 6e 20 6f 66 20 74 68 65 20 74 65 72 6d 73 |ion of the terms|
00000050 20 27 6c 6f 63 61 6c 27 20 61 6e 64 20 27 72 65 | 'local' and 're|
00000060 6d 6f 74 65 27 2e 0a 0a 4c 6f 61 64 20 61 74 20 |mote'...Load at |
00000070 6c 65 61 73 74 20 74 77 6f 20 63 6f 70 69 65 73 |least two copies|
00000080 20 6f 66 20 21 53 70 61 69 6e 74 20 28 6d 6f 72 | of !Spaint (mor|
00000090 65 20 69 66 20 79 6f 75 20 6c 69 6b 65 29 2e 0a |e if you like)..|
000000a0 0a 4c 6f 61 64 20 61 20 32 34 20 62 69 74 20 73 |.Load a 24 bit s|
000000b0 70 72 69 74 65 20 69 6e 74 6f 20 6f 6e 65 20 63 |prite into one c|
000000c0 6f 70 79 20 6f 66 20 21 53 50 61 69 6e 74 20 62 |opy of !SPaint b|
000000d0 79 20 64 72 61 67 67 69 6e 67 20 74 6f 20 74 68 |y dragging to th|
000000e0 65 20 69 63 6f 6e 62 61 72 0a 69 63 6f 6e 2e 20 |e iconbar.icon. |
000000f0 41 20 77 69 6e 64 6f 77 20 6f 70 65 6e 73 20 77 |A window opens w|
00000100 69 74 68 20 74 68 72 65 65 20 69 63 6f 6e 73 20 |ith three icons |
00000110 61 74 74 61 63 68 65 64 2e 20 54 68 65 73 65 20 |attached. These |
00000120 61 72 65 20 66 72 6f 6d 20 74 6f 70 20 64 6f 77 |are from top dow|
00000130 6e 3a 0a 0a 6f 20 43 6c 6f 73 65 20 77 69 6e 64 |n:..o Close wind|
00000140 6f 77 0a 6f 20 49 6e 66 6f 72 6d 61 74 69 6f 6e |ow.o Information|
00000150 20 2d 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 0a | - does nothing.|
00000160 6f 20 55 74 69 6c 73 20 2d 20 6f 70 65 6e 73 20 |o Utils - opens |
00000170 75 70 20 61 20 6c 69 73 74 20 6f 66 20 50 43 41 |up a list of PCA|
00000180 20 43 6f 6d 70 6c 69 61 6e 74 20 61 70 70 6c 69 | Compliant appli|
00000190 63 61 74 69 6f 6e 73 0a 0a 43 6c 69 63 6b 20 6f |cations..Click o|
000001a0 6e 20 74 68 65 20 55 74 69 6c 73 20 69 63 6f 6e |n the Utils icon|
000001b0 20 69 6e 20 74 68 65 20 74 6f 6f 6c 62 61 72 20 | in the toolbar |
000001c0 61 74 74 61 63 68 65 64 20 74 6f 20 74 68 65 20 |attached to the |
000001d0 77 69 6e 64 6f 77 2e 20 54 68 69 73 20 77 69 6c |window. This wil|
000001e0 6c 0a 63 6f 6e 73 74 72 75 63 74 20 61 20 64 69 |l.construct a di|
000001f0 61 6c 6f 67 75 65 20 6f 66 20 74 68 65 20 50 43 |alogue of the PC|
00000200 41 20 63 6f 6d 70 61 74 69 62 6c 65 20 70 72 6f |A compatible pro|
00000210 67 72 61 6d 73 20 77 68 69 63 68 20 61 72 65 20 |grams which are |
00000220 72 75 6e 6e 69 6e 67 20 74 68 61 74 0a 63 61 6e |running that.can|
00000230 20 64 6f 20 73 6f 6d 65 74 68 69 6e 67 20 74 6f | do something to|
00000240 20 74 68 65 20 73 70 72 69 74 65 20 69 6e 20 71 | the sprite in q|
00000250 75 65 73 74 69 6f 6e 2e 0a 0a 43 68 6f 6f 73 65 |uestion...Choose|
00000260 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 6f | one of these to|
00000270 20 6c 69 6e 6b 20 69 74 20 74 6f 20 74 68 65 20 | link it to the |
00000280 27 4c 6f 63 61 6c 27 20 69 6d 61 67 65 2e 0a 0a |'Local' image...|
00000290 41 20 54 6f 6f 6c 62 61 72 20 77 69 74 68 20 74 |A Toolbar with t|
000002a0 68 72 65 65 20 69 63 6f 6e 73 20 70 6f 70 73 20 |hree icons pops |
000002b0 75 70 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d |up at the bottom|
000002c0 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 2e 20 | of the window. |
000002d0 54 68 65 20 69 63 6f 6e 73 0a 66 72 6f 6d 20 6c |The icons.from l|
000002e0 65 66 74 20 74 6f 20 72 69 67 68 74 20 61 72 65 |eft to right are|
000002f0 3a 0a 0a 6f 20 44 65 2d 6c 69 6e 6b 20 52 65 6d |:..o De-link Rem|
00000300 6f 74 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a |ote application.|
00000310 6f 20 50 6f 70 20 75 70 20 43 6f 6c 6f 75 72 20 |o Pop up Colour |
00000320 50 69 63 6b 65 72 0a 6f 20 54 68 69 72 64 20 69 |Picker.o Third i|
00000330 63 6f 6e 20 69 73 20 66 6f 72 20 73 68 6f 77 20 |con is for show |
00000340 6f 6e 6c 79 20 2d 20 64 6f 65 73 20 6e 6f 74 68 |only - does noth|
00000350 69 6e 67 0a 0a 53 65 6c 65 63 74 20 61 20 63 6f |ing..Select a co|
00000360 6c 6f 75 72 20 61 6e 64 20 70 61 69 6e 74 20 69 |lour and paint i|
00000370 6e 74 6f 20 74 68 65 20 77 69 6e 64 6f 77 20 77 |nto the window w|
00000380 69 74 68 20 74 68 65 20 6d 6f 75 73 65 2e 20 0a |ith the mouse. .|
00000390 0a 43 6c 69 63 6b 69 6e 67 20 4d 45 4e 55 20 61 |.Clicking MENU a|
000003a0 6c 73 6f 20 70 6f 70 73 20 75 70 20 74 68 65 20 |lso pops up the |
000003b0 63 6f 6c 6f 75 72 20 70 69 63 6b 65 72 2e 0a 0a |colour picker...|
000003c0 54 68 65 20 61 62 6f 76 65 20 69 73 20 61 6e 20 |The above is an |
000003d0 65 78 61 6d 70 6c 65 20 6f 66 20 27 69 6e 2d 70 |example of 'in-p|
000003e0 6c 61 63 65 27 20 65 64 69 74 69 6e 67 20 77 68 |lace' editing wh|
000003f0 65 72 65 20 74 68 65 20 73 65 63 6f 6e 64 20 61 |ere the second a|
00000400 70 70 6c 69 63 61 74 69 6f 6e 0a 28 27 72 65 6d |pplication.('rem|
00000410 6f 74 65 27 29 20 69 73 20 70 72 6f 76 69 64 69 |ote') is providi|
00000420 6e 67 20 74 6f 6f 6c 73 20 74 68 61 74 20 77 6f |ng tools that wo|
00000430 72 6b 20 6f 6e 20 74 68 65 20 27 4c 6f 63 61 6c |rk on the 'Local|
00000440 27 20 77 69 6e 64 6f 77 2e 0a 0a 4e 6f 6e 20 49 |' window...Non I|
00000450 6e 2d 50 6c 61 63 65 20 65 64 69 74 69 6e 67 0a |n-Place editing.|
00000460 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================|
00000470 3d 3d 3d 3d 0a 0a 4c 6f 61 64 20 6f 6e 65 20 63 |====..Load one c|
00000480 6f 70 79 20 6f 66 20 21 53 50 61 69 6e 74 20 61 |opy of !SPaint a|
00000490 6e 64 20 6f 6e 65 20 63 6f 70 79 20 6f 66 20 21 |nd one copy of !|
000004a0 50 72 6f 63 65 73 73 65 64 2e 0a 0a 43 6c 69 63 |Processed...Clic|
000004b0 6b 20 6f 6e 20 74 68 65 20 50 72 6f 63 65 73 73 |k on the Process|
000004c0 65 64 20 69 63 6f 6e 20 6f 6e 20 74 68 65 20 69 |ed icon on the i|
000004d0 63 6f 6e 20 62 61 72 3b 20 70 72 65 73 73 20 4d |con bar; press M|
000004e0 65 6e 75 20 6f 76 65 72 20 74 68 65 20 77 69 6e |enu over the win|
000004f0 64 6f 77 20 61 6e 64 0a 75 6e 74 69 63 6b 20 74 |dow and.untick t|
00000500 68 65 20 27 41 63 63 65 70 74 20 69 6e 20 70 6c |he 'Accept in pl|
00000510 61 63 65 27 20 6d 65 6e 75 20 69 74 65 6d 2e 0a |ace' menu item..|
00000520 0a 4d 65 6e 75 20 61 67 61 69 6e 20 61 6e 64 20 |.Menu again and |
00000530 67 6f 20 6f 66 66 20 74 68 65 20 55 74 69 6c 69 |go off the Utili|
00000540 74 69 65 73 20 6d 65 6e 75 20 61 6e 64 20 73 65 |ties menu and se|
00000550 6c 65 63 74 20 53 69 6d 70 6c 65 20 50 61 69 6e |lect Simple Pain|
00000560 74 2e 0a 0a 54 68 69 73 20 6f 70 65 6e 73 20 61 |t...This opens a|
00000570 6e 6f 74 68 65 72 20 77 69 6e 64 6f 77 20 77 69 |nother window wi|
00000580 74 68 20 74 68 65 20 73 61 6d 65 20 69 6d 61 67 |th the same imag|
00000590 65 20 61 6e 64 20 74 68 65 20 74 6f 6f 6c 62 61 |e and the toolba|
000005a0 72 20 61 74 74 61 63 68 65 64 20 74 6f 0a 74 68 |r attached to.th|
000005b0 65 20 6e 65 77 20 77 69 6e 64 6f 77 2e 0a 0a 45 |e new window...E|
000005c0 64 69 74 69 6e 67 20 69 6e 20 74 68 69 73 20 27 |diting in this '|
000005d0 52 65 6d 6f 74 65 27 20 77 69 6e 64 6f 77 20 6d |Remote' window m|
000005e0 6f 64 69 66 69 65 73 20 74 68 65 20 69 6d 61 67 |odifies the imag|
000005f0 65 20 69 6e 20 62 6f 74 68 20 77 69 6e 64 6f 77 |e in both window|
00000600 73 2e 0a 0a 54 72 79 20 61 6c 73 6f 3a 0a 3d 3d |s...Try also:.==|
00000610 3d 3d 3d 3d 3d 3d 3d 0a 0a 31 29 20 4c 6f 61 64 |=======..1) Load|
00000620 20 21 50 72 6f 63 65 73 73 6f 72 20 62 72 69 6e | !Processor brin|
00000630 67 20 75 70 20 74 68 65 20 55 74 69 6c 69 74 69 |g up the Utiliti|
00000640 65 73 20 6d 65 6e 75 20 6f 6e 20 50 72 6f 63 65 |es menu on Proce|
00000650 73 73 65 64 20 61 6e 64 20 73 65 6c 65 63 74 20 |ssed and select |
00000660 74 68 65 0a 54 6f 6f 6c 20 69 74 65 6d 2e 20 43 |the.Tool item. C|
00000670 6c 69 63 6b 20 6f 6e 20 74 68 65 20 50 72 6f 63 |lick on the Proc|
00000680 65 73 73 6f 72 20 69 63 6f 6e 20 61 6e 64 20 75 |essor icon and u|
00000690 73 65 20 74 68 65 20 73 6c 69 64 65 72 73 20 62 |se the sliders b|
000006a0 79 20 63 6c 69 63 6b 69 6e 67 20 69 6e 74 6f 0a |y clicking into.|
000006b0 74 68 65 6d 2e 20 54 68 69 73 20 75 70 64 61 74 |them. This updat|
000006c0 65 73 20 62 6f 74 68 20 69 6d 61 67 65 73 2e 0a |es both images..|
000006d0 0a 32 29 20 4c 69 6e 6b 69 6e 67 20 6d 6f 72 65 |.2) Linking more|
000006e0 20 74 68 61 6e 20 6f 6e 65 20 63 6f 70 79 20 6f | than one copy o|
000006f0 66 20 21 53 70 61 69 6e 74 20 69 6e 74 6f 20 74 |f !Spaint into t|
00000700 68 65 20 73 61 6d 65 20 69 6d 61 67 65 20 61 6e |he same image an|
00000710 64 20 70 61 69 6e 74 69 6e 67 20 69 6e 0a 64 69 |d painting in.di|
00000720 66 66 65 72 65 6e 74 20 63 6f 70 69 65 73 2e 0a |fferent copies..|
00000730 0a 33 29 20 44 72 61 67 67 69 6e 67 20 61 20 64 |.3) Dragging a d|
00000740 69 66 66 65 72 65 6e 74 20 73 70 72 69 74 65 20 |ifferent sprite |
00000750 69 6e 74 6f 20 74 68 65 20 6c 6f 63 61 6c 20 69 |into the local i|
00000760 6d 61 67 65 20 77 69 6e 64 6f 77 2e 0a 0a 34 29 |mage window...4)|
00000770 20 51 75 69 74 74 69 6e 67 20 74 68 65 20 63 6f | Quitting the co|
00000780 70 79 20 6f 66 20 21 53 70 61 69 6e 74 20 63 6f |py of !Spaint co|
00000790 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6c 6f 63 |ntaining the loc|
000007a0 61 6c 20 69 6d 61 67 65 2e 0a 0a 0a 57 68 61 74 |al image....What|
000007b0 20 68 61 70 70 65 6e 73 20 77 68 65 6e 20 79 6f | happens when yo|
000007c0 75 20 63 6c 69 63 6b 20 6d 65 6e 75 20 69 6e 20 |u click menu in |
000007d0 74 68 65 20 27 6c 6f 63 61 6c 27 20 77 69 6e 64 |the 'local' wind|
000007e0 6f 77 3f 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |ow?.------------|
000007f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------|
*
00000810 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 54 68 65 |-----------..The|
00000820 72 65 20 61 72 65 20 74 77 6f 20 63 61 73 65 73 |re are two cases|
00000830 0a 0a 31 29 20 57 68 65 6e 20 6e 6f 74 20 75 73 |..1) When not us|
00000840 69 6e 67 20 69 6e 2d 70 6c 61 63 65 20 65 64 69 |ing in-place edi|
00000850 74 69 6e 67 0a 0a 57 68 65 6e 20 79 6f 75 20 63 |ting..When you c|
00000860 6c 69 63 6b 20 74 68 65 20 6c 6f 63 61 6c 20 63 |lick the local c|
00000870 6f 70 79 20 6f 66 20 53 70 61 69 6e 74 20 69 74 |opy of Spaint it|
00000880 20 62 72 6f 61 64 63 61 73 74 73 20 4d 65 73 73 | broadcasts Mess|
00000890 61 67 65 5f 57 68 6f 73 41 62 6f 75 74 20 77 69 |age_WhosAbout wi|
000008a0 74 68 0a 74 68 65 20 66 69 6c 65 74 79 70 65 20 |th.the filetype |
000008b0 6f 66 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 |of the selected |
000008c0 6f 62 6a 65 63 74 20 61 6e 64 20 69 74 73 20 61 |object and its a|
000008d0 64 64 72 65 73 73 2e 20 54 68 65 20 6f 74 68 65 |ddress. The othe|
000008e0 72 20 50 43 41 20 70 72 6f 67 72 61 6d 73 0a 72 |r PCA programs.r|
000008f0 75 6e 6e 69 6e 67 20 73 70 6f 74 20 74 68 69 73 |unning spot this|
00000900 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 73 | message and res|
00000910 70 6f 6e 64 20 77 69 74 68 20 4d 65 73 73 61 67 |pond with Messag|
00000920 65 5f 49 6d 48 65 72 65 20 77 68 69 63 68 20 74 |e_ImHere which t|
00000930 68 65 20 4c 6f 63 61 6c 0a 75 73 65 73 20 74 6f |he Local.uses to|
00000940 20 62 75 69 6c 64 20 74 68 65 20 64 69 61 6c 6f | build the dialo|
00000950 67 75 65 20 62 6f 78 2e 0a 0a 57 68 65 6e 20 74 |gue box...When t|
00000960 68 65 20 75 73 65 72 20 73 65 6c 65 63 74 73 20 |he user selects |
00000970 61 6e 20 69 74 65 6d 20 69 74 20 73 65 6e 64 73 |an item it sends|
00000980 20 61 20 4d 65 73 73 61 67 65 5f 44 6f 59 6f 75 | a Message_DoYou|
00000990 72 53 74 75 66 66 20 6d 65 73 73 61 67 65 20 74 |rStuff message t|
000009a0 6f 20 74 68 65 0a 74 61 73 6b 20 77 68 69 63 68 |o the.task which|
000009b0 20 61 64 64 65 64 20 74 68 65 20 64 69 61 6c 6f | added the dialo|
000009c0 67 75 65 20 69 74 65 6d 2e 0a 0a 57 68 65 6e 20 |gue item...When |
000009d0 74 68 65 20 75 73 65 72 20 70 61 69 6e 74 73 20 |the user paints |
000009e0 69 6e 20 74 68 65 20 77 69 6e 64 6f 77 20 53 70 |in the window Sp|
000009f0 61 69 6e 74 20 62 72 6f 61 64 63 61 73 74 73 20 |aint broadcasts |
00000a00 4d 65 73 73 61 67 65 5f 55 70 64 61 74 65 41 72 |Message_UpdateAr|
00000a10 65 61 20 77 68 69 63 68 0a 74 68 65 20 6f 74 68 |ea which.the oth|
00000a20 65 72 20 70 72 6f 67 72 61 6d 73 20 75 73 69 6e |er programs usin|
00000a30 67 20 74 68 65 20 6f 62 6a 65 63 74 20 72 65 73 |g the object res|
00000a40 70 6f 6e 64 20 74 6f 20 62 79 20 72 65 64 72 61 |pond to by redra|
00000a50 77 69 6e 67 20 74 68 65 20 61 70 70 72 6f 70 72 |wing the appropr|
00000a60 69 61 74 65 0a 61 72 65 61 20 6f 66 20 74 68 65 |iate.area of the|
00000a70 69 72 20 77 69 6e 64 6f 77 73 2e 0a 20 20 20 20 |ir windows.. |
00000a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 0a | ..|
00000aa0 32 29 20 57 68 65 6e 20 75 73 69 6e 67 20 69 6e |2) When using in|
00000ab0 2d 70 6c 61 63 65 20 65 64 69 74 69 6e 67 0a 0a |-place editing..|
00000ac0 41 6c 6c 20 6d 6f 75 73 65 20 63 6c 69 63 6b 73 |All mouse clicks|
00000ad0 20 61 72 65 20 70 61 73 73 65 64 20 74 6f 20 74 | are passed to t|
00000ae0 68 65 20 72 65 6d 6f 74 65 2c 20 77 68 69 63 68 |he remote, which|
00000af0 20 77 69 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 62 | will normally b|
00000b00 72 69 6e 67 20 75 70 20 69 74 73 0a 6f 77 6e 20 |ring up its.own |
00000b10 6d 65 6e 75 20 69 6e 20 74 68 69 73 20 63 61 73 |menu in this cas|
00000b20 65 2e 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 |e. See the file |
00000b30 52 65 6d 6f 74 65 5f 6d 73 67 20 66 6f 72 20 64 |Remote_msg for d|
00000b40 65 74 61 69 6c 73 2e 0a 0a 0a 55 73 65 20 69 6e |etails....Use in|
00000b50 20 43 20 70 72 6f 67 72 61 6d 73 0a 3d 3d 3d 3d | C programs.====|
00000b60 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 |=============..T|
00000b70 6f 20 75 73 65 20 74 68 65 73 65 20 61 70 70 6c |o use these appl|
00000b80 69 63 61 74 69 6f 6e 73 20 79 6f 75 20 72 65 71 |ications you req|
00000b90 75 69 72 65 20 74 68 65 20 41 63 6f 72 6e 20 54 |uire the Acorn T|
00000ba0 6f 6f 6c 62 6f 78 20 6d 6f 64 75 6c 65 73 2e 20 |oolbox modules. |
00000bb0 49 66 20 79 6f 75 20 64 6f 0a 6e 6f 74 20 68 61 |If you do.not ha|
00000bc0 76 65 20 74 68 65 73 65 20 74 68 65 79 20 61 72 |ve these they ar|
00000bd0 65 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 |e provided with |
00000be0 74 68 65 20 56 69 72 74 75 61 6c 69 73 65 20 64 |the Virtualise d|
00000bf0 65 6d 6f 20 61 76 61 69 6c 61 62 6c 65 20 66 72 |emo available fr|
00000c00 6f 6d 0a 43 6c 61 72 65 73 20 57 65 62 20 73 69 |om.Clares Web si|
00000c10 74 65 20 61 74 0a 0a 68 74 74 70 3a 2f 2f 77 77 |te at..http://ww|
00000c20 77 2e 73 74 63 6f 6c 6c 2e 61 63 2e 75 6b 2f 43 |w.stcoll.ac.uk/C|
00000c30 6c 61 72 65 73 2f 20 0a 0a 54 68 65 20 74 77 6f |lares/ ..The two|
00000c40 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 27 70 72 | application 'pr|
00000c50 6f 63 65 73 73 6f 72 27 20 61 6e 64 20 27 70 72 |ocessor' and 'pr|
00000c60 6f 63 65 73 73 65 64 27 2c 20 64 65 6d 6f 6e 73 |ocessed', demons|
00000c70 74 72 61 74 65 20 68 6f 77 20 50 43 41 73 20 63 |trate how PCAs c|
00000c80 61 6e 20 62 65 0a 77 72 69 74 74 65 6e 20 69 6e |an be.written in|
00000c90 20 43 20 75 73 69 6e 67 20 41 63 6f 72 6e 27 73 | C using Acorn's|
00000ca0 20 54 6f 6f 6c 62 6f 78 2e 20 4e 6f 74 20 61 6c | Toolbox. Not al|
00000cb0 6c 20 74 68 65 20 66 65 61 74 75 72 65 73 20 6f |l the features o|
00000cc0 66 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 20 61 |f the protocol a|
00000cd0 72 65 0a 75 73 65 64 2e 20 27 50 72 6f 63 65 73 |re.used. 'Proces|
00000ce0 73 65 64 27 20 64 6f 65 73 20 6e 6f 74 68 69 6e |sed' does nothin|
00000cf0 67 20 69 6e 20 69 74 73 65 6c 66 2e 20 49 74 20 |g in itself. It |
00000d00 6d 65 72 65 6c 79 20 64 69 73 70 6c 61 79 73 20 |merely displays |
00000d10 61 20 73 70 72 69 74 65 20 77 68 69 63 68 0a 63 |a sprite which.c|
00000d20 61 6e 20 62 65 20 6d 6f 64 69 66 69 65 64 20 62 |an be modified b|
00000d30 79 20 6f 74 68 65 72 20 50 43 41 20 61 70 70 6c |y other PCA appl|
00000d40 69 63 61 74 69 6f 6e 73 2e 20 20 49 74 20 61 6c |ications. It al|
00000d50 73 6f 20 68 61 73 20 61 20 6d 65 6e 75 20 69 74 |so has a menu it|
00000d60 65 6d 20 77 68 69 63 68 0a 63 61 75 73 65 73 20 |em which.causes |
00000d70 66 6c 65 78 20 74 6f 20 6d 6f 76 65 20 74 68 65 |flex to move the|
00000d80 20 6d 65 6d 6f 72 79 20 63 6f 6e 74 61 69 6e 69 | memory containi|
00000d90 6e 67 20 74 68 65 20 73 70 72 69 74 65 2e 20 54 |ng the sprite. T|
00000da0 68 69 73 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 |his demonstrates|
00000db0 20 68 6f 77 0a 74 6f 20 75 73 65 20 74 68 65 20 | how.to use the |
00000dc0 66 6c 65 78 20 63 61 6c 6c 62 61 63 6b 20 6d 65 |flex callback me|
00000dd0 63 68 61 6e 69 73 6d 20 74 6f 20 6e 6f 74 69 66 |chanism to notif|
00000de0 79 20 6c 69 6e 6b 65 64 20 61 70 70 6c 69 63 61 |y linked applica|
00000df0 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 6d 6f 76 |tions of the.mov|
00000e00 65 2e 0a 0a 27 50 72 6f 63 65 73 73 6f 72 27 20 |e...'Processor' |
00000e10 61 63 74 73 20 6f 6e 20 73 70 72 69 74 65 73 20 |acts on sprites |
00000e20 69 6e 20 6f 74 68 65 72 20 50 43 41 20 61 70 70 |in other PCA app|
00000e30 6c 69 63 61 74 69 6f 6e 73 2e 20 54 68 65 20 73 |lications. The s|
00000e40 6c 69 64 65 72 73 20 6a 75 73 74 0a 61 6c 74 65 |liders just.alte|
00000e50 72 20 74 68 65 20 72 65 64 20 61 6e 64 20 67 72 |r the red and gr|
00000e60 65 65 6e 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f |een components o|
00000e70 66 20 70 69 78 65 6c 73 20 69 6e 20 74 68 65 20 |f pixels in the |
00000e80 6c 6f 63 61 6c 2e 20 4e 6f 74 20 76 65 72 79 20 |local. Not very |
00000e90 75 73 65 66 75 6c 2c 0a 62 75 74 20 69 74 20 73 |useful,.but it s|
00000ea0 68 6f 77 73 20 68 6f 77 20 61 64 64 6f 6e 73 20 |hows how addons |
00000eb0 63 61 6e 20 77 6f 72 6b 2e 0a 0a 42 6f 74 68 20 |can work...Both |
00000ec0 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 75 73 65 |applications use|
00000ed0 20 74 68 65 20 76 69 72 74 75 61 6c 20 6d 65 6d | the virtual mem|
00000ee0 6f 72 79 2f 64 79 6e 61 6d 69 63 20 61 72 65 61 |ory/dynamic area|
00000ef0 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 66 6c 65 | versions of fle|
00000f00 78 2c 0a 77 68 69 63 68 20 69 73 20 70 72 6f 76 |x,.which is prov|
00000f10 69 64 65 64 2e 20 54 68 65 79 20 61 6c 73 6f 20 |ided. They also |
00000f20 75 73 65 20 74 68 65 20 73 70 72 69 74 65 20 63 |use the sprite c|
00000f30 6f 64 65 20 66 72 6f 6d 20 52 69 73 63 5f 4f 73 |ode from Risc_Os|
00000f40 4c 69 62 2c 20 77 68 69 63 68 20 69 73 0a 61 6c |Lib, which is.al|
00000f50 73 6f 20 70 72 6f 76 69 64 65 64 2e 0a 0a 0a 50 |so provided....P|
00000f60 6c 65 61 73 65 20 6e 6f 74 20 74 68 61 74 20 74 |lease not that t|
00000f70 68 65 73 65 20 61 72 65 20 6e 6f 74 20 69 6e 74 |hese are not int|
00000f80 65 6e 64 65 64 20 61 73 20 6d 6f 64 65 6c 73 20 |ended as models |
00000f90 6f 66 20 68 6f 77 20 74 6f 20 77 72 69 74 65 20 |of how to write |
00000fa0 54 6f 6f 6c 62 6f 78 0a 63 6f 64 65 2e 20 54 68 |Toolbox.code. Th|
00000fb0 65 79 20 6a 75 73 74 20 73 68 6f 77 20 68 6f 77 |ey just show how|
00000fc0 20 74 68 65 20 50 43 41 20 70 72 6f 74 6f 63 6f | the PCA protoco|
00000fd0 6c 73 20 6d 69 67 68 74 20 6d 65 20 69 6d 70 6c |ls might me impl|
00000fe0 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 0a 0a 0a |emented in C....|
00000ff0
.