Clipper On Line • Ver Tópico - PC-TOOLS quem lembra?

PC-TOOLS quem lembra?

Aqui você vai poder compartilhar Piada, Vídeos e Fotos engraçadas.

Moderador: Moderadores

 

PC-TOOLS quem lembra?

Mensagempor asimoes » 16 Fev 2016 22:11

PC_Tools_1.10.png
PC_Tools_1.10.png (6.39 KiB) Visualizado 2399 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

PC-TOOLS quem lembra?

Mensagempor fladimir » 16 Fev 2016 23:19

Cara eu lembro...

Lembro tb do

Norton Disk Doctor (usava de mais... ganhava até uns trocos com ele)
E outros...

Disquetes de 3 1/2" (lançamento) era o top do top...
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

PC-TOOLS quem lembra?

Mensagempor asimoes » 17 Fev 2016 07:48

Fladimir,

O NDD era conhecido também como Norton Destrói Disco, kkk
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

PC-TOOLS quem lembra?

Mensagempor fladimir » 17 Fev 2016 23:50

Sério... não sabia... pra mim era muito bom...
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

PC-TOOLS quem lembra?

Mensagempor Claudio Soto » 20 Fev 2016 23:10

Me acuerdo, que tiempos aquellos, tambien me acuerdo del XTree y del Norton Change Directory (NCD) por el cual podiamos navegar por el arbol de directorios del DOS. Uno de mis primeros programas en C alla por el 91/92 fue crear el CCD (Claudio Change Directory) una imitacion burda del NCD, voy a buscar el codigo en mis archivos, si lo encuentro lo posteo solo por el recuerdo.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

PC-TOOLS quem lembra?

Mensagempor Claudio Soto » 20 Fev 2016 23:18

Se acuerdan tambien de los discos de 5"1/4, los buenos podias doblarlos a la mitad y seguian funcionando, existian varias marcas si mal no recuerdo como Verbatim, TDK... inclusive llegue a ver los discos de 8" y las cintas de casette en los PC.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

PC-TOOLS quem lembra?

Mensagempor Toledo » 21 Fev 2016 12:09

Claudio Soto escreveu:Se acuerdan tambien de los discos de 5"1/4

Tenho várias caixas deste disquetes... e já trabalhei também com disquetes de 8", pena que não guardei nenhum.

Image.jpg


Até hoje as vezes uso o ZTree...

Image2.jpg


Abraços.
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

PC-TOOLS quem lembra?

Mensagempor asimoes » 21 Fev 2016 14:06

Eu tenho um disquete de 8"
Tem o CP/M e um sistema em basic 80 de conta-corrente.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

PC-TOOLS quem lembra?

Mensagempor alxsts » 21 Fev 2016 14:58

Olá!

Ainda vivi o tempo das coisas abaixo, a partir de 1979:

Cartões perfurados de 80 e 96 colunas. Um cadastro de clientes, por exemplo, precisava ter 3 cartões para caber todos os dados e o programa tinha que controlar a existência e ordem dos 3 cartões. Naqueles tempos, um byte valia muito. Difícil imaginar hoje um cadastro de cliente com apenas 240 bytes...

Card80.jpg
Cartão perfurado de 80 colunas

card96.jpg
Cartão perfurado de 96 colunas

Às vezes o boot a partir dos discos falhava e era preciso fazê-lo através de código gravado (perfurado) em uma fita de papel.
PaperTape.jpg
Burroughs B700 bootstrap loader tape

Atualmente, já temos um "chaveirinho" onde cabem 1 tera bytes...
kingston1TB.jpg
Kingston 1 TB USB 3.0 Flash Drive


Viva a evolução! Que Deus nos permita participar disto por mais tempo.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

PC-TOOLS quem lembra?

Mensagempor JoséQuintas » 21 Fev 2016 15:38

Tem muita coisa que não roda mais em 64 bits, ou no Windows, mas não apaguei.
Não perguntem porque não apaguei, porque não sei.


