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