; PAE ProDOS v4.5b ; Seg #2 (Uploads/Downloads) on nocar goto link.term public download gosub upload:goto link.pae upload if not flag(23) print "You don't have upload access.":return if (l1=1) or (l1=3) print "This drive is in Read Only mode.":return if ym goto batch.ym gg$=lg$:input @2 "Receive: "f$:if not f$ return if left$(f$,1)="#" or instr(":",f$) print \"Illegal filename":return if len(f$)>30 print"Invalid file name - max 30 chars":return if f$="/" f$=fn$ fn$=f$:x=0 open #1,bd$+"dir"+lg$:position #1,95,0:input #1,a if not a x=1:position #1,95,0:print #1,x:goto upload2 for b=1 to a:position #1,95,b:input #1,i$,x$:j$=left$(i$,len(f$)) if j$=f$ print \"File already exists!":b=a:next:close:return if i$="EMPTY" x=b:b=a:next:goto upload2 next:x=a+1 if x>mf close:print \"No more files allowed on this drive":return position #1,95,0:print #1,x upload2 gosub auto.off on nocar clear close:gosub clk.set print \"Ready to receive":gosub case.convert:i$=lg$+":"+ab$ kill i$:create i$ if mj use cd$+"x.up",mj,i$ if (info(0)) and (not mj) use cd$+"protocol.up",z,0,i$ if (peek(10)) and (not mj) kill i$:print \"Error #"peek(10)" in transfer - Aborted":goto tyme open #1,i$:a=mark(1):close:wx=peek(11) if not a nibble(3)=nibble(3)+1:else print \"Transfer aborted.":goto tyme use cd$+"xdos","getinfo "+i$ sz=peek(edit(5)+21)+peek(edit(5)+22)*256 pb=peek(edit(5)+11)+peek(edit(5)+12)*256 for a=1 to 2000:next a=peek(edit(5)+7):open #1,bd$+"pae.filetypes" position #1,4,a:input #1,tp$:close on nocar goto ulcar if ao gosub auto1 if len(tp$)=3 print:goto rating ul5 if (not info(0)) and (not info(5)) goto ulcar input @1 \"Filetype (?): "tp$ if tp$="?" a$=f$:f$=bd$+"pae.ftypes":gosub show.file:f$=a$:goto ul5 if len(tp$)<>3 goto ul5 rating if (not info(0)) and (not info(5)) goto ulcar input @1 "Rate it from 1-10 (?=N/A): "bb x5$=str$(bb):if not bb x5$="[Not rated]":bb=1 if (bb<1) or (bb>10) goto rating car d1$=f$+chr$(32,29):d1$=left$(d1$,30) d2$=right$("00"+str$(pb),3) d2$=d2$+"/"+right$("000"+str$(sz),4) d3$=a1$+" "+a2$+chr$(32,20):d3$=left$(d3$,20) open #1,bd$+"dir"+lg$:position #1,95,x print #1,d1$" "tp$" "d2$" "date$" "d3$,ab$:close edit(0):if (not info(0)) and (not info(5)) goto car1 on nocar goto car1 print\"Enter a description for '"f$"'." print "Type 'DONE' when finished '.h' for help." edit(1):if edit(2)<5 print\"No description provided." car1 d1$="000"+str$(un):d1$=right$(d1$,4) i$=lg$+":a"+str$(x)+"."+ab$:kill i$:create i$:open #1,i$ print #1," Filename: "f$ print #1,"Times d/l'ed: 00" print #1," 1-10 rating: "x5$ print #1," Uploaded by: "a1$" "a2$" (#"d1$")" print #1," Upload date: "date$ print #1," Upload time: "time$ print #1,"# of XBlocks: "sz print #1," Description: ";:if edit(2)<5 print #1,"None":goto upload4 print #1,\ copy #8,#1 upload4 close:if (not info(0)) and (not info(5)) gosub car2 on nocar goto car2 print \"Save this upload? ";:x$=i$ save gosub get.key:if (i$<>"Y") and (i$<>"N") goto save if i$="Y" print "Yes":goto car2 print "No":i$=x$:kill i$:kill lg$+":"+ab$:nibble(3)=nibble(3)-1 open #1,bd$+"dir"+lg$:position #1,95,x:print #1,"EMPTY",ab$:close:goto tyme car2 if (not info(0)) and (not info(5)) pop si=pb/up:if pt<30000 pt=pt+pb print\"You gained "si" transfer points. You now have "pt"." x1$="??":x$="[Unknown]":if wx=0 x$="Standard Xmodem":x1$="SX" if wx=1 x$="ProDOS Xmodem":x1$="PX" if wx=2 x$="CRC-16 Xmodem":x1$="CX" if wx=3 x$="ProDOS CRC-16":x1$="PC" if wx=4 x$="Standard Ymodem":x1$="SY" if wx=5 x$="ProDOS/Ymodem":x1$="PY" if mj=2 x$="DOS 3.3 AE":x1$="DA" if mj=1 x$="ProDOS AE":x1$="PA" i$=lg$+":"+f$ ul$="Uploaded file: "+i$+cr$+" Protocol: "+x$:gosub ed.log free:f$=left$(i$+chr$(32,34),34) f2$=left$(a1$+" "+a2$+chr$(32,20),20) i$=bd$+"uploads":open #1,i$:if not mark(1) goto nhere close:create i$:open #1,i$:position #1,80,0:print #1,0 for b=1 to nr:position #1,80,b:print #1,"EMPTY":next nhere position #1,80,0:input #1,bb:bb=bb+1:if bb>nr bb=1 position #1,80,0:print #1,bb:position #1,80,bb print #1,f$"|"x1$"|"f2$"|"date$"|"; if info(2) i$=str$(info(2)*300):if len(i$)<4 i$=" "+i$ if info(2) print #1,i$" baud":else print #1,"local" close ; Download files dl if not flag(22) print "You don't have download access.":return if l1=2 print "This drive is in Write Only mode.":return if ym goto batch gg$=lg$:input @2"Send: "f$:if not f$ return if left$(f$,1)<>"#" gosub name.find:goto down1 a=val(mid$(f$,2,(len(f$)-1))):if a<1 return gosub number down1 fn$=left$(i$,30):use cd$+"xdos","getinfo "+lg$+":"+x$ si=peek(edit(5)+21)+peek(edit(5)+22)*256 pb=peek(edit(5)+11)+peek(edit(5)+12)*256 ww=info(2):if not ww ww=8 wy=5*si:ww=wy/ww:wx=((ww-30)/60):ww=ww mod 60:wy=(clock(2)-clock(1))/60 if wx<1 wx=0 print\bl$\" Filename: "fn$ j$=lg$+":a"+str$(x)+"."+x$ open #1,j$:a=mark(1) if a close:goto no.descr input #1,x1$\x2$\x3$\x4$:close if left$(x2$,5)<>"Times" goto no.descr x6$=mid$(x2$,15,2):ix=val(x6$) print "Times d/l'ed: "ix\x3$ print " Uploaded by: "mid$(x4$,15) no.descr print " Protocol: ";:if (not mj) and (not ym) print "X/Ymodem File, etc." if mj=2 print "DOS 3.3 AE" if mj=1 print "ProDOS AE" print "# of XBlocks: "si print " # of points: "pb/dn print " Time to d/l: "wx":"right$("00"+str$(ww),2) print bl$ if dt and (clock(2)<>0) and (wx>wy) print \"Not enough time left to download.":return if (pt2) and (not ym) use cd$+"protocol.down",z,0,x$ if mj=2 use cd$+"x.dn",mj,x$ if (peek(10)) and (mj<>2) and (not ym) print \"Error #"peek(10)" detected, but you still lose points." neg for x=1 to 2000:next:byte(2)=byte(2)+1 if ao gosub auto1 ty$="??":x$="[Unknown]":if not peek(11) x$="Standard Xmodem":ty$="SX" if peek(11)=1 x$="ProDOS Xmodem":ty$="PX" if peek(11)=2 x$="CRC-16 Xmodem":ty$="CX" if peek(11)=3 x$="ProDOS CRC-16":ty$="PC" if peek(11)=4 x$="Standard Ymodem":ty$="SY" if peek(11)=5 x$="ProDOS/Ymodem":ty$="PY" if mj=2 x$="DOS 3.3 AE":ty$="DA" if l1<>3 pt=pt-pb/dn:print\"You now have "pt" transfer points." if l1=3 print\"This directory is for free downloading. No points deducted." gf=len(x4$):x4$=left$(x4$,gf-1) bb=val(right$(x4$,4)):if (not bb) or (not pn) or (un=bb) goto no.pt if info(5) goto no.pt print "Uploader gets "pn" points." open #1,bd$+"pae.points":position #1,12,bb:input #1,x,b,i x=x+pn:position #1,12,bb:print #1,x,b,i:close no.pt if a goto down3 if left$(x2$,5)<>"Times" goto down3 open #1,j$ print #1,x1$\"Times d/l'ed: "; x2$=str$(ix+1):if len(x2$)=1 x2$="0"+x2$ print #1,x2$ close down3 i$=lg$+":"+fn$ ul$="Downloaded file: "+i$+cr$+" Protocol: "+x$:gosub ed.log free:f$=left$(i$+chr$(32,34),34) f2$=left$(a1$+" "+a2$+chr$(32,20),20) i$=bd$+"downloads":open #1,i$:if not mark(1) goto nhere1 close:create i$:open #1,i$:position #1,80,0:print #1,0 for b=1 to nr:position #1,80,b:print #1,"EMPTY":next nhere1 position #1,80,0:input #1,bb:bb=bb+1:if bb>nr bb=1 position #1,80,0:print #1,bb:position #1,80,bb print #1,f$"|"ty$"|"f2$"|"date$"|"; if info(2) i$=str$(info(2)*300):if len(i$)<4 i$=" "+i$ if info(2) print #1,i$" baud":else print #1,"local" close:if (not info(0)) and (not info(5)) pop:goto link.term return ; Ymodem Batch batch gi=0:si=0:bn=0:xx=0:clear #10 if ym=1 tp$="Ymodem Batch":else tp$="Ymodem-G" print\:create rd$+"temp":create rd$+"batch" batch1 push batch1:gg$=lg$ print "[#"bn+1"] Send: ";:input @2 f$ if (not f$) and (bn>0) pop:goto strt.b1 if (not f$) and (not bn) pop:return a=instr(":",f$):if not a goto batch2 a$=left$(f$,(a-1)):f$=mid$(f$,(a+1)) open #1,bd$+"drives":position #1,4,0:input #1,a:for b=1 to a position #1,4,b:input #1,fn$:if fn$=a$ b=a:next:close:gg$=a$:goto batch3 next:close:print \"Error - No such drive"\:return batch3 open #1,bd$+"dat"+gg$:if mark(1) close:goto batch2 input #1,a$\a\b\b\b:close if not flag(a) print \"Insufficient access!"\:return batch2 if left$(f$,1)<>"#" gosub name.find:goto b.down1 a=val(mid$(f$,2,(len(f$)-1))):if a<1 return gosub number b.down1 bn=bn+1:fn$=left$(i$,30) use cd$+"xdos","getinfo "+gg$+":"+x$ gh=peek(edit(5)+21)+peek(edit(5)+22)*256:si=si+gh pb=peek(edit(5)+11)+peek(edit(5)+12)*256:gi=gi+pb ww=info(2):if not ww ww=8 wy=5*gh:ww=wy/ww:wx=((ww-30)/60) ww=ww mod 60:wy=(clock(2)-clock(1))/60:if wx<1 wx=0 print\bl$\" Filename: "fn$ x1$="":x2$="":x3$="":x4$="" j$=gg$+":a"+str$(x)+"."+x$:open #1,j$:a=mark(1) if a close:goto bt.no input #1,x1$\x2$\x3$\x4$:close if left$(x2$,5)<>"Times" goto bt.no x6$=mid$(x2$,15,2):ix=val(x6$) print "Times d/l'ed: "ix\x3$ print " Uploaded by: "mid$(x4$,15) bt.no print " Protocol: "tp$ print "# of XBlocks: "gh print " # of points: "pb/dn print " Time to d/l: "wx":"right$("00"+str$(ww),2):xx=xx+wx print bl$ if dt and (clock(2)<>0) and (xx>wy) print \"Not enough time left to download this file."\:si=si-gh:gi=gi-pb:bn=bn-1:xx=xx-wx:return if (pt"Y" bn=bn-1:si=si-gh:gi=gi-pb:xx=xx-wx:print "No"\:return print "Yes"\ open #1,rd$+"batch":position #1,20,bn:print #1,gg$":"x$:close open #1,rd$+"temp":position #1,190,bn print #1,j$,gg$":"x$,fn$,x1$,x2$,x4$:close if bn=bt print \"End of file entry.":pop:goto strt.b1 return strt.b1 print \"Total batched files: "bn print "Total Ymodem blocks: "si print "Total ProDOS blocks: "gi print "Total transfer pnts: "gi/dn if xx print "Total download time: "xx" minutes" gosub auto.off print \"Hit [RETURN] to start, [ESC] to abort." gosub get.key:if i$=cr$ goto strt.b2 if i$=e$ print \"Download aborted!":kill rd$+"batch":kill rd$+"temp":return goto strt.b1 strt.b2 print \"Waiting to send via "tp$ a$=rd$+"batch":a=0 for b=1 to bn:open #1,a$:position #1,20,b:input #1,i$:close if info(0) use cd$+"protocol.down",z,1,i$ a=peek(10) next:kill a$:if info(0) use cd$+"protocol.down",z,1 for x=1 to 2000:next:byte(2)=byte(2)+bn if a print \"Error #"a" detected, but you still lose points." if ao gosub auto1 if peek(11)=0 x$="Ymodem Batch":else x$="Ymodem-G" if l1<>3 pt=pt-gi/dn:print\"You now have "pt" transfer points." if l1=3 print\"This directory is for free downloading. No points deducted." open #2,rd$+"temp":for x=1 to bn position #2,190,x:input #2,j$,f$,fn$,x1$,x2$,x4$ if not x1$ goto strt.b3 open #1,j$:print #1,x1$\"Times d/l'ed: "; ix=val(mid$(x2$,15,2)) x2$=str$(ix+1):if len(x2$)=1 x2$="0"+x2$ print #1,x2$:close #1 gf=len(x4$):x4$=left$(x4$,gf-1) bb=val(right$(x4$,4)):if (not bb) or (not pn) or (un=bb) goto strt.b3 if info(5) goto strt.b3 open #1,bd$+"pae.points":position #1,12,bb:input #1,wx,b,i:wx=wx+pn position #1,12,bb:print #1,wx,b,i:close #1 strt.b3 ul$="Downloaded file: "+lg$+":"+fn$:gosub ed.log if x=bn ul$=" Protocol: "+x$:gosub ed.log free:d1$=f$+chr$(32,34):d2$=a1$+" "+a2$+chr$(32,20) i$=bd$+"downloads":open #1,i$:if not mark(1) goto nhere2 close #1:create i$:open #1,i$:position #1,80,0:print #1,0 for b=1 to nr:position #1,80,b:print #1,"EMPTY":next nhere2 position #1,80,0:input #1,bb:bb=bb+1:if bb>nr bb=1 position #1,80,0:print #1,bb:position #1,80,bb print #1,left$(d1$,34)"|Y"; if right$(x$,1)<>"G" print #1,"B";:else print #1,"G"; print #1,"|"left$(d2$,20)"|"date$"|"; if info(2) i$=str$(info(2)*300):if len(i$)<4 i$=" "+i$ if info(2) print #1,i$" baud":else print #1,"local " close #1:next:close #2:kill rd$+"temp":return ; Ymodem Batch Uploads batch.ym if ym=1 x1$="Ymodem Batch":else x1$="Ymodem-G" print x1$" upload..." open #1,bd$+"dir"+lg$:position #1,95,0:input #1,a if acr$ goto ym1 print \"Ready to receive via "x1$ kill rd$+"ymfiles":create rd$+"ymfiles" ap=0:bn=0:gg$=lg$ on nocar clear ym2 f$=chr$(32,15):i$=lg$+":" gosub clk.set if info(0) use cd$+"protocol.up",z,ym,i$,f$ fn$=f$:f$=i$+f$ if peek(10)=0 goto no.error kill f$ if bn=0 print \"Error #"peek(10)" in transfer -- Aborted":goto ym.abort print \"Error #"peek(10)" in transfer":goto file.list no.error if (not info(0)) and (info(5)) bn=1:fn$="DUMMY.FILE":f$=i$+fn$:x$="N/A":create f$ if (not info(0)) and (info(5)) open #1,rd$+"ymfiles":position #1,80,1:print #1,f$,fn$\pb\sz\x$:close if (f$=i$+chr$(32,15)) or ((not info(0)) and (info(5))) goto file.list use cd$+"xdos","getinfo "+f$:a=peek(edit(5)+7) sz=peek(edit(5)+21)+peek(edit(5)+22)*256 pb=peek(edit(5)+11)+peek(edit(5)+12)*256 ap=ap+pb:bn=bn+1:open #1,bd$+"pae.filetypes" position #1,4,a:input #1,x$:close if len(x$)<>3 x$="???" nibble(3)=nibble(3)+1 open #1,rd$+"ymfiles":position #1,80,bn print #1,f$,fn$\pb\sz\x$:close goto ym2 file.list if ao gosub auto1 file.list1 if (not info(0)) and (not info(5)) goto ym.no on nocar goto ym.no print \\"Files received Typ XBlk/Blk"\chr$(45,45) open #1,rd$+"ymfiles" for a=1 to bn:position #1,80,a:input #1,f$,fn$\pb\sz\x$ a$=fn$+chr$(32,30):print left$(a$,30)" "x$" "; print right$("000"+str$(sz),4)"/"right$("00"+str$(pb),3) next:close:print \"Total files: "bn rename print \"Change any files? ";:gosub get.key:if i$<>"Y" print "No":goto ym.no print "Yes" if bn=1 open #1,rd$+"ymfiles":position #1,80,1:input #1,f$,fn$\pb\sz\x$ if bn=1 close:x=1:print \"Filename: "fn$:goto rename2 input @2 \"Enter filename: "i$:if (not i$) or (len(i$)>15) goto rename open #1,rd$+"ymfiles":for a=1 to bn:position #1,80,a:input #1,f$,fn$\pb\sz\x$ if left$(fn$,len(i$))=i$ x=a:a=bn:next:close:goto rename2 next:close:print \"File doesn't exist!":goto file.list1 rename2 print ' Change: [1) Filename [2) Filetype Select: ';:gosub get.key if (i$<>"1") and (i$<>"2") goto file.list1 print i$;:if i$="2" goto rename1 new.file print \\"Current filename: "fn$ input @2 "Enter new filename: "i$ if (not i$) or (len(i$)>30) print \"Aborted":goto file.list1 if left$(i$,1)="#" or instr(":",i$) print \"Illegal filename":goto new.file open #1,rd$+"ymfiles":position #1,80,x:print #1,f$,i$\pb\sz\x$:close goto file.list1 rename1 print \\"Current filetype: "x$ input @2 "Enter new filetype: "i$ if (not i$) or (len(i$)<>3) print \"Aborted":goto file.list1 open #1,rd$+"ymfiles":position #1,80,x:print #1,f$,fn$\pb\sz\i$:close:goto file.list1 ym.no on nocar goto ymcar if (not info(0)) and (not info(5)) goto ymcar print "Save these files? ";:gosub get.key if i$="N" print "No":goto ym.abort print "Yes"\"Write any info files? ";:gosub get.key if i$<>"Y" print "No":goto ym.no1 print "Yes":for ww=1 to bn:open #1,rd$+"ymfiles" position #1,80,ww:input #1,f$,fn$\pb\sz\x$:close ym.rate print \"Filename: ["fn$"]" input @1 \"Rate it from 1-10 (?=N/A): "x5$ bb=val(x5$):if x5$="?" x5$="[Not rated]":bb=1 if (bb<1) or (bb>10) goto ym.rate edit(0):print\"Enter a description for "fn$"." print "Type 'DONE' when finished '.h' for help." edit(1):if edit(2)<5 print\"No description provided." cr d1$="000"+str$(un):d1$=right$(d1$,4) i$=lg$+":temp"+str$(ww):kill i$:create i$:open #1,i$ print #1," Filename: "fn$ print #1,"Times d/l'ed: 00" print #1," 1-10 rating: "x5$ print #1," Uploaded by: "a1$" "a2$" (#"d1$")" print #1," Upload date: "date$ print #1," Upload time: "time$ print #1,"# of XBlocks: "sz print #1," Description: ";:if edit(2)<5 print #1,"None":goto cr1 print #1,\:copy #8,#1 cr1 close:next ym.no1 if pt<30000 pt=pt+ap print \"You gained "ap" transfer points. You now have "pt"." print \"Saving file #00"; open #1,bd$+"dir"+lg$:position #1,95,0:input #1,a if not a x=bn:position #1,95,0:print #1,x:goto no.files gf=1:for ww=1 to bn:i$=str$(ww):print chr$(8,len(i$));ww; for b=1 to a:position #1,95,b:input #1,i$,x$ if i$="EMPTY" x=b:b=a:next:goto found next:a=a+1:x=a:position #1,95,0:print #1,a found open #2,rd$+"ymfiles":position #2,80,ww:input #2,f$,fn$\pb\sz\x$:close #2 close:gosub case.convert:use cd$+"xdos","rename "+f$+","+ab$ open #1,bd$+"dir"+lg$ d1$=fn$+chr$(32,29):d1$=left$(d1$,30) d2$=right$("00"+str$(pb),3) d2$=d2$+"/"+right$("000"+str$(sz),4) d3$=a1$+" "+a2$+chr$(32,20):d3$=left$(d3$,20) position #1,95,x:print #1,d1$" "x$" "d2$" "date$" "d3$,ab$:close i$=lg$+":temp"+str$(ww):open #1,i$:yx=mark(1):close if not yx d1$=left$("A"+str$(x)+"."+ab$,15) if not yx use cd$+"xdos","rename "+i$+","+d1$:goto cr2 d1$="000"+str$(un):d1$=right$(d1$,4) i$=lg$+":a"+str$(x)+"."+ab$:create i$:open #1,i$ print #1," Filename: "fn$ print #1,"Times d/l'ed: 00" print #1," 1-10 rating: [Not rated]" print #1," Uploaded by: "a1$" "a2$" (#"d1$")" print #1," Upload date: "date$ print #1," Upload time: "time$ print #1,"# of Xblocks: "sz print #1," Description: None" close cr2 i$=lg$+":"+fn$:ul$="Uploaded file: "+i$:gosub ed.log if ww=bn ul$=" Protocol: "+x1$:gosub ed.log free:f$=left$(i$+chr$(32,34),34) f2$=left$(a1$+" "+a2$+chr$(32,20),20) i$=bd$+"uploads":open #1,i$:if not mark(1) goto neg1 close:create i$:open #1,i$:position #1,80,0:print #1,0 for b=1 to nr:position #1,80,b:print #1,"EMPTY":next neg1 position #1,80,0:input #1,bb:bb=bb+1:if bb>nr bb=1 position #1,80,0:print #1,bb:position #1,80,bb print #1,f$"|Y"; if right$(x1$,1)="G" print #1,"G";:else print #1,"B"; print #1,"|"f2$"|"date$"|"; if info(2) i$=str$(info(2)*300):if len(i$)<4 i$=" "+i$ if info(2) print #1,i$" baud":else print #1,"local" close:f$=bd$+"dir"+lg$:open #1,f$:if not gf goto tyme next:close:kill rd$+"ymfiles":print " - done.":goto tyme no.files gf=0:for x=1 to bn:print chr$(8,2);right$("0"+str$(x),2); ww=x:gosub found:next:close:print " - done." kill rd$+"ymfiles":goto tyme ym.abort if not bn goto tyme open #1,rd$+"ymfiles" for a=1 to bn:position #1,80,a:input #1,i$,a$:kill i$ next:close:kill rd$+"ymfiles":goto tyme ; subroutines name.find if f$="/" f$=fn$:print " Filename: "f$ open #1,bd$+"dir"+lg$:position #1,95,0:input #1,a if not a close:print \"No such file":pop:return for b=1 to a:position #1,95,b:input #1,i$,x$ if i$="EMPTY" next:close:print \"File not found":pop:return gf=len(f$):if left$(i$,gf)=f$ x=b:b=a:next:close:goto number1 next:close:print \"File not found":pop:return number open #1,bd$+"dir"+lg$:position #1,95,0:input #1,b if not b close:print \"No files on this drive!":pop:return if a>b close:print \"Error - Highest file # is "b:pop:return position #1,95,a:input #1,i$,x$:close if i$="EMPTY" print \"No such file":pop:return x=a:f$=left$(i$,30):print " Filename: "f$ number1 if info(5) or (li=un) return if left$(i$,2)="S." print\"This file is for SysOps only.":pop:return if left$(i$,2)<>"U." return gh=val(mid$(i$,3,(len(str$(nu))))):if (gh<1) or (gh>nu) return if un<>gh print \"This file is for user #"gh" only.":pop:return return ed.log if info(5) return open #1,bd$+"pae.log":append #1:print #1,ul$:close #1 return show.file setint(1):print:copy f$:setint(""):return download gosub dl link.pae open #1,bd$+"pae.points":position #1,12,un:print #1,pt,up,dn:close link l1$,"return" link.term open #1,bd$+"pae.points":position #1,12,un:print #1,pt,up,dn:close link l1$,"link.term" ulcar edit(0):if len(tp$)<>3 tp$="???" x5$="[Not rated]":goto car ymcar pop:for ww=1 to bn:open #1,rd$+"ymfiles" position #1,80,ww:input #1,f$,fn$\pb\sz\x$:close x5$="[Not rated]":edit(0):goto cr auto.off print \"Enable auto-logoff after xfer? ";:gosub get.key if i$<>"Y" print "No":ao=0:return print "Yes":ao=1:return auto1 print \"Auto-logoff activated: Hit a key to abort." print "Countdown to logoff: [--]"; a=15 auto2 i$=str$(a):if len(i$)<2 i$="0"+i$ print chr$(8,3)i$"]"; for b=1 to 350 if key(0) b=350:next:print " - Terminated":return next:a=a-1:if a goto auto2 print " - ":modem(1):return clk.set kill rd$+"clock":if clock(2)<1 return create rd$+"clock":open #1,rd$+"clock" print #1,clock(2),clock(1):close:clock(2)=0:return tyme PRINT #3,"ROUTINE #1 RUNNING"CHR$(7) open #1,rd$+"clock":if mark(1) close:goto tyme1 PRINT #3,"ROUTINE #2 RUNNING"CHR$(7,2) input #1,cl,bf:close:kill rd$+"clock" af=clock(1):clock(2)=cl+(af-bf) tyme1 if (not info(0)) and (not info(5)) pop:goto link.term return get.key yy=0 get.key1 if (clock(2)<>0) and (clock(1)>clock(2)) print "[Time Limit Exceeded]":goto link.term yx=peek(-16384):if (yx=129) or (yx=150) get i$:print bs$;:return yx=key(0):if (yx>96) and (yx<123) yx=yx-32 if (yx=7) or (yx=15) or (yx=16) goto get.key2 if yx i$=chr$(yx):return get.key2 yy=yy+1 if yy=2000 print chr$(7,2);:goto get.key1 if yy=4000 modem(2):return if (not info(0)) and (not info(5)) goto link.term goto get.key1 case.convert ab$="":for wy=1 to len(fn$):wx=asc(mid$(fn$,wy,1)) if (wx=32) or (wx=46) ab$=ab$+".":next:goto case1 if (wx<48) or (wx>90) next:goto case1 if (wx>57) and (wx<65) next:goto case1 ab$=ab$+chr$(wx):next case1 ab$=left$(ab$,15) if right$(ab$,1)="." ab$=left$(ab$,(len(ab$)-1)):goto case1 return