25/06/1991  20:08             6.284 BAT2EXEC.COM - transforma BAT em EXE
02/10/2001  09:24             6.915 DR.COM - visualização rápida
07/05/1990  23:00             1.816 LOG.COM - registra log
30/06/1992  23:00             1.309 RECORDER.COM - registra log
07/05/1990  23:00               591 SWEEP.COM - recursividade nos diretórios
14/05/1985  17:58            20.316 DFLOW.EXE - fluxograma de PRGS
28/02/1994  07:00           114.775 FILEFIX.EXE - corrige dbf, lótus, etc
28/01/2000  09:25           234.822 GHOST.EXE - clonar hd (versão antes norton)
18/04/1995  06:55            93.399 LL3.EXE - laplink 3
12/02/1993  20:03           268.701 LL5.EXE - laplink 5
25/01/1988  13:27           102.403 PCTOOLS.EXE
01/12/1988  14:00            73.472 PE2.EXE - editor de texto ibm
23/11/1992  16:38            66.213 PRINTQ.EXE - spooler de impressão
29/08/1995  14:58            44.768 qedit.exe - editor de texto
02/04/1987  00:00           129.153 TB.EXE - Turbo Basic da Borland
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

PC-TOOLS quem lembra?

Mensagempor JoséQuintas » 21 Fev 2016 15:56

Eliminei algumas coisas do texto antes de postar
Acabei apagando:

1.386 prn2file.com -> desvia impressão pra disco

Detalhe: 1.386 significa 1.3KB, e não 1.3MB.
É maior o bloco de alocação do Windows do que o programa... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

PC-TOOLS quem lembra?

Mensagempor asimoes » 21 Fev 2016 15:59

Quintas,

Você pode matar saudade, usando o dosbox, heheh.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

PC-TOOLS quem lembra?

Mensagempor Claudio Soto » 21 Mar 2016 16:59

Claudio Soto escreveu:Me acuerdo, que tiempos aquellos, tambien me acuerdo del XTree y del Norton Change Directory (NCD) por el cual podiamos navegar por el arbol de directorios del DOS. Uno de mis primeros programas en C alla por el 91/92 fue crear el CCD (Claudio Change Directory) una imitacion burda del NCD, voy a buscar el codigo en mis archivos, si lo encuentro lo posteo solo por el recuerdo.


Buscando encontré el código del Claudio Change Directory:

// PROGRAMA: Claudio Change Directory
// VERSION:  1.0
// AUTOR:    Claudio Soto
// FECHA:    Abril 1992
// LENGUAJE: C
// COMPILADOR: Borland Turbo C/C++


#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#include <dos.h>
#include <ctype.h>
#include <string.h>
#include <time.h>

// #define  DEBUG
#define  DIR_ESCONDIDO  0x12
#define  SUBDIRECTORIO  FA_DIREC|DIR_ESCONDIDO
#define  TOPE_DIR       300
#define  FINAL          i-1
#define  FINAL2         i2-1
#define  ON             1
#define  OFF            0

#define  COLOR_NOMBRE         14
#define  COLOR_RAMAS           9
#define  COLOR_DIRECTORIOS    11
#define  COLOR_CURSOR_BARRA    7
#define  COLOR_CURSOR_FONDO    0
#define  COLOR_FLECHA         15
#define  COLOR_FONDO_PANTALLA  0
#define  COLOR_PATH           14

void reloj ();
void recuadro (int x1, int y1, int x2, int y2, char caracter [9], int y3, char cracter2 [5]);
int  mostrar_pedazo (int x, int y, char texto [], int inicio, int fin);
void trazar_linea (int x, int y1, int y2, char caracter []);
void pantalla ();
void burbuja ();
void cursor (int modo);
void activar_dir (int minima_x, int minima_y, int maxima_x, int maxima_y, int y3, int posx1_mouse, int posy1_mouse, int posx2_mouse, int posy2_mouse);
int  boton_mouse (int num);
int  existe_mouse ();
void gotoxy_mouse (int x, int y);
void mostrar_cursor_mouse ();
void sacar_cursor_mouse ();
void posicion_mouse (int *x, int *y);

