10 VDU23,1|:PROCW:PROCX:PROCE:PROCF:PROCI:PROCL:REPEAT:PROCY:UNTILFALSE:END
120 DEFPROCY:LOCALd%:d%=FN1(-2,0,0):IFd%=-1IFFN7PROCF:PROCI:ENDPROC
160 IFd%<128ENDPROC
170 IFd%=128+2IF`%>0PROCP(d%):ENDPROC
180 IFd%=128+3IFFN@>0PROCP(d%):ENDPROC
190 IFd%=128+4PROCZ:ENDPROC
200 IFd%=128+5PROC_:ENDPROC
210 IFd%=128+6PROC`:ENDPROC
220 IFd%=128+7PROC4(FALSE):ENDPROC
230 IFd%=160+7PROC4(TRUE):ENDPROC
240 IF(d%>128+10ANDd%<144)OR(d%=128)PROCa:ENDPROC
250 ENDPROC
260 DEFPROCP(k%):REPEAT:IFk%=128+2PROCbELSEPROCc
290 PROCG:UNTIL(k%<>128+2)AND(k%<>128+3):ENDPROC
320 DEFPROCd:DIMb%(16):DIMM$(16):DIMf%(16):DIMu%(16):f%(1)=0:LOCALI%:FORI%=1TO16:b%(I%)=0:M$(I%)="":u%(I%)=15:NEXT:`%=0:OSCLI"fx 4,2":OSCLI"fx 225,128":OSCLI"fx 226,144":OSCLI"fx 227,160":OSCLI"fx 228,0":OSCLI"fx 229,1":p0%=FALSE:N$="Carousel V1.00":e$="RAM:!S.":g%=0:e%=0:p%=0:ENDPROC
5000 DEFPROC`:IF`%=0ENDPROC
5020 LOCALe0%:e0%=FN2(b%(a%)):IFe0%=0PROCeELSEPROCH(e0%,TRUE)
5050 ENDPROC
5060 DEFPROCe:LOCALW$,f0%,I%,_0%:W$=FN3(4,25,4,5):PROC3(0,"","",""):IF(W$="")OR(_0%=128+8)PROC@:ENDPROC
5110 f0%=VAL(W$):IF(f0%<1)OR(f0%>FN@+1)PROC1(0):PROC@:ENDPROC
5130 FORI%=16TOf0%+1STEP-1:f%(I%)=f%(I%-1):u%(I%)=u%(I%-1):NEXT:f%(f0%)=b%(a%):u%(f0%)=15:PROCJ:PROCB:PROC@:IFFN@=1PROC6(g%+4)
5230 ENDPROC
5240 DEFPROCH(e0%,b2%):IFe0%<16PROCf
5260 f%(16)=0:PROCJ:IFb2%PROCB
5290 IFFN@=0PROC6(NOT4)
5300 ENDPROC
5310 DEFPROCf:LOCALI%:FORI%=e0%TO16-1:f%(I%)=f%(I%+1):u%(I%)=u%(I%+1):NEXT:ENDPROC
5380 DEFPROCJ:LOCAL_%,I%,J%,`$:_%=OPENOUT("RAM:!S."+"CAROUSEL"):IF_%=0ENDPROC
5420 J%=FN@:IFJ%=0CLOSE#_%:ENDPROC
5440 FORI%=1TOJ%:`$=STR$(f%(I%))+","+STR$(u%(I%)):BPUT#_%,`$:NEXT:CLOSE#_%:ENDPROC
5500 DEFFN2(c2%):LOCALI%,L%:I%=1:L%=FN@:REPEAT:IFf%(I%)=c2%UNTILTRUE:=I%
5560 I%=I%+1:UNTILI%>L%:=0
5590 DEFFN@:LOCALI%:I%=1:REPEAT:IFf%(I%)=0UNTILTRUE:=I%-1
5640 I%=I%+1:UNTILI%>16:=16
5670 DEFPROCg(q%):LOCALI%:PRINTTAB(3-1,q%+2);" ";M$(q%);:ENDPROC
5710 DEFPROCh:LOCALq%:IF`%=0ENDPROC
5740 FORq%=1TO`%:PROCg(q%):NEXT:ENDPROC
5780 DEFPROCB:LOCALq%:IF`%=0ENDPROC
5810 FORq%=1TO`%:I%=FN2(b%(q%)):PRINTTAB(74,q%+2);:IFI%<10PRINT" ";
5850 IFI%<=0PRINT" ";ELSEPRINT;I%;
5860 NEXT:ENDPROC
5880 DEFFN7:LOCAL_%,S$:S$="RAM:!S."+"ALTERED":_%=OPENIN(S$):IF_%=0THEN=FALSE
5930 CLOSE#_%:PROCK(S$):=TRUE
5960 DEFPROCI:a%=1:PROCM:PROC7:p%=0:PROC@:ENDPROC
6030 DEFPROC7:LOCALr%:VDU23,1|:PROCh:PROCB:PROC8:r%=256OR64:IFFN@>0r%=r%OR4
6110 IF`%>0r%=r%OR2OR16OR32
6120 IF(`%>0)AND(`%<16)r%=r%OR8
6130 IFr%<>g%PROC6(r%)
6140 IF`%>0e%=0ELSEe%=3
6150 ENDPROC
6160 DEFPROCF:PROC3(0,"Please wait while loading screen information ...","",""):PROCi:PROCj:ENDPROC
6220 DEFPROCi:LOCALI%:`%=0:FORI%=1TO16:PROCk(I%):NEXT:ENDPROC
6290 DEFPROCk(j1%):LOCAL_%,q0%,y0%,N$,G$,H$,J$,h%:_%=OPENIN(FN0(j1%)):IF_%=0ENDPROC
6330 q0%=FALSE:y0%=FALSE:N$="":G$="":REPEAT:PROC2(_%,":"):H$=J$:IF(H$<>"DATA:")AND(NOTh%)PROC2(_%,"")
6410 IFH$="TITLE:"N$=J$:q0%=TRUE
6420 IFH$="TIME:"G$=J$:y0%=TRUE
6430 UNTILh%OR(H$="DATA:")OR(q0%ANDy0%):IFNOTq0%CLOSE#_%:ENDPROC
6450 IFLEN(N$)>=48-3N$=LEFT$(N$,48-3-1)
6460 IFLEN(G$)>=74-48G$=LEFT$(G$,74-48-1)
6470 `%=`%+1:M$(`%)=N$+STRING$(48-3-LEN(N$)," ")+G$+STRING$(74-48-LEN(G$)," "):b%(`%)=j1%:CLOSE#_%:ENDPROC
6520 DEFPROCj:LOCAL_%,I%,J%,J$,h%:_%=OPENIN("RAM:!S."+"CAROUSEL"):IF_%=0f%(1)=0:ENDPROC
6560 I%=1:REPEAT:PROC2(_%,","):J%=VAL(J$):IFFN8(J%)f%(I%)=J%:I%=I%+1
6610 PROC2(_%,""):UNTILh%OR(I%>16):IF(I%<=16)f%(I%)=0
6640 CLOSE#_%:ENDPROC
6660 DEFFN8(`0%):LOCALI%,z0%:I%=1:REPEAT:z0%=(b%(I%)=`0%):I%=I%+1:UNTIL(I%>`%)ORz0%:=z0%:ENDPROC
6750 DEFPROCa:ONd%-(128+11)PROCm,PROCn,PROCo,PROCpELSEIFd%=128PROCq
6770 ENDPROC
6780 DEFPROCm:ENDPROC
6800 DEFPROCn:ENDPROC
6820 DEFPROCo:IFa%<`%PROCC:a%=a%+1:PROC8
6840 ENDPROC
6850 DEFPROCp:IFa%>1PROCC:a%=a%-1:PROC8
6870 ENDPROC
6880 DEFPROCq:PROCC:a%=1:PROC8:ENDPROC
6930 DEFPROC8:IF`%=0ENDPROC
6950 PROC0(1):PRINTTAB(3-1,a%+2);f$;:PROC0(0):ENDPROC
6990 DEFPROCC:PRINTTAB(3-1,a%+2);" ";:ENDPROC
7020 DEFFN4:IFp0%ENDPROC
7040 CALL_1%:d2%=@Y%:IF@C%THEN=FALSE
7070 CALL`1%:e2%=@Y%:IF@C%CALLr0%:=FALSE
7100 k1%=g%:p0%=TRUE:=TRUE
7130 DEFPROCG:e%=0:IFp0%ELSEENDPROC
7160 g%=k1%:Y%=e2%:CALLa1%:IF@C%PRINT"Unable to restore context":STOP
7200 Y%=d2%:CALLr0%:IF@C%PRINT"Unable to restore screen":STOP
7230 p0%=FALSE:PROC@:PROC6(k1%):ENDPROC
7270 DEFPROC_:IF`%=0ENDPROC
7290 LOCAL_%,I%:PROCK(FN0(b%(a%))):I%=FN2(b%(a%)):IFI%>0PROCH(I%,FALSE)
7330 IFa%<`%PROCrELSEa%=a%-1
7340 `%=`%-1:PROC7:PRINTTAB(3-1,`%+1+2);STRING$(74-3+3," ");:IF`%=0PROC@
7380 ENDPROC
7390 DEFPROCr:LOCALI%:FORI%=a%+1TO`%:b%(I%-1)=b%(I%):M$(I%-1)=M$(I%):NEXT:ENDPROC
7460 DEFPROCK(S$):OSCLI("delete "+S$):ENDPROC
7490 DEFPROCZ:IF`%=0ENDPROC
7510 IF`%=16PROC1(1):PROC@:ENDPROC
7520 LOCALX$,Q$,G$,s%,_0%:Q$=FN3(4,25,40,4):IF_0%=128+8PROC@:ENDPROC
7550 e%=2:PROC@:IFFN9PROCs
7580 PROC7:PROC@:ENDPROC
7610 DEFFN9:LOCALi%,m%:s%=1:REPEAT:i%=OPENIN(FN0(s%)):IFi%<>0CLOSE#i%:s%=s%+1
7670 UNTIL(i%=0)OR(s%>16):IFs%>16PROC1(2):=FALSE
7690 i%=OPENIN(FN0(b%(a%))):IFi%=0PROC1(3):=FALSE
7710 m%=OPENOUT(FN0(s%)):IFm%=0CLOSE#i%:PROC1(4):=FALSE
7730 PROCt:IFQ$<>""BPUT#m%,("TITLE:"+Q$+CHR$13);
7750 IFX$<>""BPUT#m%,("EMULATION:"+X$+CHR$13);
7760 VDU23,1|:G$=TIME$(3):BPUT#m%,("TIME:"+G$+CHR$13);:BPUT#m%,"DATA:";:IFNOTEOF#i%REPEATBPUT#m%,BGET#i%:UNTILEOF#i%
7810 CLOSE#i%:CLOSE#m%:m%=OPENIN(FN0(s%)):IFm%=0PROC1(5):=FALSE
7850 CLOSE#m%:=TRUE
7870 DEFPROCt:LOCALH$,J$,h%:REPEAT:PROC2(i%,":"):H$=J$:IF(H$<>"DATA:")AND(NOTh%)PROC2(i%,"")
7930 IFH$="EMULATION:"X$=J$
7940 UNTILh%OR(H$="DATA:"):ENDPROC
7960 DEFPROCs:IFLEN(Q$)>=48-3Q$=LEFT$(Q$,48-3-1)
7980 IFLEN(G$)>=74-48G$=LEFT$(G$,74-48-1)
7990 `%=`%+1:M$(`%)=Q$+STRING$(48-3-LEN(Q$)," ")+G$+STRING$(74-48-LEN(G$)," "):b%(`%)=s%:ENDPROC
8030 DEFPROCM:LOCALg0%,I%,m1%,a$,k0%:g0%=FN@:IFg0%<1ENDPROC
8070 FORI%=1TOg0%:k0%=FNA(I%):m1%=b%(I%):a$=M$(I%):b%(I%)=b%(k0%):M$(I%)=M$(k0%):b%(k0%)=m1%:M$(k0%)=a$:NEXTI%:ENDPROC
8170 DEFFNA(f2%):LOCALn1%,J%:n1%=f%(f2%):J%=1:REPEAT:IFb%(J%)=n1%UNTILTRUE:=J%
8230 J%=J%+1:UNTILJ%>`%:STOP
10000 DEFPROCb:LOCALe%,p%,s0%,c%,_0%,a0%,t0%:IFFN4ELSEPROC1(6):PROC@:k%=-1:ENDPROC
10030 p%=1:g%=1OR4OR64OR128:PROCD(b%(a%)):IFk%<>0PROCG:PROC1(3):ENDPROC
10070 s0%=FALSE:a0%=39:IF(c%=2)OR(c%=5)a0%=19ELSEIF(c%=0)OR(c%=3)a0%=79
10100 IF(c%=3)OR(c%=6)OR(c%=7)t0%=23ELSEt0%=31
10110 PROCu(b%(a%)):IFs0%PROCv(b%(a%))
10130 k%=_0%:ENDPROC
10150 DEFFN0(g2%):=e$+"SCREEN"+STR$(g2%)
10170 DEFPROCD(`0%):LOCAL_%,C%,p$,H$,J$,h%:k%=-1:_%=OPENIN(FN0(`0%)):IF_%=0ENDPROC
10220 REPEAT:PROC2(_%,":"):H$=J$:IF(NOTh%)AND(H$<>"DATA:")PROC2(_%,"")
10260 UNTILh%OR(H$="DATA:"):IFH$<>"DATA:"CLOSE#_%:ENDPROC
10280 C%=BGET#_%:IFEOF#_%CLOSE#_%:ENDPROC
10300 c%=BGET#_%:IF(c%<0)OR(c%>7)CLOSE#_%:ENDPROC
10320 MODEc%:VDU23,1|:IFNOTEOF#_%REPEATVDUBGET#_%:UNTILEOF#_%
10350 CLOSE#_%:k%=0:ENDPROC
10380 DEFPROC2(_%,g$):LOCALC%:J$="":h%=EOF#_%:IFh%ENDPROC
10430 REPEAT:C%=BGET#_%:h%=EOF#_%:IFC%>=32J$=J$+CHR$(C%)
10470 UNTIL(C%<32)ORh%OR(INSTR(g$,CHR$(C%))>0):ENDPROC
10490 DEFPROCv(`0%):LOCALn%:n%=OPENOUT(FN0(`0%)):IFn%=0ENDPROC
10530 BPUT#n%,("TITLE:"+LEFT$(M$(a%),48-3)+CHR$13);:BPUT#n%,("EMULATION:");:IFc%=7BPUT#n%,("VIDEOTEX"+CHR$13);ELSEBPUT#n%,("TELETYPE"+CHR$13);
10560 VDU23,1|:BPUT#n%,("TIME:"+TIME$(3)+CHR$13);:VDU23,1,1|:BPUT#n%,("DATA:"+CHR$22+CHR$(c%));:D%!(&E0)=n%:D%!(&E0+2)=h2%:D%?(&E0+5)=32:IFc%=7D%?(&E0+6)=255ELSED%?(&E0+6)=127
10640 IF(c%=3)OR(c%=6)OR(c%=7)D%?(&E0+7)=24ELSED%?(&E0+7)=31
10650 D%?(&E0+8)=a0%+1:CALLb1%:CLOSE#n%:n%=0:IF@C%
10690 ENDPROC
10700 DEFFNB(o1%):IFo1%=128+1THEN=TRUE
10720 IFo1%=128+3THEN=(FN@>0)
10730 =FALSE
10740 DEFPROCu(`0%):LOCALC%,m0%,X%,Y%:PROCN:REPEAT:C%=INKEY(100):IFC%=128+7PROC9(FALSE):UNTILFALSE
10800 IFC%=160+7PROC9(TRUE):UNTILFALSE
10810 IFC%=128+8PROCD(`0%):PROCN:s0%=FALSE:UNTILFALSE
10820 IFC%=128VDU30:X%=0:Y%=0
10830 IFC%=27m0%=NOTm0%:UNTILFALSE
10840 IF(C%>=32)AND(C%<127)PROCO(C%)
10850 IFC%=127PROCO(&FF)
10860 IFC%=128+12PROCw
10870 IFC%=128+13PROCQ
10880 IFC%=128+14PROCR
10890 IFC%=128+15PROCx
10900 IFC%=13X%=0
10910 VDU31,X%,Y%:UNTILFNB(C%):_0%=C%:ENDPROC
10950 DEFPROCN:VDU30:VDU23,1,1|:X%=0:Y%=0:m0%=FALSE:ENDPROC
11020 DEFPROCO(C%):IF(X%=a0%)AND(Y%=t0%)AND(c%<>7)ENDPROC
11040 IFm0%m0%=FALSE:VDU(C%AND&1F)OR&80ELSEVDUC%
11050 PROCQ:s0%=TRUE:ENDPROC
11080 DEFPROCQ:IFX%<a0%X%=X%+1:ENDPROC
11100 X%=0:PROCR:ENDPROC
11130 DEFPROCw:IFX%>0X%=X%-1:ENDPROC
11150 IFY%>0X%=a0%:Y%=Y%-1
11160 ENDPROC
11170 DEFPROCR:IFY%<t0%Y%=Y%+1
11190 ENDPROC
11200 DEFPROCx:IFY%>0Y%=Y%-1
11220 ENDPROC
11230 DEFFN3(X%,Y%,W%,i2%):LOCALO$,C%,J%,p1%:p1%=e%:e%=i2%:PROC@:O$="":J%=0:VDU23,1,1|:REPEAT:C%=FN1(100,X%+J%,Y%):IFC%=128+7PROC4(FALSE)
11340 IFC%=160+7PROC4(TRUE)
11350 IFC%=160+7ORC%=128+7PRINTTAB(X%,Y%);O$;:UNTILFALSE
11360 IFC%<>127ELSEIFJ%=0UNTILFALSEELSEO$=LEFT$(O$,(LENO$)-1):J%=J%-1:PRINTTAB(X%+J%,Y%);" ":UNTILFALSE
11370 IF(C%=13)OR(C%=128+8)UNTILTRUE:_0%=C%:VDU23,1|:e%=p1%:=O$
11380 IFC%=21J%=0:O$="":PRINTTAB(X%,Y%);SPC(W%):UNTILFALSE
11390 IFC%<32ORC%>127UNTILFALSE
11400 IFJ%=W%VDU7:UNTILFALSE
11410 O$=O$+CHR$(C%):PRINTTAB(X%+J%,Y%);CHR$C%;:IFJ%=0PRINT;SPC(W%-1)
11440 J%=J%+1:UNTILFALSE
11460 DEFPROCc:IFFN@=0k%=-1:ENDPROC
11480 PROCM:PROC7:LOCALp%:IFFN4ELSEPROC1(6):PROC@:k%=-1:ENDPROC
11520 p%=4:g%=1OR64:PROCy:ENDPROC
11560 DEFPROCy:LOCALC%,n0%,b0%,g0%,u0%,c1%,c%:u0%=TRUE:b0%=1:n0%=0:g0%=FN@:c1%=FALSE:REPEAT:IFu0%PROCD(f%(b0%))
11650 C%=INKEY(100):IFC%=128+7PROC9(FALSE):UNTILFALSE
11670 IFC%=160+7PROC9(TRUE):UNTILFALSE
11680 IFC%=128+1k%=C%:c1%=TRUE
11690 n0%=n0%+1:u0%=n0%>=u%(b0%):IFNOTu0%ELSEn0%=0:IFb0%<g0%b0%=b0%+1ELSEb0%=1
11720 UNTILc1%:ENDPROC
11740 DEFPROC9(d1%):IFd1%CALLv0%ELSECALLw0%
11760 ENDPROC
15000 DEFPROCX:DIMq1%FN5(1000):h2%=q1%+890:FORr1%=0TO2STEP2:P%=q1%:[OPTr1%:WRD&10
15070 .j2%:PHY:LDY&E0:COP:EQUB@OPBPT%:PLY:RTS
15130 .b1%:LDA#20:COP:EQUB@OPWRC%:LDA#0:STA&E0+9:LDA#30:COP:EQUB@OPWRC%:LDA&E0+7:PHA
15220 .k2%:JSRm2%:JSRn2%:PLA:BCSo2%:DECA:BEQp2%:PHA:LDA#9:COP:EQUB@OPWRC%:BRAk2%
15330 .p2%:CLC
15350 .o2%:RTL
15370 .m2%:LDA&E0+8:PHA:LDY#0
15410 .q2%:JSRr2%:PLA:DECA:BEQs2%:PHA:PHY:LDA#9:COP:EQUB@OPWRC%:PLY:BRAq2%
15520 .s2%:RTS
15540 .n2%:SWA:LDA&E0+8:TAY:DEY
15590 .t2%:LDAL(&E0+2),Y:CMP#32:BNEu2%:DEY:BPLt2%
15650 .u2%:INY:CPY&E0+8:BEQv2%:LDA#13:STAL(&E0+2),Y:INY:LDA#10:STAL(&E0+2),Y:INY
15750 .v2%:TYX:LDY#0
15780 .w2%:LDAL(&E0+2),Y:JSRj2%:BCSx2%:INY:DEX:BNEw2%
15850 .e3%:CLC
15870 .x2%:RTS
15890 .r2%:PHY:LDA#&87:COP:EQUB@OPOSB%:TXA:BNEy2%:JSRz2%:LDA#&87:COP:EQUB@OPOSB%:TXA
15990 .y2%:CMP&E0+5:BCC_3%:CMP&E0+6:BCCs1%:BEQs1%
16050 ._3%:LDA#32
16070 .s1%:PLY:STAL(&E0+2),Y:INY:RTS
16120 .z2%:LDA#17:COP:EQUB@OPWRC%:LDA&E0+9:COP:EQUB@OPWRC%:LDA#17:COP:EQUB@OPWRC%:LDA&E0+9:EOR#&80:STA&E0+9:ORA#7:COP:EQUB@OPWRC%:RTS:WRD&30
16260 .`1%:COP:EQUB@OPSCX%:RTL
16280 .a1%:COP:EQUB@OPRCX%:RTL
16300 ._1%:COP:EQUB@OPSSC%:RTL
16320 .r0%:COP:EQUB@OPRSC%:RTL
16340 .t1%:LDA#126:COP:EQUB@OPOSB%
16370 .f3%:LDA#@EVPRE%:COP:EQUB@OPAEV%:RTL:WRD&20
16420 .e1%:RTL:]:NEXTr1%:`1%=`1%+@WRDAM%+@WRDXY%:a1%=a1%+@WRDAM%+@WRDXY%:_1%=_1%+@WRDAM%+@WRDXY%:r0%=r0%+@WRDAM%+@WRDXY%:t1%=t1%+@WRDAM%+@WRDXY%:b1%=b1%+@WRDXY%+@USED%:e1%=e1%+@WRDAM%:CALLe1%:D%=@D%:ENDPROC
20000 DEFPROCz:DIMv%(4,3):DIMw%(4):w%(0)=1:w%(1)=1:w%(2)=0:w%(3)=0:w%(4)=0
20080 .v%(0,0)
20090 DATA"To select or Use the cursor keys to select a screen and"
20100 DATA"change carousel sequence press F6 (Select). Type in the position you"
20110 DATA" would like the screen to appear in the carousel"
20120 DATA" and press RETURN. You will see the position"
20130 DATA" number on the far right hand side of the screen"
20140 DATA""
20150 DATA"To start the carousel Make sure you have assigned carousel positions"
20160 DATA" to the screens you have saved. Press F3"
20170 DATA" (Start)."
20180 DATA""
20190 DATA"To see and/or edit a screen Position the pointer to the screen name and"
20200 DATA" press F2 (See/Edit)."
20210 DATA""
20220 DATA"To take a screen out of a Position the pointer to the screen name and"
20230 DATA"carousel sequence press F6 (Select)."
20240 DATA"****"
20250 .v%(0,1)
20260 DATA"To delete a screen Position the pointer to the screen name and"
20270 DATA" press F5 (Delete)."
20280 DATA""
20290 DATA"To print the list of Make sure the Communicator is connected to the"
20300 DATA"screen names printer and press F7 (Print) or Ctrl-F7 for"
20310 DATA" full graphics printing."
20320 DATA""
20330 DATA"To stop the carousel and Press F1 (List)."
20340 DATA"restore the carousel menu"
20350 DATA"****"
20360 .v%(1,0)
20370 DATA"To edit text displayed Move the cursor by using the cursor keys."
20380 DATA" Type new text on top of the existing text."
20390 DATA" On videotex screens colour changes and other"
20400 DATA" display controls are entered by typing ESCAPE"
20410 DATA" followed by a character. See documentation"
20420 DATA" for a list of these characters"
20430 DATA""
20440 DATA"To return to the carousel Press F1 (List)."
20450 DATA"menu"
20460 DATA""
20470 DATA"To print the screen Make sure the Communicator is connected to the"
20480 DATA"displayed printer and press F7 (Print) or Ctrl-F7 for"
20490 DATA" full graphics printing."
20500 DATA""
20510 DATA"To restore the original Press F8 (Restore)."
20520 DATA"version of the screen"
20530 DATA"****"
20540 .v%(1,1)
20550 DATA"To start the carousel Make sure you have assigned carousel positions"
20560 DATA" to the screens you have saved. Press F3"
20570 DATA" (Start)."
20580 DATA""
20590 DATA"****"
20600 .v%(2,0)
20610 DATA"****"
20620 .v%(3,0)
20630 DATA"****"
20640 .v%(4,0)
20650 DATA"You are running the carousel of stored screens."
20660 DATA""
20670 DATA"To stop the carousel and Press F1 (List)."
20680 DATA"restore the carousel menu"
20690 DATA""
20700 DATA"To print the screen Make sure the Communicator is connected to the"
20710 DATA"displayed printer and press F7 (Print) or Ctrl-F7 for"
20720 DATA" full graphics printing."
20730 DATA""
20740 DATA"****"
20750 ENDPROC
20760 DEFPROC@0:DIMc0%(6)
20780 .c0%(0)
20790 DATA"To select a screen Use cursor keys | To duplicate a screen F4"
20800 DATA"To See/Edit a screen F2 | To delete a screen F5"
20810 DATA"To start Carousel F3 | To amend carousel sequence F6"
20820 .c0%(1)
20830 .c0%(2)
20840 DATA"Copying to the new screen - please wait."
20850 DATA""
20860 DATA""
20870 .c0%(3)
20880 DATA"There are no saved screens"
20890 DATA""
20900 DATA"Please press STOP to return to the Main Menu"
20910 .c0%(4)
20920 DATA"Please enter the title for the copied screen:"
20930 DATA">"
20940 DATA""
20950 .c0%(5)
20960 DATA"Please enter the position in the carousel where this screen is to appear:"
20970 DATA">"
20980 DATA""
20990 ENDPROC
21000 DEFPROC00:b$="Press SPACE to continue.":DIMx%(15)
21030 .x%(0)
21040 DATA 1,"The new carousel sequence number must be between 1 and one greater than"
21050 DATA "the current highest carousel sequence number."
21060 DATA " "
21070 .x%(1)
21080 DATA 1,"You cannot copy a screen because the list already contains the maximum"
21090 DATA "number of entries. Delete some other screen and then use Copy again."
21100 DATA " "
21110 .x%(2)
21120 DATA 1,"You cannot copy a screen because the maximum number of screens has already"
21130 DATA "been stored. Delete some other screen first and then use Copy again."
21140 DATA " "
21150 .x%(3)
21160 DATA 1,"There has been a problem in reading the screen you have requested."
21170 DATA ""
21180 DATA " "
21190 .x%(4)
21200 DATA 1,"There has been a problem in saving the screen you have requested."
21210 DATA ""
21220 DATA " "
21230 .x%(5)
21240 DATA 1,"There was no space available to copy the screen you have requested."
21250 DATA "Delete some other screen first and then use Copy again."
21260 DATA " "
21270 .x%(6)
21280 DATA 1,"There is no memory available to save the list screen. In order to run"
21290 DATA "Carousel fully, delete some other task at the main menu."
21300 DATA " "
21310 ENDPROC
21320 DEFPROC10:DIMK$(7):K$(0)=" List ":K$(1)="See/Edit":K$(2)=" Start ":K$(3)=" Copy ":K$(4)=" Delete ":K$(5)=" Select ":K$(6)=" Print ":K$(7)="Restore ":ENDPROC
25000 DEFPROCE:MODE0:VDU19,0,4|19,1,7|:PRINTTAB(1);:PROC0(1):PRINT"Communicator ";N$;" ";h$;" Acorn Computers Ltd 1986":PROC0(0):IFFN1(-1,0,0)
25070 PROCA(0,79,1,22):PROCA(0,79,23,27):ENDPROC
25100 DEFPROC6(d0%):LOCALu1%:PROC0(1):IFd0%<0d0%=g%ANDd0%
25140 IFd0%AND256ANDNOTg%PROCS
25150 t%=1:FORu1%=0TO7:IF(d0%ANDt%)<>(g%ANDt%)PROCT(u1%,d0%ANDt%)
25180 t%=2*t%:NEXT:PROC0(0):g%=d0%:ENDPROC
25230 DEFPROCT(h0%,`3%):IFK$(h0%)=""ENDPROC
25250 IF`3%PRINTTAB(j%(h0%)+3,29);"F";h0%+1;TAB(j%(h0%),30);K$(h0%);ELSEVDU5:MOVE16*j%(h0%),92:PRINTc$;:PLOT0,-128,-32:PRINTc$;:VDU4
25260 ENDPROC
25270 DEFPROCS:LOCALi0%:PROCU:g%=256:t%=1:FORi0%=0TO7:IFK$(i0%)<>"":PRINTTAB(j%(i0%)+3,29);"F";i0%+1;TAB(j%(i0%),30);K$(i0%);:g%=g%+t%
25340 t%=t%*2:NEXT:ENDPROC
25370 DEFPROCU:PROCA(1,37,28,31):PROC5(10,28,31):PROC5(19,28,31):PROC5(28,28,31):PROCA(42,78,28,31):PROC5(51,28,31):PROC5(60,28,31):PROC5(69,28,31):ENDPROC
25470 DEFPROCA(L%,R%,T%,B%):LOCALf1%:VDU28,L%,B%,R%,T%,12,26:PRINTTAB(L%,T%);i$;STRING$(R%-L%-1,d$);j$;:FORf1%=T%+1TOB%-1:PRINTTAB(L%,f1%);Y$;TAB(R%,f1%);Y$;:NEXT:PRINTTAB(L%,B%);k$;STRING$(R%-L%-1,d$);m$;:ENDPROC
25560 DEFPROC5(g1%,T%,B%):LOCALv1%:PRINTTAB(g1%,T%);n$;:FORv1%=T%+1TOB%-1:PRINTTAB(g1%,v1%);Y$;:NEXT:PRINTTAB(g1%,B%);o$;:ENDPROC
25640 DEFFN1(y%,w1%,x1%):LOCALo%,T$:REPEAT:IFy%=-1o%=-1ELSEPRINTTAB(w1%,x1%);:IFy%<0o%=INKEY(100):y%=y%+1ELSEo%=INKEY(y%)
25680 IFo%<0T$=LEFT$(TIME$(3)+" ",21):PRINTTAB(58,0);:PROC0(1):PRINT;T$;:PROC0(0):UNTILy%=-1ELSEUNTILTRUE
25690 PRINTTAB(w1%,x1%);:=o%
25710 DEFFN6(y%):LOCALo%,T$,y1%:REPEAT:y1%=TIME:CALLa3%:IF@C%o%=-1:REPEATUNTILTIME>y1%ELSEo%=@A%AND&FF
25760 IFo%<0T$=LEFT$(TIME$(3)+" ",21):PRINTTAB(58,0);:PROC0(1):PRINT;T$;:PROC0(0):UNTILy%=-1ELSEUNTILTRUE
25770 =o%
25780 DEFPROC1(b3%):RESTOREx%(b3%):READo0%,R$,U$,V$:PROC3(o0%,R$,U$,V$+b$):PROCL:REPEATUNTILFN1(100,0,0)=32:ENDPROC
25850 DEFPROC@:IFe%<0PROC20:ENDPROC
25870 RESTOREc0%(e%):READR$,U$,V$:PROC3(0,R$,U$,V$):ENDPROC
25910 DEFPROC20:IFe%=-1PROC3(0,"","",""):ENDPROC
25930 RESTOREx0%(-(e%+2)):READR$:PROC3(0,R$,"Press RETURN to leave help before using function keys","For more details refer to the User guide"):ENDPROC
25970 DEFPROC3(o0%,R$,U$,V$):VDU28,1,26,78,24:PROC0(o0%):VDU12,26:PRINTTAB(3,24);R$;TAB(3,25);U$;TAB(3,26);V$:PROC0(0):ENDPROC
26040 DEFPROC0(o0%):IFo0%=0COLOUR1:COLOUR128ELSECOLOUR0:COLOUR129
26060 ENDPROC
26070 DEFPROCL:REPEAT:UNTILINKEY(0)=-1:ENDPROC
26110 DEFPROC4(d1%):IFd1%CALLv0%ELSECALLw0%
26130 IF@C%ELSEENDPROC
26140 PROC3(1,"Print failed because :",$@BHA%,b$):LOCALI%:REPEAT:I%=FN6(100):IFI%>=@ECPHON%ANDI%<=@ECHELP%OSCLI"fx 15,1":UNTILFALSE
26190 UNTILINKEY(0)=32:PROC@:ENDPROC
26220 DEFPROC60:ENDPROC
26230 DEFPROC@HELP:h1%=h1%:IFh1%ELSEENDPROC
26260 IFz1%PROC30:ENDPROC
26270 LOCALz%,_2%,e%:PROCE:PROC0(1):IFc3%_2%=g%:PROCS:PROC6(_2%)ELSEPROCU:PROCT(6,TRUE):PROC0(0)
26310 j0%=0:PROCV:OSCLI"FX 15,1":REPEAT:z%=FN6(100):IFz%>=@ECPHON%ANDz%<=@ECHELP%UNTILTRUE:ENDPROC
26370 z%=INKEY(0):IFz%=32j0%=j0%+1:PROCV:UNTILFALSE
26390 IFz%=135PROC4(FALSE):UNTILFALSE
26400 IFz%=167PROC4(TRUE):UNTILFALSE
26410 UNTILz%=13:ENDPROC
26430 DEFPROC30:!`2%=z1%:CALLi1%:ENDPROC
26470 DEFPROCV:LOCALZ$:Z$="":VDU28,1,21,78,2,12:IFj0%>w%(p%)j0%=0
26510 RESTOREv%(p%,j0%):READ_$:REPEAT:PRINTZ$;_$;:Z$=CHR$13+CHR$10:READ_$:UNTIL_$="****":IFw%(p%)=0e%=-2ELSEIFj0%<w%(p%)e%=-3ELSEe%=-4
26590 PROC@:VDU26:ENDPROC
26620 DEFPROCW:i$=CHR$&B0:j$=CHR$&B1:k$=CHR$&B2:m$=CHR$&B3:d$=CHR$&A6:Y$=CHR$&A9:n$=CHR$&A7:o$=CHR$&AE:c$=STRING$(8,CHR$&BF):DIMj%(7):j%(0)=2:j%(1)=11:j%(2)=20:j%(3)=29:j%(4)=43:j%(5)=52:j%(6)=61:j%(7)=70:c3%=TRUE:q$=CHR$136:f$=CHR$137:r$=CHR$138:s$=CHR$139:h$=CHR$135:PROCd:PROCz:z1%=0:PROC@0:PROC40:PROC00:PROC10:PROC50:h1%=TRUE:ENDPROC
26850 DEFPROC40:DIMx0%(2)
26870 .x0%(0)
26880 DATA""
26890 .x0%(1)
26900 DATA"Press SPACE for more information."
26910 .x0%(2)
26920 DATA"Press SPACE to return to start of help information."
26930 ENDPROC
26940 DEFPROC50:DIMa2%FN5(100):`2%=a2%+90:FORPd3%=0TO2STEP2:P%=a2%:[OPTPd3%
27000 .a3%:COP:EQUB@OPXKC%:RTL:WRD&30
27050 .w0%:COP:EQUB@OPCMD%:EQUS"TXTDMP":BRK:RTL
27090 .v0%:COP:EQUB@OPCMD%:EQUS"SCRDMP":BRK:RTL
27130 .i1%:LDX#@COHELP%:PHK:PLB:LDY`2%:JSRL@CO%:RTL:]:NEXT:w0%=w0%+@WRDAM%+@WRDXY%:v0%=v0%+@WRDAM%+@WRDXY%:i1%=i1%+@WRDAM%+@WRDXY%:ENDPROC
27260 DEFFN5(N%):LOCALP%:DIMP%-1:IF((P%EOR(P%+N%+1))AND&FF0000)DIMP%(&FFFF-(P%AND&FFFF))
27290 =N%
65415