Home » Archimedes archive » Acorn User » AU 1997-04 A.adf » Extras1 » MenuBar2/!MenuBar/Overlays/Init-2
MenuBar2/!MenuBar/Overlays/Init-2
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 1997-04 A.adf » Extras1 |
Filename: | MenuBar2/!MenuBar/Overlays/Init-2 |
Read OK: | ✔ |
File size: | 0742 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
859REM> Init-2 (Misc routines called once at start-up) 860DEFPROCW_(b$):LOCALM$:IFb$="Unregistered demo"THEN 861M$="This demonstration version is limited to,":M$+=STR$Yy%+" bars : ":M$+=STR$r%+" menus per bar: ":M$+=+STR$y%+" items per menu.,":M$+="To order the full version see !Help.":z%=FNS(M$,"OK",1) 862ENDIF:ENDPROC 863DEFPROC`y(A%):$A%="TASK":SYS&400C0,&C8,A%!0,G$TOsl%,XJ%:IFsl%<310THEN 864M$=G$+" needs OS 3.1 or greater":z%=FNq(M$,2):END 865ENDIF:ENDPROC 866DEFFNXy(G$):LOCALW%,B%,I$,ql%:SYS&42681,,A%,&600TO,hJ%:W%=A%:REPEAT:B%=W%!&C:IF(B%AND1)=0THENql%=W%!0:I$=FNQ(W%!4) 867W%+=16:UNTILW%>=hJ%ORI$=G$:IFI$=G$THEN=ql% 868=0 869DEFPROCJ_:LOCALM%:M%=g_%:PROCS(M%,0,G$):PROCS(M%,1,"Pull-down menu system"):PROCS(M%,2,"� Graham Crow 1995,1996,1997"):PROCS(M%,3,"2.09 (7 Jan 1997)"):PROCS(M%,4,b$):ENDPROC 870DEFPROCry:LOCALd%,Z$,A$:Z$=z$+".Sprites":F%=OPENUP(Z$):d%=EXT#F%+4:CLOSE#F%:F%=0:ty%=FNA(d%):ty%!0=d%:ty%!8=16:SYS46,&A+256,ty%,Z$:A$=FNf("MenuBar$SpritesLoaded"):IFA$=""ANDFNZ(U$+".Sprites")THEN 871PROCZy:*Set MenuBar$SpritesLoaded "Yes" 872ENDIF:A$=FNf("MenuBar$SysVarsLoaded"):IFA$=""ANDFNZ(U$+".SysVars")THEN 873PROCHy:*Set MenuBar$SysVarsLoaded "Yes" 874ENDIF:ENDPROC 875DEFPROCF_:LOCALMi%,M_%:Mi%=py%:M_%=py%+&800:SYS&400D9,,z$+".Templates":g_%=FND("Info"):Ly%=FND("Choices"):pl%=A%!72:q_%=FND("ObjInfo"):Nu%=FND("Password"):Yl%=A%!72:K_%=FND("Message"):Il%=A%!72:al%=FND("Misc"):iJ%=FND("Grabkeys"):SYS&400DA:ENDPROC 876DEFFND(O$):LOCALU%,M_%:M_%=py%+&800:SYS&400DB,,A%,py%,M_%,-1,O$,0TO,,py%,,,,U%:SYS&400C1,,A%TOU%:=U% 877DEFPROCA_:LOCALZ$,A$:Z$=t$+".Choices":IFFNZ(Z$)THEN 878F%=OPENUP(Z$):A$=GET$#F%:A$=GET$#F%:Iy%=VALA$:A$=GET$#F%:fy%=VALA$:CLOSE#F%:F%=0 879ELSE:Iy%=0:fy%=0 880ENDIF:ENDPROC 881DEFPROCu_:IFNOTFNZ(t$)THENOSCLI("CDir "+t$) 882IFNOTFNZ(U$)THENOSCLI("CDir "+U$) 883IFNOTFNZ(B$)THENOSCLI("CDir "+B$) 884IFNOTFNZ(_$)THENOSCLI("CDir "+_$) 885ENDPROC 886DEFPROCQ_:sy%=FNO:ly%=0:QJ%=sy%:t_%=sy%-50:NJ%=ly%+50+16:w_%=0:r_%=0:B%=-&7FFFFFAE:SJ%=0:e_%=0:FJ%=JJ%+16:CJ%=JJ%:Fy%=FN`(ly%,t_%,NJ%,QJ%,w_%,r_%,B%,m%,SJ%,e_%,FJ%,CJ%,""):ry%=FNR(Fy%,0,0,50+18,50,&1700013D,"",Cu%,Pu%,20) 887ry%=FNR(Fy%,0,0,50+2,50,&2700313F,"",Ju%,Wu%,20):PROCZ(Fy%,0,Qy%):ENDPROC
[5�> Init-2 (Misc routines called once at start-up) \)��W_(b$):�M$:�b$="Unregistered demo"� ]�M$="This demonstration version is limited to,":M$+=�Yy%+" bars : ":M$+=�r%+" menus per bar: ":M$+=+�y%+" items per menu.,":M$+="To order the full version see !Help.":z%=�S(M$,"OK",1) ^�:� _>��`y(A%):$A%="TASK":ș&400C0,&C8,A%!0,G$�sl%,XJ%:�sl%<310� `2M$=G$+" needs OS 3.1 or greater":z%=�q(M$,2):� a�:� baݤXy(G$):�W%,B%,I$,ql%:ș&42681,,A%,&600�,hJ%:W%=A%:�:B%=W%!&C:�(B%�1)=0�ql%=W%!0:I$=�Q(W%!4) c%W%+=16:�W%>=hJ%�I$=G$:�I$=G$�=ql% d=0 e���J_:�M%:M%=g_%:�S(M%,0,G$):�S(M%,1,"Pull-down menu system"):�S(M%,2,"� Graham Crow 1995,1996,1997"):�S(M%,3,"2.09 (7 Jan 1997)"):�S(M%,4,b$):� f���ry:�d%,Z$,A$:Z$=z$+".Sprites":F%=�(Z$):d%=�#F%+4:�#F%:F%=0:ty%=�A(d%):ty%!0=d%:ty%!8=16:ș46,&A+256,ty%,Z$:A$=�f("MenuBar$SpritesLoaded"):�A$=""��Z(U$+".Sprites")� g(�Zy:*Set MenuBar$SpritesLoaded "Yes" h>�:A$=�f("MenuBar$SysVarsLoaded"):�A$=""��Z(U$+".SysVars")� i(�Hy:*Set MenuBar$SysVarsLoaded "Yes" j�:� k���F_:�Mi%,M_%:Mi%=py%:M_%=py%+&800:ș&400D9,,z$+".Templates":g_%=�D("Info"):Ly%=�D("Choices"):pl%=A%!72:q_%=�D("ObjInfo"):Nu%=�D("Password"):Yl%=A%!72:K_%=�D("Message"):Il%=A%!72:al%=�D("Misc"):iJ%=�D("Grabkeys"):ș&400DA:� l]ݤD(O$):�U%,M_%:M_%=py%+&800:ș&400DB,,A%,py%,M_%,-1,O$,0�,,py%,,,,U%:ș&400C1,,A%�U%:=U% m)��A_:�Z$,A$:Z$=t$+".Choices":�Z(Z$)� n>F%=�(Z$):A$=�#F%:A$=�#F%:Iy%=�A$:A$=�#F%:fy%=�A$:�#F%:F%=0 o�:Iy%=0:fy%=0 p�:� q��u_:笤Z(t$)��("CDir "+t$) r笤Z(U$)��("CDir "+U$) s笤Z(B$)��("CDir "+B$) t笤Z(_$)��("CDir "+_$) u� v���Q_:sy%=�O:ly%=0:QJ%=sy%:t_%=sy%-50:NJ%=ly%+50+16:w_%=0:r_%=0:B%=-&7FFFFFAE:SJ%=0:e_%=0:FJ%=JJ%+16:CJ%=JJ%:Fy%=�`(ly%,t_%,NJ%,QJ%,w_%,r_%,B%,m%,SJ%,e_%,FJ%,CJ%,""):ry%=�R(Fy%,0,0,50+18,50,&1700013D,"",Cu%,Pu%,20) wCry%=�R(Fy%,0,0,50+2,50,&2700313F,"",Ju%,Wu%,20):�Z(Fy%,0,Qy%):� �
00000000 0d 03 5b 35 f4 3e 20 49 6e 69 74 2d 32 20 28 4d |..[5.> Init-2 (M| 00000010 69 73 63 20 72 6f 75 74 69 6e 65 73 20 63 61 6c |isc routines cal| 00000020 6c 65 64 20 6f 6e 63 65 20 61 74 20 73 74 61 72 |led once at star| 00000030 74 2d 75 70 29 0d 03 5c 29 dd f2 57 5f 28 62 24 |t-up)..\)..W_(b$| 00000040 29 3a ea 4d 24 3a e7 62 24 3d 22 55 6e 72 65 67 |):.M$:.b$="Unreg| 00000050 69 73 74 65 72 65 64 20 64 65 6d 6f 22 8c 0d 03 |istered demo"...| 00000060 5d ba 4d 24 3d 22 54 68 69 73 20 64 65 6d 6f 6e |].M$="This demon| 00000070 73 74 72 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e |stration version| 00000080 20 69 73 20 6c 69 6d 69 74 65 64 20 74 6f 2c 22 | is limited to,"| 00000090 3a 4d 24 2b 3d c3 59 79 25 2b 22 20 62 61 72 73 |:M$+=.Yy%+" bars| 000000a0 20 3a 20 22 3a 4d 24 2b 3d c3 72 25 2b 22 20 6d | : ":M$+=.r%+" m| 000000b0 65 6e 75 73 20 70 65 72 20 62 61 72 3a 20 22 3a |enus per bar: ":| 000000c0 4d 24 2b 3d 2b c3 79 25 2b 22 20 69 74 65 6d 73 |M$+=+.y%+" items| 000000d0 20 70 65 72 20 6d 65 6e 75 2e 2c 22 3a 4d 24 2b | per menu.,":M$+| 000000e0 3d 22 54 6f 20 6f 72 64 65 72 20 74 68 65 20 66 |="To order the f| 000000f0 75 6c 6c 20 76 65 72 73 69 6f 6e 20 73 65 65 20 |ull version see | 00000100 21 48 65 6c 70 2e 22 3a 7a 25 3d a4 53 28 4d 24 |!Help.":z%=.S(M$| 00000110 2c 22 4f 4b 22 2c 31 29 0d 03 5e 07 cd 3a e1 0d |,"OK",1)..^..:..| 00000120 03 5f 3e dd f2 60 79 28 41 25 29 3a 24 41 25 3d |._>..`y(A%):$A%=| 00000130 22 54 41 53 4b 22 3a c8 99 26 34 30 30 43 30 2c |"TASK":..&400C0,| 00000140 26 43 38 2c 41 25 21 30 2c 47 24 b8 73 6c 25 2c |&C8,A%!0,G$.sl%,| 00000150 58 4a 25 3a e7 73 6c 25 3c 33 31 30 8c 0d 03 60 |XJ%:.sl%<310...`| 00000160 32 4d 24 3d 47 24 2b 22 20 6e 65 65 64 73 20 4f |2M$=G$+" needs O| 00000170 53 20 33 2e 31 20 6f 72 20 67 72 65 61 74 65 72 |S 3.1 or greater| 00000180 22 3a 7a 25 3d a4 71 28 4d 24 2c 32 29 3a e0 0d |":z%=.q(M$,2):..| 00000190 03 61 07 cd 3a e1 0d 03 62 61 dd a4 58 79 28 47 |.a..:...ba..Xy(G| 000001a0 24 29 3a ea 57 25 2c 42 25 2c 49 24 2c 71 6c 25 |$):.W%,B%,I$,ql%| 000001b0 3a c8 99 26 34 32 36 38 31 2c 2c 41 25 2c 26 36 |:..&42681,,A%,&6| 000001c0 30 30 b8 2c 68 4a 25 3a 57 25 3d 41 25 3a f5 3a |00.,hJ%:W%=A%:.:| 000001d0 42 25 3d 57 25 21 26 43 3a e7 28 42 25 80 31 29 |B%=W%!&C:.(B%.1)| 000001e0 3d 30 8c 71 6c 25 3d 57 25 21 30 3a 49 24 3d a4 |=0.ql%=W%!0:I$=.| 000001f0 51 28 57 25 21 34 29 0d 03 63 25 57 25 2b 3d 31 |Q(W%!4)..c%W%+=1| 00000200 36 3a fd 57 25 3e 3d 68 4a 25 84 49 24 3d 47 24 |6:.W%>=hJ%.I$=G$| 00000210 3a e7 49 24 3d 47 24 8c 3d 71 6c 25 0d 03 64 06 |:.I$=G$.=ql%..d.| 00000220 3d 30 0d 03 65 93 dd f2 4a 5f 3a ea 4d 25 3a 4d |=0..e...J_:.M%:M| 00000230 25 3d 67 5f 25 3a f2 53 28 4d 25 2c 30 2c 47 24 |%=g_%:.S(M%,0,G$| 00000240 29 3a f2 53 28 4d 25 2c 31 2c 22 50 75 6c 6c 2d |):.S(M%,1,"Pull-| 00000250 64 6f 77 6e 20 6d 65 6e 75 20 73 79 73 74 65 6d |down menu system| 00000260 22 29 3a f2 53 28 4d 25 2c 32 2c 22 a9 20 47 72 |"):.S(M%,2,". Gr| 00000270 61 68 61 6d 20 43 72 6f 77 20 31 39 39 35 2c 31 |aham Crow 1995,1| 00000280 39 39 36 2c 31 39 39 37 22 29 3a f2 53 28 4d 25 |996,1997"):.S(M%| 00000290 2c 33 2c 22 32 2e 30 39 20 28 37 20 4a 61 6e 20 |,3,"2.09 (7 Jan | 000002a0 31 39 39 37 29 22 29 3a f2 53 28 4d 25 2c 34 2c |1997)"):.S(M%,4,| 000002b0 62 24 29 3a e1 0d 03 66 a9 dd f2 72 79 3a ea 64 |b$):...f...ry:.d| 000002c0 25 2c 5a 24 2c 41 24 3a 5a 24 3d 7a 24 2b 22 2e |%,Z$,A$:Z$=z$+".| 000002d0 53 70 72 69 74 65 73 22 3a 46 25 3d ad 28 5a 24 |Sprites":F%=.(Z$| 000002e0 29 3a 64 25 3d a2 23 46 25 2b 34 3a d9 23 46 25 |):d%=.#F%+4:.#F%| 000002f0 3a 46 25 3d 30 3a 74 79 25 3d a4 41 28 64 25 29 |:F%=0:ty%=.A(d%)| 00000300 3a 74 79 25 21 30 3d 64 25 3a 74 79 25 21 38 3d |:ty%!0=d%:ty%!8=| 00000310 31 36 3a c8 99 34 36 2c 26 41 2b 32 35 36 2c 74 |16:..46,&A+256,t| 00000320 79 25 2c 5a 24 3a 41 24 3d a4 66 28 22 4d 65 6e |y%,Z$:A$=.f("Men| 00000330 75 42 61 72 24 53 70 72 69 74 65 73 4c 6f 61 64 |uBar$SpritesLoad| 00000340 65 64 22 29 3a e7 41 24 3d 22 22 80 a4 5a 28 55 |ed"):.A$=""..Z(U| 00000350 24 2b 22 2e 53 70 72 69 74 65 73 22 29 8c 0d 03 |$+".Sprites")...| 00000360 67 28 f2 5a 79 3a 2a 53 65 74 20 4d 65 6e 75 42 |g(.Zy:*Set MenuB| 00000370 61 72 24 53 70 72 69 74 65 73 4c 6f 61 64 65 64 |ar$SpritesLoaded| 00000380 20 22 59 65 73 22 0d 03 68 3e cd 3a 41 24 3d a4 | "Yes"..h>.:A$=.| 00000390 66 28 22 4d 65 6e 75 42 61 72 24 53 79 73 56 61 |f("MenuBar$SysVa| 000003a0 72 73 4c 6f 61 64 65 64 22 29 3a e7 41 24 3d 22 |rsLoaded"):.A$="| 000003b0 22 80 a4 5a 28 55 24 2b 22 2e 53 79 73 56 61 72 |"..Z(U$+".SysVar| 000003c0 73 22 29 8c 0d 03 69 28 f2 48 79 3a 2a 53 65 74 |s")...i(.Hy:*Set| 000003d0 20 4d 65 6e 75 42 61 72 24 53 79 73 56 61 72 73 | MenuBar$SysVars| 000003e0 4c 6f 61 64 65 64 20 22 59 65 73 22 0d 03 6a 07 |Loaded "Yes"..j.| 000003f0 cd 3a e1 0d 03 6b e3 dd f2 46 5f 3a ea 4d 69 25 |.:...k...F_:.Mi%| 00000400 2c 4d 5f 25 3a 4d 69 25 3d 70 79 25 3a 4d 5f 25 |,M_%:Mi%=py%:M_%| 00000410 3d 70 79 25 2b 26 38 30 30 3a c8 99 26 34 30 30 |=py%+&800:..&400| 00000420 44 39 2c 2c 7a 24 2b 22 2e 54 65 6d 70 6c 61 74 |D9,,z$+".Templat| 00000430 65 73 22 3a 67 5f 25 3d a4 44 28 22 49 6e 66 6f |es":g_%=.D("Info| 00000440 22 29 3a 4c 79 25 3d a4 44 28 22 43 68 6f 69 63 |"):Ly%=.D("Choic| 00000450 65 73 22 29 3a 70 6c 25 3d 41 25 21 37 32 3a 71 |es"):pl%=A%!72:q| 00000460 5f 25 3d a4 44 28 22 4f 62 6a 49 6e 66 6f 22 29 |_%=.D("ObjInfo")| 00000470 3a 4e 75 25 3d a4 44 28 22 50 61 73 73 77 6f 72 |:Nu%=.D("Passwor| 00000480 64 22 29 3a 59 6c 25 3d 41 25 21 37 32 3a 4b 5f |d"):Yl%=A%!72:K_| 00000490 25 3d a4 44 28 22 4d 65 73 73 61 67 65 22 29 3a |%=.D("Message"):| 000004a0 49 6c 25 3d 41 25 21 37 32 3a 61 6c 25 3d a4 44 |Il%=A%!72:al%=.D| 000004b0 28 22 4d 69 73 63 22 29 3a 69 4a 25 3d a4 44 28 |("Misc"):iJ%=.D(| 000004c0 22 47 72 61 62 6b 65 79 73 22 29 3a c8 99 26 34 |"Grabkeys"):..&4| 000004d0 30 30 44 41 3a e1 0d 03 6c 5d dd a4 44 28 4f 24 |00DA:...l]..D(O$| 000004e0 29 3a ea 55 25 2c 4d 5f 25 3a 4d 5f 25 3d 70 79 |):.U%,M_%:M_%=py| 000004f0 25 2b 26 38 30 30 3a c8 99 26 34 30 30 44 42 2c |%+&800:..&400DB,| 00000500 2c 41 25 2c 70 79 25 2c 4d 5f 25 2c 2d 31 2c 4f |,A%,py%,M_%,-1,O| 00000510 24 2c 30 b8 2c 2c 70 79 25 2c 2c 2c 2c 55 25 3a |$,0.,,py%,,,,U%:| 00000520 c8 99 26 34 30 30 43 31 2c 2c 41 25 b8 55 25 3a |..&400C1,,A%.U%:| 00000530 3d 55 25 0d 03 6d 29 dd f2 41 5f 3a ea 5a 24 2c |=U%..m)..A_:.Z$,| 00000540 41 24 3a 5a 24 3d 74 24 2b 22 2e 43 68 6f 69 63 |A$:Z$=t$+".Choic| 00000550 65 73 22 3a e7 a4 5a 28 5a 24 29 8c 0d 03 6e 3e |es":..Z(Z$)...n>| 00000560 46 25 3d ad 28 5a 24 29 3a 41 24 3d be 23 46 25 |F%=.(Z$):A$=.#F%| 00000570 3a 41 24 3d be 23 46 25 3a 49 79 25 3d bb 41 24 |:A$=.#F%:Iy%=.A$| 00000580 3a 41 24 3d be 23 46 25 3a 66 79 25 3d bb 41 24 |:A$=.#F%:fy%=.A$| 00000590 3a d9 23 46 25 3a 46 25 3d 30 0d 03 6f 11 cc 3a |:.#F%:F%=0..o..:| 000005a0 49 79 25 3d 30 3a 66 79 25 3d 30 0d 03 70 07 cd |Iy%=0:fy%=0..p..| 000005b0 3a e1 0d 03 71 1f dd f2 75 5f 3a e7 ac a4 5a 28 |:...q...u_:...Z(| 000005c0 74 24 29 8c ff 28 22 43 44 69 72 20 22 2b 74 24 |t$)..("CDir "+t$| 000005d0 29 0d 03 72 1a e7 ac a4 5a 28 55 24 29 8c ff 28 |)..r....Z(U$)..(| 000005e0 22 43 44 69 72 20 22 2b 55 24 29 0d 03 73 1a e7 |"CDir "+U$)..s..| 000005f0 ac a4 5a 28 42 24 29 8c ff 28 22 43 44 69 72 20 |..Z(B$)..("CDir | 00000600 22 2b 42 24 29 0d 03 74 1a e7 ac a4 5a 28 5f 24 |"+B$)..t....Z(_$| 00000610 29 8c ff 28 22 43 44 69 72 20 22 2b 5f 24 29 0d |)..("CDir "+_$).| 00000620 03 75 05 e1 0d 03 76 d9 dd f2 51 5f 3a 73 79 25 |.u....v...Q_:sy%| 00000630 3d a4 4f 3a 6c 79 25 3d 30 3a 51 4a 25 3d 73 79 |=.O:ly%=0:QJ%=sy| 00000640 25 3a 74 5f 25 3d 73 79 25 2d 35 30 3a 4e 4a 25 |%:t_%=sy%-50:NJ%| 00000650 3d 6c 79 25 2b 35 30 2b 31 36 3a 77 5f 25 3d 30 |=ly%+50+16:w_%=0| 00000660 3a 72 5f 25 3d 30 3a 42 25 3d 2d 26 37 46 46 46 |:r_%=0:B%=-&7FFF| 00000670 46 46 41 45 3a 53 4a 25 3d 30 3a 65 5f 25 3d 30 |FFAE:SJ%=0:e_%=0| 00000680 3a 46 4a 25 3d 4a 4a 25 2b 31 36 3a 43 4a 25 3d |:FJ%=JJ%+16:CJ%=| 00000690 4a 4a 25 3a 46 79 25 3d a4 60 28 6c 79 25 2c 74 |JJ%:Fy%=.`(ly%,t| 000006a0 5f 25 2c 4e 4a 25 2c 51 4a 25 2c 77 5f 25 2c 72 |_%,NJ%,QJ%,w_%,r| 000006b0 5f 25 2c 42 25 2c 6d 25 2c 53 4a 25 2c 65 5f 25 |_%,B%,m%,SJ%,e_%| 000006c0 2c 46 4a 25 2c 43 4a 25 2c 22 22 29 3a 72 79 25 |,FJ%,CJ%,""):ry%| 000006d0 3d a4 52 28 46 79 25 2c 30 2c 30 2c 35 30 2b 31 |=.R(Fy%,0,0,50+1| 000006e0 38 2c 35 30 2c 26 31 37 30 30 30 31 33 44 2c 22 |8,50,&1700013D,"| 000006f0 22 2c 43 75 25 2c 50 75 25 2c 32 30 29 0d 03 77 |",Cu%,Pu%,20)..w| 00000700 43 72 79 25 3d a4 52 28 46 79 25 2c 30 2c 30 2c |Cry%=.R(Fy%,0,0,| 00000710 35 30 2b 32 2c 35 30 2c 26 32 37 30 30 33 31 33 |50+2,50,&2700313| 00000720 46 2c 22 22 2c 4a 75 25 2c 57 75 25 2c 32 30 29 |F,"",Ju%,Wu%,20)| 00000730 3a f2 5a 28 46 79 25 2c 30 2c 51 79 25 29 3a e1 |:.Z(Fy%,0,Qy%):.| 00000740 0d ff |..| 00000742