struct ffblk reg;
char   dir [TOPE_DIR] [80], camino [80], directorio [80];
char   rama [TOPE_DIR], nombre [TOPE_DIR] [80], auxiliar [80];
int    posx [TOPE_DIR], posy [TOPE_DIR], padre [TOPE_DIR];
int    i=1, k=0, cont=1, status =0, p=1, j;
int    mayor, fin, a, inicio, control1,control2;
int    x=1, y=1, control3, i2, posx2 [TOPE_DIR], posy2 [TOPE_DIR];
int    incremento_en_x = 2;
char   drive, dir_corriente [80];

void main ()
{  int zz;
   char CARAC_RECUADRO  [] = { 218, 196, 191, 179, 217, 196, 192, 179, 176, 32, 0 };
   char CARAC_RECUADRO2 [] = { 198, 205, 181, 0};
   char CARAC_LINEA     [] = { 194, 179, 193, 0};

   // 218 196 191 179 217 196 192 179 176 198 205 181 194 193
   // Ú   Ä   ¿   ³   Ù   Ä   À   ³   °   Æ   Í   µ   Â   Á

   textmode (C80);
   clrscr ();
   randomize ();
   cursor (OFF);
   mostrar_cursor_mouse ();

   textcolor (14);
   textbackground (9);
   recuadro (3,11,77,14, CARAC_RECUADRO, 0,"   ");

   textbackground (0);
   textcolor (8);
   for (zz=4; zz <= 78; zz++)
   {  gotoxy (zz,15);
      cprintf ("%c",177);
   }
   for (zz=12; zz <= 15; zz++)
   {  gotoxy (78,zz);
      cprintf ("%c",177);
   }
   textbackground (9);
   textcolor (11);

   drive = getdisk ();
   getcurdir (drive + 1, auxiliar);

   directorio [0] = drive + 65;
   strcat (directorio, ":");

   strcpy (camino, directorio);
   strcat (camino,"\\*.*");

   strcpy (nombre [0], directorio);
   strcat (nombre [0], "\\");

   strcpy (dir_corriente, nombre [0]);
   strcat (dir_corriente, auxiliar);

   strcpy (dir [0], nombre[0]);

   /************************************************************************/
   /*                     Lectura de subdirectorios                        */
   /************************************************************************/

   do
   {
      status = findfirst (camino, &reg, SUBDIRECTORIO);
      while (status == 0)
      {  if ((reg.ff_attrib == DIR_ESCONDIDO) || (reg.ff_attrib == FA_DIREC) && (reg.ff_name[0] !='.') && (reg.ff_name[1] !='.'))
         {  if (reg.ff_attrib == DIR_ESCONDIDO)
            {  for (k=0 ;k <= strlen(reg.ff_name); k++)
                  nombre [i] [k] = tolower (reg.ff_name [k]);
            }
            else
               strcpy (nombre [i], reg.ff_name);

            strcpy ( dir[i], directorio);
            strcat ( dir[i], "\\");
            strcat ( dir[i], reg.ff_name);
            padre  [i] = p -1;
            i++;

            textbackground (9);
            gotoxy (23,12);
            cprintf ("Explorando %4d sub-directorio(s).",i-1);

            gotoxy (4,13);cprintf ("                                                                         ");

            gotoxy ((80 - strlen (dir [i-1]))/2,13);
            cprintf ("%s",dir [i-1]);
            delay (50);

         }
         status = findnext (&reg);
      }
      strcpy (camino, dir [cont]);
      strcat (camino, "\\*.*");
      strcpy (directorio, dir [cont]);
      cont ++;
      p++;
   } while (cont <= i);

   textcolor (7);
   textbackground (0);

   /************************************************************************/
   /*                       Formacion del arbol                            */
   /************************************************************************/

   cont     = 0;
   posx [0] = x;
   posy [0] = y;
   control1 = 0;
   if (FINAL > 0)
   {  control2 = padre [1];
      a        = padre [1];
      mayor    = padre [1];

      for (k=1; k <= i-1; k++)
      {  if (padre [k] > control2)
         {  control2 = padre [k];
            mayor ++;
         }
      }
      control2 = padre [0];
      mayor ++;

      do
      {  for (j=1; j<= FINAL; j++)
         {  if ((control1 == 0) && (control2 == padre [j]))
            {  inicio   = j;
               control1 = 1;
            }
            if (control2 == padre [j])
               fin = j;
         }

         control3 = 0;
         for (j=inicio; j <= fin; j++)
         {  a = control2;
            y = posy [a] + 1;
            x = posx [a] + incremento_en_x;

            if (control3 == 0)
            {  rama [j] = 192;
               control3 = 1;
            }
            else
               rama [j] = 195;

            for (k=1; k <= FINAL; k++)
            {  if (posy [k] >= y)
                  posy [k] = posy [k] +1;
            }
            x = posx [a] + incremento_en_x;
            y = posy [a] + 1;

            posx [j] = x;
            posy [j] = y;
         }
         cont ++;
         control1 =0;
         control2 = padre [fin + 1];

      } while (cont < mayor);
   }

   /************************************************************************/
   /*                   Union de las ramas del arbol                       */
   /************************************************************************/

   i2       = 0;
   cont     = 0;
   if (FINAL > 0)
   {  control1 = padre [1];
      control2 = posy  [1];
      do
      {  for (k=1; k <= FINAL; k++)
         {  if (control1 == padre [k])
            {  a = control2 - posy [k];
               if (a > 1)
               {  for (j=1; j <= a-1; j++)
                  {  posx2 [i2] = posx [k];
                     posy2 [i2] = posy [k] + j;
                     i2 ++;
                  }
               }
               control2 = posy [k];
            }
         }

         for (k=1; k <= FINAL; k++)
         {  if (padre [k] > control1)
            {  control1 = padre [k];
               control2 = posy  [k];
               break;
            }
         }

         cont ++;
      } while (cont < mayor);
   }

   clrscr ();
   sacar_cursor_mouse ();
   cursor (OFF);
   pantalla ();

   textcolor (14);
   textbackground (9);

   recuadro (3,2,77,4,CARAC_RECUADRO, 0,"   ");

   textbackground (0);
   textcolor (8);
   for (zz=4; zz <= 78; zz++)
   {  gotoxy (zz,5);
      cprintf ("%c",176);
   }

   gotoxy (78,3);
   cprintf ("%c",176);
   gotoxy (78,4);
   cprintf ("%c",176);

   textbackground (9);
   textcolor (COLOR_NOMBRE);
   gotoxy (5,3); cprintf ("Claudio Change Directory,  Ver 1.0");
   gotoxy (53,3);cprintf ("(c) Claudio Soto, 1992.");

   textbackground (0);
   textcolor (8);
   recuadro (3,7,77,22,CARAC_RECUADRO, 9, CARAC_RECUADRO2);

   trazar_linea (73,7,22, CARAC_LINEA);
   gotoxy (73,9); cprintf ("%c   %c",181, 179);
   textcolor (15);
   gotoxy (74,8); cprintf ("[%c]",30);
   gotoxy (74,21);cprintf ("[%c]",31);

   activar_dir (4,10,80,21,8,75,8,75,21);
   cursor (ON);
   textmode (C80);
}

