Home » Personal collection » Acorn hard disk » files » DomFord » Stuff/FREAKY2B

Stuff/FREAKY2B

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 » Personal collection » Acorn hard disk » files » DomFord
Filename: Stuff/FREAKY2B
Read OK:
File size: 02AE bytes
Load address: 0000
Exec address: 0000
File contents
   10DIM taskid%4:$taskid%="TASK"
   20SYS "Wimp_Initialise",200,!taskid%,"FREAKY" TO version%,handle%
   30
   40DIM q% &300,buffer% &200
   50
   60
   70DIM DiscNameArray% 30
   80DIM NameArray% 60
   90DiscName$ = "xx"
  100ON ERROR REPORT:PRINT " @ ";ERL:PRINT X,Y:END
  110
  120
  130PROCdo_your_stuff
  140REPEAT
  150  SYS "Wimp_Poll",0,q% TO A%
  160  PROCreceive(q%):REM 17 is shut me up, 18 is shut all up.
  170  ENDCASE
  180UNTIL FALSE
  190
  200DEFPROCdo_your_stuff:MOUSE ON:MOUSE OX,OY,C:XV=0:YV=0:ENDPROC
  210
  220DEF PROCreceive(q%)
  230MOUSE X,Y,C
  240IF ((A%=17 OR A%=18) AND q%!16=0) OR C=7 THEN END
  250IF X>1278 OR X<1 THEN XV=-XV
  260IF Y>1022 OR Y<1 THEN YV=-YV
  270REM PRINTTAB(0,0)INT(X-OX),INT(Y-OY)
  280XV=XV+X-OX-XV/50
  290YV=YV+Y-OY-YV/50
  300X=INT(X+XV/5+0.5):Y=INT(Y+YV/5+0.5)
  310MOUSE TO X,Y
  320MOUSE OX,OY,C
  330ENDPROC
  340

� taskid%4:$taskid%="TASK"
Aș "Wimp_Initialise",200,!taskid%,"FREAKY" � version%,handle%

