{ -- xenion@libero.it --} {$M $4000,0,0 } { 16K stack, no heap } uses crt,dos; var f:file; attr:word; DirInfo: SearchRec; b0:array[1..10]of string[1]; b1:array[1..100]of string[12]; b11:array[1..100]of string[12]; b2:array[1..3000]of string[12]; let:array[1..10]of string[1]; a0,a00,c0,aa,a1,a11,c1,a2,a22,c2,r1,b11cont:integer; ron,t1,t2,t3:integer; {textcolor...} non:integer; king0,fin:integer; ch,ch1:char; s1,s2,s3,s4,s5,what:string; id1:boolean; label inizio,1,11,2; procedure lettera; begin let[1]:='A'; let[2]:='B'; let[3]:='C'; let[4]:='D'; let[5]:='E'; let[6]:='F'; let[7]:='G'; let[8]:='H'; let[9]:='I'; let[10]:='L'; end; procedure info; label 1,fine; begin if fin=3 then begin s5:=s4+b2[c2]; if non=1 then goto fine; Assign(f, s5); GetFAttr(f, attr); textbackground(t2); textcolor(0); window(43,2,78,10); clrscr; gotoxy(1,2); if DosError <> 0 then WriteLn('Dos error code = ', DosError) else begin writeln(' FILE INFO'); writeln; Writeln('>> Attribute : '); write(' >'); if attr=$1 then Write(' read only file '); if attr=$2 then Write(' hidden file '); if attr=$4 then Write(' system file '); if attr=$8 then Write(' volume ID '); if attr=$10 then Write(' directory name '); if attr=$20 then Write(' archive (normal file)'); if (attr<>$1) and(attr<>$2) and(attr<>$4) and(attr<>$8) and(attr<>$10) and(attr<>$20) then writeln(' '); end; gotoxy(1,6); writeln('>> FILE SIZE: '); {$I-} reset(f); {$I+} if IOresult <> 0 then begin writeln(' > '); goto 1; end; writeln(' > ',filesize(f),' bytes'); close(f); 1: gotoxy(1,8); write(' > File n ',c2); textbackground(t1); textcolor(t2); window(3,25,80,25); write('DIR> ',s5); window(27,4,39,23); gotoxy(1,9); if non=1 then begin textbackground(t2); textcolor(0); window(43,2,78,10); clrscr; writeln; writeln(' Non Visualizzare Info. '); write(' (i) per visualizzarle'); textbackground(t1); textcolor(t2); window(3,25,80,25); write('DIR> ',s5); window(27,4,39,23); gotoxy(1,9); end; end; fine: end; procedure carica; label n0,n1,n2; begin n0: {caricamento array volume id (b1) } lettera; aa:=0; a00:=3; a0:=3;{unit a e b presente in tutti i computer} b0[1]:='A'; b0[2]:='B'; for aa:=1 to 7 do begin if disksize(a00)<>-1 then begin b0[a0]:=let[a00]; a0:=a0+1; end; a00:=a00+1; end; a0:=a0-1; {caricamento array directoryes (b1) } FindFirst(s1, directory, DirInfo); {drive a....} if fin > 1 then if (disksize(c0)= -1) then begin fin:=1; exit; end; if dirinfo.name <> '.' then begin b1[1]:='............'; a1:=2; end else a1:=1; FindFirst(s1, directory, DirInfo); b1[a1]:=dirinfo.name; while DosError = 0 do begin b1[a1]:=dirinfo.name; a1:=a1+1; FindNext(DirInfo); end; a1:=a1-1; {caricamento array files (b2) } a2:=1; FindFirst(s2, anyfile, dirinfo); b2[a2]:=dirinfo.name; while DosError = 0 do begin FindNext(DirInfo); a2:=a2+1; b2[a2]:=dirinfo.name; end; a2:=a2-1; end; procedure interfaccia; begin window(1,1,80,25); clrscr; textbackground(t2); window(43,2,78,10); clrscr; window(1,1,80,25); textbackground(t1); gotoxy(2,2);write('unit directory Files '); gotoxy(1,1); write('');for r1:=1 to 78 do write('');write(''); for r1:=2 to 24 do begin write('');gotoxy(80,r1);write(''); end; gotoxy(1,24);write('');for r1:=1 to 78 do write('');write(''); gotoxy(7,1);write(''); for r1:=2 to 23 do begin gotoxy(7,r1);write(''); end; gotoxy(7,24);write(''); gotoxy(24,1);write(''); for r1:=2 to 23 do begin gotoxy(24,r1);write(''); end; gotoxy(24,24);write(''); gotoxy(41,1);write(''); for r1:=2 to 23 do begin gotoxy(41,r1);write(''); end; gotoxy(41,24);write(''); gotoxy(1,3);write('Ĵ'); gotoxy(41,11);write('Ĵ'); gotoxy(41,12);write(' >> << '); gotoxy(41,13);write('Ĵ'); gotoxy(2,12);write('>');gotoxy(6,12);write('<'); gotoxy(8,12);write('>');gotoxy(23,12);write('<'); gotoxy(25,12);write('>');gotoxy(40,12);write('<'); window(1,1,80,25); textbackground(t1); gotoxy(3,4); window(1,1,80,25); gotoxy(43,14);writeln('-General COMMANDS- (q) for the help'); gotoxy(43,16);writeln('- (+) > Riapri questo programma'); gotoxy(43,17);writeln('- (-) > Esci'); gotoxy(43,18);writeln('- (Invio)> Apre sottodirectory'); gotoxy(43,19);writeln('- (Exec) > Esegue il file selezionato'); gotoxy(43,20);writeln('- (Edit) > Edita il file selezionato'); gotoxy(43,21);writeln('- (Invio)> Esegue il file'); gotoxy(43,22);writeln('- ( ) > Edita il file'); gotoxy(43,23);writeln('- (e) > Apre l''Editor di testi'); gotoxy(4,12); end; procedure king(a:integer); begin if a = 1 then king0:=1; if a = 2 then king0:=2; if a = 3 then king0:=3; if a = 4 then king0:=4; if a = 5 then king0:=5; window(1,1,80,25); gotoxy(2,25); write(' '); gotoxy(3,25); write('DIR> ',s2); if fin=1 then if king0=1 then king0:=10; if king0 = 1 then if fin>1 then fin :=fin-1; if king0 = 2 then if fin<4 then fin :=fin+1; if fin = 1 then window(4,4,5,23); if fin = 2 then begin window(27,4,39,23); clrscr; window(10,4,22,24); end; if (fin=3) then window(27,4,39,24); if fin=4 then begin if fin > 1 then if (disksize(c0)= -1) then begin fin:=1; exit; end; window(47,12,75,12); textbackground(t3); clrscr; readln(what); if (what = 'edita')or(what='EDITA') then begin ch:=' '; ron:=1; end; if (what = 'esegui')or(what='ESEGUI') then begin window(1,1,80,25); textbackground(0); clrscr; what:='/c '+s5; SwapVectors; Exec(GetEnv('COMSPEC'),what); SwapVectors; textcolor(12); writeln('Operazione terminata. Premere un tasto per continuare'); textcolor(7); ch:=readkey; ron:=2; end; if (what = 'dosline')or(what='DOSLINE') then begin ch:='l'; ron:=1; end; if (what = 'con comando dos')or (what='CON COMANDO DOS') then begin ch:='d'; ron:=1; end; window(47,12,75,12); textbackground(t1); clrscr; doserror:=0; textbackground(t1); textcolor(t2); window(27,4,39,23); gotoxy(1,9); fin:=3; king0 := 1; end; if king0 = 2 then begin c2:=1; if fin = 2 then begin clrscr; window(10,4,22,24); s1:=b0[c0]+':\*'; s2:=b0[c0]+':\*.*'; window(1,1,80,25); clrscr; carica; interfaccia; window(4,4,5,23); gotoxy(1,9); for a0:= 1 to a0 do writeln(b0[a0]); a11:=0; window(10,4,22,24); if a1>12 then a11:=12; gotoxy(1,9); if a11=12 then for a11 := 1 to a11 do writeln(b1[a11]) else for a1 := 1 to a1 do writeln(b1[a1]); gotoxy(1,9); textbackground(t3); writeln(b1[1]); textbackground(t1); end; if (fin=3)and(b1[c1]<>'.')and(b1[c1]<>'..') then begin window(27,4,39,23); clrscr; window(27,4,39,24); if b1[c1]<>'............' then if id1=true then s2:= b0[c0]+':'+ s3+'\'+b1[c1]+'\*.*' else s2:=s3+'\'+b1[c1]+'\*.*' else s2:=b0[c0]+':\*.*'; if b1[c1]<>'............' then if id1=true then s4:= b0[c0]+':'+ s3+'\'+b1[c1]+'\' else s4:=s3+'\'+b1[c1]+'\' else s4:=b0[c0]+':\'; window(1,1,80,25); gotoxy(2,25); write(' '); gotoxy(3,25); write('DIR> ',s2); window(27,4,39,23); carica; a22:=0; window(27,4,39,24); if a2>12 then a22:=12; gotoxy(1,9); if a22=12 then for a22 := 1 to a22 do writeln(b2[a22]) else for a2 := 1 to a2 do writeln(b2[a2]); gotoxy(1,9); textbackground(t3); writeln(b2[1]); textbackground(t1); end; end; if fin = 2 then begin if (king0 = 5)and(b1[c1]<>'............') then begin id1:=false; s1:=b0[c0]+':'; if b11cont=0 then b11cont:=1; if b1[c1]='.' then b11cont:=0; b11cont:=b11cont+1; b11[b11cont]:=b1[c1]; if b1[c1] ='..'then b11cont:=b11cont-2; for b11cont:=2 to b11cont do s1:=s1+'\'+b11[b11cont]; s3:=s1; s1:=s1+'\*'; window(1,1,80,25); gotoxy(2,25); write(' '); gotoxy(3,25); write('DIR> ',s1); window(10,4,22,23); clrscr; window(10,4,22,24); carica; c1:=1; a11:=0; window(10,4,22,24); if a1>12 then a11:=12; gotoxy(1,9); if a11=12 then for a11 := 1 to a11 do writeln(b1[a11]) else for a1 := 1 to a1 do writeln(b1[a1]); gotoxy(1,9); TextBackground(t3); writeln(b1[1]); textbackground(t1); end; if (king0 = 3 )and (c1 > 1) then begin window(10,4,22,23); gotoxy(1,9); textbackground(t1); write(b1[c1]); gotoxy(1,1); insline; c1:=c1-1; gotoxy(1,9); TextBackground(t3); write(b1[c1]); textbackground(t1); if a1 > 9 then begin gotoxy(1,1); if c1-8>=1 then writeln(b1[c1-8]); end; end; if (king0 = 4 )and (c1 < a1)then begin window(10,4,22,23); gotoxy(1,9); textbackground(t1); write(b1[c1]); textbackground(t1); gotoxy(1,1); delline; c1:=c1+1; gotoxy(1,9); TextBackground(t3); write(b1[c1]); textbackground(t1); if a1 > 12 then begin gotoxy(1,20); if c1+11 <= a1 then write(b1[c1+11]); end; end; gotoxy(1,9); end; if (fin=3)and(b1[c1]<>'.')and(b1[c1]<>'..') then begin if (king0 = 3 )and (c2 > 1) then begin window(27,4,39,23); gotoxy(1,9); textbackground(t1); write(b2[c2]); gotoxy(1,1); insline; c2:=c2-1; gotoxy(1,9); TextBackground(t3); write(b2[c2]); textbackground(t1); if a2 > 9 then begin gotoxy(1,1); if c2-8>=1 then writeln(b2[c2-8]); end; end; if (king0 = 4 )and (c2 < a2)then begin window(27,4,39,23); gotoxy(1,9); textbackground(t1); write(b2[c2]); textbackground(t1); gotoxy(1,1); delline; c2:=c2+1; gotoxy(1,9); TextBackground(t3); write(b2[c2]); textbackground(t1); if a2 > 12 then begin gotoxy(1,20); if c2+11 <= a2 then write(b2[c2+11]); end; end; gotoxy(1,9); end; if fin = 1 then begin id1:=true; b11cont:=0; c1:=1; s3:=''; window(10,4,22,23); clrscr; window(27,4,39,23); clrscr; window(4,4,5,23); if king0 = 5 then king0 := 1; if (king0 = 1 )then begin carica; clrscr; gotoxy(1,9); for a0:= 1 to a0 do writeln(b0[a0]); window(4,4,5,23); gotoxy(1,9); TextBackground(t3); write(b0[1]); gotoxy(1,9); textbackground(t1); c0:=1; gotoxy(1,9); end; if (king0 = 3 )and (c0 > 1) then begin gotoxy(1,9); textbackground(t1); write(b0[c0]); textbackground(t1); gotoxy(1,1); insline; c0:=c0-1; gotoxy(1,9); TextBackground(t3); write(b0[c0]); textbackground(t1); end; if (king0 = 4 )and (c0 < a0)then begin gotoxy(1,9); textbackground(t1); write(b0[c0]); textbackground(t1); gotoxy(1,1); delline; c0:=c0+1; gotoxy(1,9); TextBackground(t3); write(b0[c0]); textbackground(t1); end; gotoxy(1,9); end; info; end; begin clrscr; textbackground(7); textcolor(1); clrscr; gotoxy(5,5);writeln(' Ŀ Ŀ '); gotoxy(5,6);writeln('Ŀ Ŀ Ŀ '); gotoxy(5,7);writeln(' Ŀ '); gotoxy(5,8);writeln(' ٳ ٳ '); gotoxy(5,9);writeln(' '); gotoxy(12,10);writeln('Ŀ ڿ ڿĿĿ ĿĿ Ŀ Ŀ '); gotoxy(12,11);writeln(' Ŀ ĿĿ Ŀ '); gotoxy(12,12);writeln('Ĵ Ŀٳ Ĵ '); gotoxy(12,13);writeln('Ŀ Ŀٳ Ŀ Ŀ Ŀ'); gotoxy(12,14);writeln(' '); textcolor(2); gotoxy(1,1);write('Ŀ'); for r1:=2 to 24 do begin gotoxy(1,r1);write('');gotoxy(80,r1);write(''); end; gotoxy(1,24);write(''); textcolor(0); gotoxy(12,17);write('DOS EXPOLORER v1.1'); textcolor(9);writeln(' Xenion'); textcolor(0); gotoxy(12,19);writeln('Per qualsiasi motivo puoi contattarmi'); gotoxy(12,20);writeln('a xenion@libero.it'); gotoxy(12,22);write('Qualsiasi tasto per continuare'); ch:=readkey; textbackground(7); textcolor(7); window(1,1,80,25); non:=0; inizio: a0:=0;a00:=0;aa:=0;a1:=0;a11:=0;a2:=0;a22:=0;r1:=0;b11cont:=0; king0:=0; ch:=' ';ch1:=' '; s1:='';s2:='';s3:='';s4:='';s5:='';what:=''; id1:=false; b11cont:=0; c0:=1; c1:=1; c2:=1; fin:=1; t1:=0; t2:=7; t3:=1; textbackground(t1); textcolor(t2); clrscr; interfaccia; s1:='C:\*'; s2:='C:\*.*'; carica; { window(1,1,80,25); window(27,4,39,24); window(10,4,22,24); window(4,4,5,23); 4 75 6 77 8 72 2 80 inv 13 } window(4,4,5,23); gotoxy(1,9); for a0:= 1 to a0 do writeln(b0[a0]); window(4,4,5,23); gotoxy(1,9); TextBackground(t3); write(b0[1]); gotoxy(1,9); textbackground(t1); ron:=0; 1: if ron=2 then goto inizio; if ron=1 then goto 11; ch:=readkey; 11: ron:=0; if ((ord(ch)<>13)and(fin<>3))and(ch<>'-')and(ch<>'+')and(ch<>'l')and ((ord(ch)<>13)and(fin<>2))and( ord(ch)<>75 and 77 and 72 and 80 and 13) then begin window(1,1,80,25); gotoxy(2,25); write(' '); end; textbackground(t1); if ch='-'then goto 2; if ch='+'then goto inizio; if (ord(ch)=13)and(fin=3) then begin window(1,1,80,25); textbackground(0); clrscr; what:='/c '+s5; SwapVectors; Exec(GetEnv('COMSPEC'),what); SwapVectors; textcolor(12); writeln('Operazione terminata. Premere un tasto per continuare'); textcolor(7); ch:=readkey; goto inizio; end; if ch='q'then begin window(1,1,80,25); clrscr; textbackground(0); textcolor(7); Write('File Manager che gira under dos. Tutto qua''... :)'); writeln; writeln; writeln; writeln(' -COMMANDS-'); writeln; writeln('Rapidi:'); writeln; writeln('- (q) > Guida'); writeln('- (+) > Riapri questo programma'); writeln('- (-) > Esci'); writeln('- (i) > Visualizza/non visualizza Info. (Senza il programma + veloce)'); writeln('- (Invio)> Apre sottodirectory'); writeln('- (Edit) > Edita il file selezionato'); writeln('- (Invio)> Esegue il file'); writeln('- ( ) > Edita il file'); writeln('- (l) > Esegue riga di comando dos'); writeln('- (e) > Apre l''Editor di testi'); writeln('- (d) > Esegue il comando dos immesso da tastiera + file selezionato'); writeln('- Premendo Inivio su . si raggiunge la directory primaria (a,b,c,d,...)'); writeln('- Premendo Inivio su .. si raggiunge la directory superiore (=cd..)'); writeln; Write('Qualsiasi tasto per continuare >');ch:=readkey;clrscr; writeln; writeln('Dalla linea di comando:'); writeln; writeln('- edita > Edita il file selezionato'); writeln('- esegui > Esegue il file'); write('- con comando dos > Esegue il comando dos immesso da tastiera + file selezionato'); writeln('- dosline > Esegue riga di comando dos'); writeln; write('IMPORTANTE : Quando ci si sposta da una directory all'' altra in realt ci si spo'); write('sta solo all'' interno di arrays senza dire nulla a dos.. Quindi per avviare prog'); write('rammi esterni senza immettere il percorso i files devono essere nella directory '); writeln('corrente o in alternativa modificare l'' autoexec.bat....'); writeln('E cos pure per l'' editor di testi. Se manca il file o non viene trovato per i'); writeln('motivi riportati sopra viene visualizzato un messaggio di errore.'); writeln; writeln('Ricordo che selezionando un file e usando comando (d), scrivendo poi copy, il '); writeln('file viene copiato nella directory corrente, che se non avete cambiato sar '); writeln('quella nella quale si trova questo programma'); writeln; writeln('X3n10N enc0ded'); writeln; Write('Qualsiasi tasto per continuare >');ch:=readkey; goto inizio; end; if (ch='i')or(ch='I') then begin if non=0 then non:=1 else if non=1 then non:=0; end; if ch='d' then begin window(1,1,80,25); clrscr; writeln('[comando dos+opzioni] sul quale eseguire il file selezionato: '); window(1,3,80,3); textbackground(t3); clrscr; readln(what); window(1,1,80,25); textbackground(0); clrscr; what:='/c '+what+' '+s5; SwapVectors; Exec(GetEnv('COMSPEC'),what); SwapVectors; textcolor(12); write('Operazione terminata. Premere un tasto per continuare'); textcolor(7);write(' '); ch:=readkey; clrscr; goto inizio; end; if ch = ' ' then begin window(1,1,80,25); textbackground(0); clrscr; what:='/c edit '+s5; SwapVectors; Exec(GetEnv('COMSPEC'), what); SwapVectors; textcolor(12); writeln('Operazione terminata. Premere un tasto per continuare'); textcolor(7); ch:=readkey; goto inizio; s5:=''; end; if (ch='e')or(ch='E') then begin SwapVectors; Exec(GetEnv('COMSPEC'), '/c edit '); SwapVectors; end; if (ch='l')or(ch='L') then begin window(1,1,80,25); clrscr; writeln('Introduci da tastiera la linea di comando: '); window(1,3,80,3); textbackground(t3); clrscr; readln(what); window(1,1,80,25); textbackground(0); clrscr; what:='/c '+what; SwapVectors; Exec(GetEnv('COMSPEC'),what); SwapVectors; textcolor(12); write('Operazione terminata. Premere un tasto per continuare'); textcolor(7);write(' '); ch:=readkey; window(1,1,80,25); goto inizio; end; if (ord(ch)=13)and(fin=2) then king(5); if ch=#0 then begin Ch := ReadKey; if ord(ch)=75 then king(1); if ord(ch)=77 then king(2); if ord(ch)=72 then king(3); if ord(ch)=80 then king(4); goto 1; end else begin window(1,1,80,25); if fin=1 then gotoxy(4,12); if fin=2 then gotoxy(10,12); if fin=3 then gotoxy(27,12); ch:=readkey; goto 11; end; goto inizio; 2: window(1,1,80,25); clrscr; Writeln('From Dos Explorer v1.1 by x3N'); writeln; end.