void activar_dir (int minima_x, int minima_y, int maxima_x, int maxima_y, int y3, int posx1_mouse, int posy1_mouse, int posx2_mouse, int posy2_mouse)
{  int x, y, k, num =0, num2, num_inicio, num_fin;
   int control, antigua_y, mouse = 0;
   int x_mouse, y_mouse;
   char tecla, arriba [160], abajo [160], path [160], limpiar [4000];

   if (existe_mouse () != 0)
   {  gotoxy_mouse (500,100);
      mouse = 1;
   }

   burbuja ();
   for (k=0; k <= FINAL; k++)
   {  if (strcmp (dir_corriente, dir [k]) == 0)
      {  num2 = k;
         break;
      }
   }
   gettext (minima_x, minima_y, maxima_x, maxima_y, limpiar);
   gettext (1, minima_y, 80, minima_y, arriba);
   gettext (1, maxima_y, 80, maxima_y, abajo);
   gettext (1, y3, 80, y3, path);

   textbackground (COLOR_FONDO_PANTALLA);
   num = 0;
   num_inicio = 0;
   for (k= minima_y; ((k <= maxima_y) && (num <= FINAL)); k++)
   {  x = posx [num] + minima_x;
      y = posy [num] + minima_y -1;
      gotoxy (x,y);
      textcolor (COLOR_RAMAS);
      cprintf  ("%c", rama [num]);
      textcolor (COLOR_DIRECTORIOS);
      cprintf  ("%s ", nombre [num]);
      if (num == num2)
      {  gotoxy (x + strlen (nombre [num]) + 2, y);
         textcolor (COLOR_FLECHA | 128);
         cprintf ("%c",27);
         textcolor      (COLOR_DIRECTORIOS);
      }
      num ++;
   }
   num_fin = num - 1;

   for (k=0; k <= FINAL2; k++)
   {  x = posx2 [k] + minima_x;
      y = posy2 [k] + minima_y -1;
      gotoxy (x,y);
      textcolor (COLOR_RAMAS);
      if ((y >= minima_y) && (y <= maxima_y))
         cprintf ("%c",179);
   }
   num = 0;

   gotoxy (posx[0] + minima_x, y3);
   textcolor (COLOR_PATH);
   cprintf ("Path: %s", dir[num]);

#ifdef DEBUG
gotoxy (10,5);
cprintf ("inicio  %s         ",nombre [num_inicio]);
gotoxy (50,5);
cprintf ("fin  %s            ",nombre [num_fin]);
#endif

   y = minima_y;
   do
   {  x = posx [num] + minima_x;
      gotoxy (x,y);
      textcolor      (COLOR_CURSOR_FONDO);
      textbackground (COLOR_CURSOR_BARRA);
      cprintf ("%c",  rama [num]);
      cprintf ("%s ", nombre [num]);
   // textcolor      (COLOR_CURSOR_BARRA);
      textbackground (COLOR_FONDO_PANTALLA);

      if (num == num2)
      {  gotoxy (x + strlen (nombre [num]) + 2, y);
         textcolor      (COLOR_FLECHA | 128);
         cprintf ("%c",27);
         textcolor      (COLOR_DIRECTORIOS);
      }

      if (mouse == 1)
         mostrar_cursor_mouse ();
     
      do
      {  reloj ();
         tecla = 0;
         if (kbhit ())
         {  tecla = getch ();
            if (tecla == 0)
               tecla = getch ();
         }

         if (mouse == 1)
         {  posicion_mouse (&x_mouse, &y_mouse);
            x_mouse = x_mouse / 8 + 1;   // convierte pixels en caracteres
            y_mouse = y_mouse / 8 + 1;   // convierte pixels en caracteres
           
            if ((posx1_mouse == x_mouse) && (posy1_mouse == y_mouse) && (boton_mouse (0) == 1))
            {  tecla = 'H';
               delay (130);
            }
            if ((posx2_mouse == x_mouse) && (posy2_mouse == y_mouse) && (boton_mouse (0) == 1))
            {  tecla = 'P';
               delay (130);
            }
         }
      } while (tecla == 0);

      if (tecla == 'I') tecla = 'H';
      if (tecla == 'Q') tecla = 'P';

      if (mouse == 1)
         sacar_cursor_mouse ();

      gotoxy (x,y);
      textcolor (COLOR_RAMAS);
      cprintf ("%c", rama [num]);
      textcolor (COLOR_DIRECTORIOS);
      cprintf ("%s ", nombre [num]);

      if ((tecla == 'H') && (num > 0))
      {  num --;
         y --;

         if (y < minima_y)
         {  y ++;
            num_inicio --;
            num_fin --;
            gotoxy (x,maxima_y);
            delline ();

            gotoxy (x,minima_y);
            insline ();
            puttext (1, minima_y, 80, minima_y, arriba);

            gotoxy (posx[num]+minima_x,y);
            textcolor (COLOR_RAMAS);
            cprintf ("%c", rama [num]);
            textcolor (COLOR_DIRECTORIOS);
            cprintf ("%s ", nombre [num]);

#ifdef DEBUG
gotoxy (10,5);
cprintf ("inicio  %s         ",nombre [num_inicio]);
gotoxy (50,5);
cprintf ("fin  %s            ",nombre [num_fin]);
#endif

            for (k=0; k <= FINAL2; k++)
            {  x = posx2 [k] + minima_x;
               gotoxy (x,y);
               textcolor (COLOR_RAMAS);
               if (num == (posy2 [k] - 1) )
                  cprintf ("%c",179);
            }
         }
      }

      if ((tecla == 'P') && (num < FINAL))
      {  num ++;
         y ++;
         if (y > maxima_y)
         {  y --;
            num_inicio ++;
            num_fin ++;
            gotoxy (x,minima_y);
            delline ();

            gotoxy (x,maxima_y);
            insline ();

            puttext (1, maxima_y, 80, maxima_y, abajo);
            gotoxy (posx2_mouse-1, maxima_y-1);
            cprintf ("   ");

            gotoxy (posx[num]+minima_x,y);
            textcolor (COLOR_RAMAS);
            cprintf ("%c", rama [num]);
            textcolor (COLOR_DIRECTORIOS);
            cprintf ("%s ", nombre [num]);
           
#ifdef DEBUG
gotoxy (10,5);
cprintf ("inicio  %s         ",nombre [num_inicio]);
gotoxy (50,5);
cprintf ("fin  %s            ",nombre [num_fin]);
#endif

            for (k=0; k <= FINAL2; k++)
            {  x = posx2 [k] + minima_x;
               gotoxy (x,y);
               textcolor (COLOR_RAMAS);
               if (num == (posy2 [k] - 1) )
                  cprintf ("%c",179);
            }
         }
      }

      if ((tecla == 'Q') && (num < FINAL) && (num_fin < FINAL))
      {  num = num_fin + 1;
         antigua_y = y;
         control = 0;
         y = minima_y -1;
         num_inicio = num;

         puttext (minima_x, minima_y, maxima_x, maxima_y, limpiar);

         for (k= minima_y; ((k <= maxima_y) && (num <= FINAL)); k++)
         {  x = posx [num] + minima_x;
            y ++;
            if (y == antigua_y)
               control = num;
            gotoxy (x,y);
            textcolor (COLOR_RAMAS);
            cprintf  ("%c", rama [num]);
            textcolor (COLOR_DIRECTORIOS);
            cprintf  ("%s ", nombre [num]);
            if (num == num2)
            {  gotoxy (x + strlen (nombre [num]) + 2, y);
               textcolor      (COLOR_FLECHA | 128);
               cprintf ("%c",27);
               textcolor      (COLOR_DIRECTORIOS);
            }
            num ++;
         }
         num_fin = num - 1;

#ifdef DEBUG
gotoxy (10,5);
cprintf ("inicio  %s         ",nombre [num_inicio]);
gotoxy (50,5);
cprintf ("fin  %s            ",nombre [num_fin]);
#endif

         for (k=0; k <= FINAL2; k++)
         {  x = posx2 [k] + minima_x;
            y = posy2 [k] + minima_y -1 - num_inicio;
            gotoxy (x,y);
            textcolor (COLOR_RAMAS);
            if ((y >= minima_y) && (y <= maxima_y))
               cprintf ("%c",179);
         }

         num --;
         if (control != 0)
         {  y = antigua_y;
            num = control;
         }
      }

      if ((tecla == 'I') && (num > 0) && (num_inicio > 0))
      {  num = num - (maxima_y - minima_y - 1);
         if (num < 0) num = 0;
         num_inicio = num;

         antigua_y = y;
         control = 0;
         y = minima_y -1;

         puttext (minima_x, minima_y, maxima_x, maxima_y, limpiar);

         for (k= minima_y; ((k <= maxima_y) && (num <= FINAL)); k++)
         {  x = posx [num] + minima_x;
            y ++;
            if (y == antigua_y)
               control = num;
            gotoxy (x,y);
            textcolor (COLOR_RAMAS);
            cprintf  ("%c", rama [num]);
            textcolor (COLOR_DIRECTORIOS);
            cprintf  ("%s ", nombre [num]);
            if (num == num2)
            {  gotoxy (x + strlen (nombre [num]) + 2, y);
               textcolor      (COLOR_FLECHA | 128);
               cprintf ("%c",27);
               textcolor      (COLOR_DIRECTORIOS);
            }
            num ++;
         }
         num_fin = num - 1;

#ifdef DEBUG
gotoxy (10,5);
cprintf ("inicio  %s         ",nombre [num_inicio]);
gotoxy (50,5);
cprintf ("fin  %s            ",nombre [num_fin]);
#endif

         for (k=0; k <= FINAL2; k++)
         {  x = posx2 [k] + minima_x;
            y = posy2 [k] + minima_y -1 - num_inicio;
            gotoxy (x,y);
            textcolor (COLOR_RAMAS);
            if ((y >= minima_y) && (y <= maxima_y))
               cprintf ("%c",179);
         }

         num --;
         if (control != 0)
         {  y = antigua_y;
            num = control;
         }
      }

      puttext (1, y3, 80, y3, path);
      gotoxy (posx[0] + minima_x, y3);
      textcolor (COLOR_PATH);
      cprintf ("Path: %s", dir[num]);

      textcolor (15);
      gotoxy (74,21);cprintf ("[%c]",31);
      textcolor (COLOR_PATH);

   } while ((tecla != 13) && (tecla != 27));

   if (tecla == 13) chdir (dir [num]);
// if (mouse == 1) sacar_cursor_mouse ();

}