(� q% &300,buffer% &200
2
<
F� DiscNameArray% 30
P� NameArray% 60
ZDiscName$ = "xx"
d� � �:� " @ ";�:� X,Y:�
n
x
��do_your_stuff
��
�  ș "Wimp_Poll",0,q% � A%
�9  �receive(q%):� 17 is shut me up, 18 is shut all up.
�  �
�� �
�
�/��do_your_stuff:ȗ �:ȗ OX,OY,C:XV=0:YV=0:�
�
�� �receive(q%)
�ȗ X,Y,C
�+� ((A%=17 � A%=18) � q%!16=0) � C=7 � �
�� X>1278 � X<1 � XV=-XV
� Y>1022 � Y<1 � YV=-YV
&� PRINTTAB(0,0)INT(X-OX),INT(Y-OY)
XV=XV+X-OX-XV/50
"YV=YV+Y-OY-YV/50
,#X=�(X+XV/5+0.5):Y=�(Y+YV/5+0.5)
6ȗ � X,Y
@ȗ OX,OY,C
J�
T
�
00000000  0d 00 0a 1e de 20 74 61  73 6b 69 64 25 34 3a 24  |..... taskid%4:$|
00000010  74 61 73 6b 69 64 25 3d  22 54 41 53 4b 22 0d 00  |taskid%="TASK"..|
00000020  14 41 c8 99 20 22 57 69  6d 70 5f 49 6e 69 74 69  |.A.. "Wimp_Initi|
00000030  61 6c 69 73 65 22 2c 32  30 30 2c 21 74 61 73 6b  |alise",200,!task|
00000040  69 64 25 2c 22 46 52 45  41 4b 59 22 20 b8 20 76  |id%,"FREAKY" . v|
00000050  65 72 73 69 6f 6e 25 2c  68 61 6e 64 6c 65 25 0d  |ersion%,handle%.|
00000060  00 1e 04 0d 00 28 1a de  20 71 25 20 26 33 30 30  |.....(.. q% &300|
00000070  2c 62 75 66 66 65 72 25  20 26 32 30 30 0d 00 32  |,buffer% &200..2|
00000080  04 0d 00 3c 04 0d 00 46  17 de 20 44 69 73 63 4e  |...<...F.. DiscN|
00000090  61 6d 65 41 72 72 61 79  25 20 33 30 0d 00 50 13  |ameArray% 30..P.|
000000a0  de 20 4e 61 6d 65 41 72  72 61 79 25 20 36 30 0d  |. NameArray% 60.|
000000b0  00 5a 14 44 69 73 63 4e  61 6d 65 24 20 3d 20 22  |.Z.DiscName$ = "|
000000c0  78 78 22 0d 00 64 1b ee  20 85 20 f6 3a f1 20 22  |xx"..d.. . .:. "|
000000d0  20 40 20 22 3b 9e 3a f1  20 58 2c 59 3a e0 0d 00  | @ ";.:. X,Y:...|
000000e0  6e 04 0d 00 78 04 0d 00  82 12 f2 64 6f 5f 79 6f  |n...x......do_yo|
000000f0  75 72 5f 73 74 75 66 66  0d 00 8c 05 f5 0d 00 96  |ur_stuff........|
00000100  1e 20 20 c8 99 20 22 57  69 6d 70 5f 50 6f 6c 6c  |.  .. "Wimp_Poll|
00000110  22 2c 30 2c 71 25 20 b8  20 41 25 0d 00 a0 39 20  |",0,q% . A%...9 |
00000120  20 f2 72 65 63 65 69 76  65 28 71 25 29 3a f4 20  | .receive(q%):. |
00000130  31 37 20 69 73 20 73 68  75 74 20 6d 65 20 75 70  |17 is shut me up|
00000140  2c 20 31 38 20 69 73 20  73 68 75 74 20 61 6c 6c  |, 18 is shut all|
00000150  20 75 70 2e 0d 00 aa 07  20 20 cb 0d 00 b4 07 fd  | up.....  ......|
00000160  20 a3 0d 00 be 04 0d 00  c8 2f dd f2 64 6f 5f 79  | ......../..do_y|
00000170  6f 75 72 5f 73 74 75 66  66 3a c8 97 20 ee 3a c8  |our_stuff:.. .:.|
00000180  97 20 4f 58 2c 4f 59 2c  43 3a 58 56 3d 30 3a 59  |. OX,OY,C:XV=0:Y|
00000190  56 3d 30 3a e1 0d 00 d2  04 0d 00 dc 12 dd 20 f2  |V=0:.......... .|
000001a0  72 65 63 65 69 76 65 28  71 25 29 0d 00 e6 0c c8  |receive(q%).....|
000001b0  97 20 58 2c 59 2c 43 0d  00 f0 2b e7 20 28 28 41  |. X,Y,C...+. ((A|
000001c0  25 3d 31 37 20 84 20 41  25 3d 31 38 29 20 80 20  |%=17 . A%=18) . |
000001d0  71 25 21 31 36 3d 30 29  20 84 20 43 3d 37 20 8c  |q%!16=0) . C=7 .|
000001e0  20 e0 0d 00 fa 1b e7 20  58 3e 31 32 37 38 20 84  | ...... X>1278 .|
000001f0  20 58 3c 31 20 8c 20 58  56 3d 2d 58 56 0d 01 04  | X<1 . XV=-XV...|
00000200  1b e7 20 59 3e 31 30 32  32 20 84 20 59 3c 31 20  |.. Y>1022 . Y<1 |
00000210  8c 20 59 56 3d 2d 59 56  0d 01 0e 26 f4 20 50 52  |. YV=-YV...&. PR|
00000220  49 4e 54 54 41 42 28 30  2c 30 29 49 4e 54 28 58  |INTTAB(0,0)INT(X|
00000230  2d 4f 58 29 2c 49 4e 54  28 59 2d 4f 59 29 0d 01  |-OX),INT(Y-OY)..|
00000240  18 14 58 56 3d 58 56 2b  58 2d 4f 58 2d 58 56 2f  |..XV=XV+X-OX-XV/|
00000250  35 30 0d 01 22 14 59 56  3d 59 56 2b 59 2d 4f 59  |50..".YV=YV+Y-OY|
00000260  2d 59 56 2f 35 30 0d 01  2c 23 58 3d a8 28 58 2b  |-YV/50..,#X=.(X+|
00000270  58 56 2f 35 2b 30 2e 35  29 3a 59 3d a8 28 59 2b  |XV/5+0.5):Y=.(Y+|
00000280  59 56 2f 35 2b 30 2e 35  29 0d 01 36 0c c8 97 20  |YV/5+0.5)..6... |
00000290  b8 20 58 2c 59 0d 01 40  0e c8 97 20 4f 58 2c 4f  |. X,Y..@... OX,O|
000002a0  59 2c 43 0d 01 4a 05 e1  0d 01 54 04 0d ff        |Y,C..J....T...|
000002ae