Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199201.adf » January92 » !AWJan92/Goodies/ArcAut/!ArcAut/Library

!AWJan92/Goodies/ArcAut/!ArcAut/Library

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 » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199201.adf » January92
Filename: !AWJan92/Goodies/ArcAut/!ArcAut/Library
Read OK:
File size: 044A bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Library
   20REM
   30:
   40DEF PROCcursors(RETURN x%,RETURN y%)
   50CASE TRUE OF
   60WHEN INKEY-122:x%=4:y%=0
   70WHEN INKEY-58:x%=0:y%=4
   80WHEN INKEY-26:x%=-4:y%=0
   90WHEN INKEY-42:x%=0:y%=-4
  100OTHERWISE:x%=0:y%=0
  110ENDCASE
  120ENDPROC
  130:
  140DEF FNround(n%)
  150LOCAL m%,f%
  160IF n%<0 f%=TRUE:n%=-n%
  170WHILE n%>255 n%=n%DIV4:m%+=1:ENDWHILE
  180n%=n%<<(m%*2):IF f%=TRUE =-n% ELSE =n%
  190:
  200DEF FNstrn(ad%,l%)
  210LOCAL S$,Q%
  220FOR Q%=0 TO l%-1:S$+=CHR$(ad%?Q%):NEXT
  230=S$
  240:
  250DEF PROCtext
  260LOCAL D%(),len%,q$,f%,q%
  270DIM D% 256
  280SYS "OS_ReadVarVal","aut",D%,256 TO ,,len%
  290CLS:OFF
  300PRINT'''
  310q$=FNstrn(D%,len%)+"_":f%=1:FOR q%=1 TO LEN q$
  320IF MID$(q$,q%,1)="_" THEN
  330PRINTMID$(q$,f%,q%-f%);
  340IF q%-f%<>7 PRINT
  350f%=q%+1
  360ENDIF
  370NEXT
  380PRINTTAB(0,12);"Gen.#:";TAB(0,23);"Menu"'" to"'"exit"
  390ENDPROC
  400:
  410DEF PROCload
  420LOCAL f$
  430REPEAT UNTIL NOT INKEY-87:*FX 15 1
  440INPUT "Name:";'f$:PROCtext
  450OSCLI("ScreenLoad <ArcAut$Dir>.^.Screens."+f$)
  460REPEAT UNTIL NOT INKEY-74
  470ENDPROC
  480:
  490DEF PROCsoup(ofs%,n%,p)
  500!code%=RND:A%=n%:D%=ofs%:G%=p*65536
  510CALL code%+4
  520ENDPROC
  530:
  540DEF PROCmouseon
  550*POINTER
  560MOUSE ON
  570MOUSE RECTANGLE -2*sux%+2,-2*suy%+2,4*sux%-4,4*suy%-4
  580ENDPROC
  590:
  600DEF FNacol(c%) = ((c%AND3)<<6)+((c%AND132)>>2)+((c%AND8)<<1)+((c%AND112)>>3)
  610DEF FNlcol(c%) = ((c%AND33)<<2)+((c%AND14)<<3)+((c%AND16)>>1)+((c%AND192)>>6)

� >Library
�
:
(� �cursors(� x%,� y%)
2
Ȏ � �
<� �-122:x%=4:y%=0
F� �-58:x%=0:y%=4
P� �-26:x%=-4:y%=0
Z� �-42:x%=0:y%=-4
d:x%=0:y%=0
n�
x�
�:
�� �round(n%)
�� m%,f%
�� n%<0 f%=�:n%=-n%
�ȕ n%>255 n%=n%�4:m%+=1:�
�#n%=n%<<(m%*2):� f%=� =-n% � =n%
�:
�� �strn(ad%,l%)
�� S$,Q%
�!� Q%=0 � l%-1:S$+=�(ad%?Q%):�
�=S$
�:
�� �text
� D%(),len%,q$,f%,q%
� D% 256
,ș "OS_ReadVarVal","aut",D%,256 � ,,len%
"�:�
,�'''
6,q$=�strn(D%,len%)+"_":f%=1:� q%=1 � � q$
@� �q$,q%,1)="_" �
J�q$,f%,q%-f%);
T� q%-f%<>7 �
^f%=q%+1
h�
r�
|/�0,12);"Gen.#:";�0,23);"Menu"'" to"'"exit"
��
�:
�� �load
�� f$
�� � � �-87:*FX 15 1
�� "Name:";'f$:�text
�.�("ScreenLoad <ArcAut$Dir>.^.Screens."+f$)
�� � � �-74
��
�:
�� �soup(ofs%,n%,p)
�%!code%=�:A%=n%:D%=ofs%:G%=p*65536
�
� code%+4
�
:
� �mouseon
&*POINTER
0ȗ �
:/ȗ ȓ -2*sux%+2,-2*suy%+2,4*sux%-4,4*suy%-4
D�
N:
XE� �acol(c%) = ((c%�3)<<6)+((c%�132)>>2)+((c%�8)<<1)+((c%�112)>>3)
bF� �lcol(c%) = ((c%�33)<<2)+((c%�14)<<3)+((c%�16)>>1)+((c%�192)>>6)
�
00000000  0d 00 0a 0e f4 20 3e 4c  69 62 72 61 72 79 0d 00  |..... >Library..|
00000010  14 05 f4 0d 00 1e 05 3a  0d 00 28 19 dd 20 f2 63  |.......:..(.. .c|
00000020  75 72 73 6f 72 73 28 f8  20 78 25 2c f8 20 79 25  |ursors(. x%,. y%|
00000030  29 0d 00 32 0a c8 8e 20  b9 20 ca 0d 00 3c 15 c9  |)..2... . ...<..|
00000040  20 a6 2d 31 32 32 3a 78  25 3d 34 3a 79 25 3d 30  | .-122:x%=4:y%=0|
00000050  0d 00 46 14 c9 20 a6 2d  35 38 3a 78 25 3d 30 3a  |..F.. .-58:x%=0:|
00000060  79 25 3d 34 0d 00 50 15  c9 20 a6 2d 32 36 3a 78  |y%=4..P.. .-26:x|
00000070  25 3d 2d 34 3a 79 25 3d  30 0d 00 5a 15 c9 20 a6  |%=-4:y%=0..Z.. .|
00000080  2d 34 32 3a 78 25 3d 30  3a 79 25 3d 2d 34 0d 00  |-42:x%=0:y%=-4..|
00000090  64 0f 7f 3a 78 25 3d 30  3a 79 25 3d 30 0d 00 6e  |d..:x%=0:y%=0..n|
000000a0  05 cb 0d 00 78 05 e1 0d  00 82 05 3a 0d 00 8c 10  |....x......:....|
000000b0  dd 20 a4 72 6f 75 6e 64  28 6e 25 29 0d 00 96 0b  |. .round(n%)....|
000000c0  ea 20 6d 25 2c 66 25 0d  00 a0 16 e7 20 6e 25 3c  |. m%,f%..... n%<|
000000d0  30 20 66 25 3d b9 3a 6e  25 3d 2d 6e 25 0d 00 aa  |0 f%=.:n%=-n%...|
000000e0  1d c8 95 20 6e 25 3e 32  35 35 20 6e 25 3d 6e 25  |... n%>255 n%=n%|
000000f0  81 34 3a 6d 25 2b 3d 31  3a ce 0d 00 b4 23 6e 25  |.4:m%+=1:....#n%|
00000100  3d 6e 25 3c 3c 28 6d 25  2a 32 29 3a e7 20 66 25  |=n%<<(m%*2):. f%|
00000110  3d b9 20 3d 2d 6e 25 20  8b 20 3d 6e 25 0d 00 be  |=. =-n% . =n%...|
00000120  05 3a 0d 00 c8 13 dd 20  a4 73 74 72 6e 28 61 64  |.:..... .strn(ad|
00000130  25 2c 6c 25 29 0d 00 d2  0b ea 20 53 24 2c 51 25  |%,l%)..... S$,Q%|
00000140  0d 00 dc 21 e3 20 51 25  3d 30 20 b8 20 6c 25 2d  |...!. Q%=0 . l%-|
00000150  31 3a 53 24 2b 3d bd 28  61 64 25 3f 51 25 29 3a  |1:S$+=.(ad%?Q%):|
00000160  ed 0d 00 e6 07 3d 53 24  0d 00 f0 05 3a 0d 00 fa  |.....=S$....:...|
00000170  0b dd 20 f2 74 65 78 74  0d 01 04 18 ea 20 44 25  |.. .text..... D%|
00000180  28 29 2c 6c 65 6e 25 2c  71 24 2c 66 25 2c 71 25  |(),len%,q$,f%,q%|
00000190  0d 01 0e 0c de 20 44 25  20 32 35 36 0d 01 18 2c  |..... D% 256...,|
000001a0  c8 99 20 22 4f 53 5f 52  65 61 64 56 61 72 56 61  |.. "OS_ReadVarVa|
000001b0  6c 22 2c 22 61 75 74 22  2c 44 25 2c 32 35 36 20  |l","aut",D%,256 |
000001c0  b8 20 2c 2c 6c 65 6e 25  0d 01 22 07 db 3a 87 0d  |. ,,len%.."..:..|
000001d0  01 2c 08 f1 27 27 27 0d  01 36 2c 71 24 3d a4 73  |.,..'''..6,q$=.s|
000001e0  74 72 6e 28 44 25 2c 6c  65 6e 25 29 2b 22 5f 22  |trn(D%,len%)+"_"|
000001f0  3a 66 25 3d 31 3a e3 20  71 25 3d 31 20 b8 20 a9  |:f%=1:. q%=1 . .|
00000200  20 71 24 0d 01 40 15 e7  20 c1 71 24 2c 71 25 2c  | q$..@.. .q$,q%,|
00000210  31 29 3d 22 5f 22 20 8c  0d 01 4a 13 f1 c1 71 24  |1)="_" ...J...q$|
00000220  2c 66 25 2c 71 25 2d 66  25 29 3b 0d 01 54 10 e7  |,f%,q%-f%);..T..|
00000230  20 71 25 2d 66 25 3c 3e  37 20 f1 0d 01 5e 0b 66  | q%-f%<>7 ...^.f|
00000240  25 3d 71 25 2b 31 0d 01  68 05 cd 0d 01 72 05 ed  |%=q%+1..h....r..|
00000250  0d 01 7c 2f f1 8a 30 2c  31 32 29 3b 22 47 65 6e  |..|/..0,12);"Gen|
00000260  2e 23 3a 22 3b 8a 30 2c  32 33 29 3b 22 4d 65 6e  |.#:";.0,23);"Men|
00000270  75 22 27 22 20 74 6f 22  27 22 65 78 69 74 22 0d  |u"'" to"'"exit".|
00000280  01 86 05 e1 0d 01 90 05  3a 0d 01 9a 0b dd 20 f2  |........:..... .|
00000290  6c 6f 61 64 0d 01 a4 08  ea 20 66 24 0d 01 ae 17  |load..... f$....|
000002a0  f5 20 fd 20 ac 20 a6 2d  38 37 3a 2a 46 58 20 31  |. . . .-87:*FX 1|
000002b0  35 20 31 0d 01 b8 17 e8  20 22 4e 61 6d 65 3a 22  |5 1..... "Name:"|
000002c0  3b 27 66 24 3a f2 74 65  78 74 0d 01 c2 2e ff 28  |;'f$:.text.....(|
000002d0  22 53 63 72 65 65 6e 4c  6f 61 64 20 3c 41 72 63  |"ScreenLoad <Arc|
000002e0  41 75 74 24 44 69 72 3e  2e 5e 2e 53 63 72 65 65  |Aut$Dir>.^.Scree|
000002f0  6e 73 2e 22 2b 66 24 29  0d 01 cc 0e f5 20 fd 20  |ns."+f$)..... . |
00000300  ac 20 a6 2d 37 34 0d 01  d6 05 e1 0d 01 e0 05 3a  |. .-74.........:|
00000310  0d 01 ea 16 dd 20 f2 73  6f 75 70 28 6f 66 73 25  |..... .soup(ofs%|
00000320  2c 6e 25 2c 70 29 0d 01  f4 25 21 63 6f 64 65 25  |,n%,p)...%!code%|
00000330  3d b3 3a 41 25 3d 6e 25  3a 44 25 3d 6f 66 73 25  |=.:A%=n%:D%=ofs%|
00000340  3a 47 25 3d 70 2a 36 35  35 33 36 0d 01 fe 0d d6  |:G%=p*65536.....|
00000350  20 63 6f 64 65 25 2b 34  0d 02 08 05 e1 0d 02 12  | code%+4........|
00000360  05 3a 0d 02 1c 0e dd 20  f2 6d 6f 75 73 65 6f 6e  |.:..... .mouseon|
00000370  0d 02 26 0c 2a 50 4f 49  4e 54 45 52 0d 02 30 08  |..&.*POINTER..0.|
00000380  c8 97 20 ee 0d 02 3a 2f  c8 97 20 c8 93 20 2d 32  |.. ...:/.. .. -2|
00000390  2a 73 75 78 25 2b 32 2c  2d 32 2a 73 75 79 25 2b  |*sux%+2,-2*suy%+|
000003a0  32 2c 34 2a 73 75 78 25  2d 34 2c 34 2a 73 75 79  |2,4*sux%-4,4*suy|
000003b0  25 2d 34 0d 02 44 05 e1  0d 02 4e 05 3a 0d 02 58  |%-4..D....N.:..X|
000003c0  45 dd 20 a4 61 63 6f 6c  28 63 25 29 20 3d 20 28  |E. .acol(c%) = (|
000003d0  28 63 25 80 33 29 3c 3c  36 29 2b 28 28 63 25 80  |(c%.3)<<6)+((c%.|
000003e0  31 33 32 29 3e 3e 32 29  2b 28 28 63 25 80 38 29  |132)>>2)+((c%.8)|
000003f0  3c 3c 31 29 2b 28 28 63  25 80 31 31 32 29 3e 3e  |<<1)+((c%.112)>>|
00000400  33 29 0d 02 62 46 dd 20  a4 6c 63 6f 6c 28 63 25  |3)..bF. .lcol(c%|
00000410  29 20 3d 20 28 28 63 25  80 33 33 29 3c 3c 32 29  |) = ((c%.33)<<2)|
00000420  2b 28 28 63 25 80 31 34  29 3c 3c 33 29 2b 28 28  |+((c%.14)<<3)+((|
00000430  63 25 80 31 36 29 3e 3e  31 29 2b 28 28 63 25 80  |c%.16)>>1)+((c%.|
00000440  31 39 32 29 3e 3e 36 29  0d ff                    |192)>>6)..|
0000044a