void burbuja ()
{  int cont, j, tope, auxnum;
   char aux [80], auxchar;

   tope = FINAL;
   do
   {
      cont =0;
      for (j=0; j <= tope -1; j++)
      {
         if (posy [j] > posy [j+1] )
         {  auxnum     = posy [j];
            posy [j]   = posy [j+1];
            posy [j+1] = auxnum;

            auxnum     = posx [j];
            posx [j]   = posx [j+1];
            posx [j+1] = auxnum;

            auxnum      = padre [j];
            padre [j]   = padre [j+1];
            padre [j+1] = auxnum;

            auxchar     = rama [j];
            rama [j]    = rama [j+1];
            rama [j+1]  = auxchar;

            strcpy (aux, dir [j]);
            strcpy (dir [j], dir [j+1]);
            strcpy (dir [j+1], aux);

            strcpy (aux, nombre [j]);
            strcpy (nombre [j], nombre [j+1]);
            strcpy (nombre [j+1], aux);

            cont = j;
         }
      }
      tope = cont;
   } while (tope > 2);
}

void cursor (int modo)
{  union REGS reg;
   if (modo == 0)
   {  reg.x.cx = 0x2000;
      reg.x.ax = 0x100;
      int86 (0x10, &reg, &reg);
   }
   else
   {  reg.x.cx = 0;
      reg.x.ax = 0;
      int86 (0x10, &reg, &reg);
   }
}

void pantalla ()
{  register int i;
   char fondo [1921];

   for (i=0; i <= 1919; i++)
      fondo [i] = 177;
   fondo [1920] = '\0';
   cprintf ("%s",fondo);
}

void recuadro (int x1, int y1, int x2, int y2, char caracter [9], int y3, char caracter2 [5])
{  int i;

   for (i=y1 + 1; i <= y2 -1 ; i++)
   {
      for (k=x1 + 1; k <= x2 -1 ; k++)
      {  gotoxy (k,i);
         cprintf ("%c", caracter [9]);
      }
   }

   for (i=x1 + 1; i <= x2 -1 ; i++)
   {  gotoxy (i, y1);
      cprintf  ("%c", caracter [1]);

      gotoxy (i, y2);
      cprintf  ("%c", caracter [5]);

      gotoxy (i, y2+1);
      cprintf  ("%c", caracter [8]);

      if ((caracter2 [1] != ' ') && (caracter2 [1] != '\0'))
      {  gotoxy (i, y3);
         cprintf  ("%c", caracter2 [1]);
      }
   }

   gotoxy (x2, y2+1);
   cprintf ("%c%c", caracter[8], caracter[8]);

   gotoxy (x2+1, y2);
   cprintf ("%c", caracter[8]);

   for (i=y1 + 1; i <= y2 -1 ; i++)
   {  gotoxy (x1, i);
      cprintf  ("%c", caracter [3]);

      gotoxy (x2, i);
      cprintf  ("%c", caracter [7]);

      gotoxy (x2+1, i);
      cprintf  ("%c", caracter [8]);
   }

   gotoxy (x1, y1);
   cprintf  ("%c", caracter [0]);

   gotoxy (x2, y1);
   cprintf  ("%c", caracter [2]);

   gotoxy (x2, y2);
   cprintf  ("%c", caracter [4]);

   gotoxy (x1, y2);
   cprintf  ("%c", caracter [6]);

   if ((caracter2 [0] != ' ') && (caracter2 [0] != '\0'))
   {  gotoxy (x1,y3);
      cprintf ("%c", caracter2 [0]);
   }

   if ((caracter2 [2] != ' ') && (caracter2 [2] != '\0'))
   {  gotoxy (x2,y3);
      cprintf ("%c", caracter2 [2]);
   }
}

void trazar_linea (int x, int y1, int y2, char caracter [])
{  int i;
   gotoxy (x,y1);
   cprintf ("%c",caracter [0]);
   for (i=y1+1; i <= y2-1; i++)
   {  gotoxy (x,i);
      cprintf ("%c",caracter [1]);
   }
   gotoxy (x,y2);
   cprintf ("%c",caracter [2]);
}

int mostrar_pedazo (int x, int y, char texto [],int inicio, int fin)
{  int i;
   gotoxy (x,y);
   for (i=inicio; (i <= fin) && (i <= strlen (texto)); i++)
      cprintf ("%c", texto [i]);
   return i;
}

int boton_mouse (int num)
{  // 0 = boton sin presionar.
   // 1 = boton izquierdo presionado.
   // 2 = boton del medio o el derecho presionado.
   // 3 = boton izq y dech presionado o izq y del medio presionado
   //     o los tres botones presionados.
   union REGS reg;
   reg.x.ax = 5;
   reg.x.bx = num;
   int86 (0x33, &reg, &reg);
   return (reg.x.ax);
}

int existe_mouse ()
{  union REGS reg;
   reg.x.ax = 0;
   int86 (0x33, &reg, &reg);
   return (reg.x.ax);
}

void gotoxy_mouse (int x, int y)
{  union REGS reg;
   reg.x.ax = 4;
   reg.x.cx = x;   // en pixels
   reg.x.dx = y;   // en pixels
   int86 (0x33, &reg, &reg);
}

void mostrar_cursor_mouse ()
{  union REGS reg;
   reg.x.ax = 1;
   int86 (0x33, &reg, &reg);
}

void sacar_cursor_mouse ()
{  union REGS reg;
   reg.x.ax = 2;
   int86 (0x33, &reg, &reg);
}

void posicion_mouse (int *x, int *y)
{  union REGS reg;
   reg.x.ax = 3;
   int86 (0x33, &reg, &reg);
   *x = reg.x.cx;   // en pixels
   *y = reg.x.dx;   // en pixels
}

void reloj ()
{  long far *pnt_hora = MK_FP(0x40, 0x6C), reloj2;
   int h, m, s;
   char a [10];
   struct date d;

   reloj2  = *pnt_hora;
   h       = reloj2 / 65543;
   reloj2 -= h * 65543;
   m       = reloj2 / 1092;
   reloj2 -= m * 1092;
   s       = reloj2 / 18.2;

   itoa (s,a,10);
   gotoxy (46,25);

   textcolor (14);
   cprintf ("HORA: ");
   printf ("%2d:%2d:%c%c", h, m, a [strlen (a)-2], a [strlen (a)-1]);

   getdate(&d);
   gotoxy (20,25);
   cprintf ("FECHA: ");
   printf  ("%2d:%2d:%2d", d.da_day, d.da_mon, d.da_year);
}



Captura de imagen en Windows 10 corriendo bajo el emulador DOS BOX:
Anexos
CDIR.PNG
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes




Retornar para Piadas, Vídeos e Fotos engraçadas

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro