DeskJoy para PCW

FloppySoftware

DeskJoy para PCW

Mensajepor FloppySoftware » 13 Feb 2014 23:18

Estos días estoy dándole retoques a Samaruc, mi GUI para PCW, y como conejillo de indias he codigo a DeskJoy, una especie de desktop o lanzador de programas, con iconos y todo eso, que escribí hace unos meses.

Externamente, le estoy dando un nuevo aire a las ventanas, aunque es internamente donde le estoy dando algo más que una mano de pintura.

He estado cotilleando GTK, entre otros, y he empezado a implementar algo parecido a eventos de ratón, etc.

La verdad es que es bastante interesante todo esto.

Os dejo alguna cosilla de la versión actual de DeskJoy con Samaruc en sus entrañas.

Saludos.

[img=center]http://floppysoftware.vacau.com/deskjoy.jpg[/img]

http://www.youtube.com/watch?v=k-yJDDrHRvY

http://www.youtube.com/watch?v=tvd5zrcQzvw

http://www.youtube.com/watch?v=QpJYksyWhVc

dancresp
Mensajes: 5091
Registrado: 13 Nov 2010 02:08
Agradecido : 37 veces
Agradecimiento recibido: 105 veces

Re: DeskJoy para PCW

Mensajepor dancresp » 14 Feb 2014 01:08

-shock

Pues no se que decir... ¿Flipante?

Con otros sistema no lo se, pero con el PCW eres una auténtica máquina.

Y puestos a preguntar:
¿Eso cabe en un disquete de 180KB?
¿Cuanto ocupa?
¿Lo has probado en la máquina real?
¿Requisitos mínimos?

vcoraba
Mensajes: 296
Registrado: 29 Oct 2010 15:07

Re: DeskJoy para PCW

Mensajepor vcoraba » 14 Feb 2014 15:53

menudo nivel!!!
a ver si saco un rato y lo pruebo, por que se ve curradisimo.

Avatar de Usuario
ron
Mensajes: 17746
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 705 veces
Agradecimiento recibido: 761 veces

Re: DeskJoy para PCW

Mensajepor ron » 14 Feb 2014 20:00

Esto hay que catarlo y probarlo, tiene una pinta muy elaborada !!!

FloppySoftware

Re: DeskJoy para PCW

Mensajepor FloppySoftware » 15 Feb 2014 12:47

dancresp escribió:¿Eso cabe en un disquete de 180KB?
¿Cuanto ocupa?
¿Lo has probado en la máquina real?
¿Requisitos mínimos?


Cabe en un disquete y sobra espacio, ocupa 40 KB. -rofl

Pues no te lo creerás, pero todavía no lo he probado en mi PCW. -banghead

Requisitos mínimos: Un PCW. -grin

Requisitos opcionales: un ratón (AMX, KEMPSTON, KEYMOUSE). -thumbup

Está escrito en MESCC, mi propia versión de Small C, que genera ensamblador Z80. -thumbup

Saludos.

FloppySoftware

Re: DeskJoy para PCW

Mensajepor FloppySoftware » 15 Feb 2014 12:49

Vcoraba, Ron, Dancresp, se aceptan críticas, comentarios, sugerencias... -thumbup

Avatar de Usuario
DyLucke
Mensajes: 4108
Registrado: 30 Oct 2010 12:52
Ubicación: Pompaela vieja
Agradecido : 56 veces
Agradecimiento recibido: 44 veces

Re: DeskJoy para PCW

Mensajepor DyLucke » 15 Feb 2014 16:16

Es una auténtica maravilla. De verdad.

La pregunta que se me antoja es la siguiente... ¿Es posible algún apaño de tipo disco duro en el PCW?
Y siendo así... ¿Funcionaría esta joya sobre disco duro?
"I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

FloppySoftware

Re: DeskJoy para PCW

Mensajepor FloppySoftware » 15 Feb 2014 17:35

DyLucke escribió:¿Es posible algún apaño de tipo disco duro en el PCW?
Y siendo así... ¿Funcionaría esta joya sobre disco duro?


Hola DyLucke,

De hecho, en UK había varios modelos de disco duro a elegir. Carísimos, eso sí. Yo sólo los he visto en fotografía. -507

DeskJoy funcionará en cualquier disco que admita CP/M en el PCW. Vamos, que sí. -thumbup

¿Por qué? Porque sólo hace uso de las funciones estándar del BDOS de CP/M.

Este programa puede funcionar en cualquier sistema de disco, ahora bien, cuanto más grande sea... ¡mejor!

Por otro lado, el programa tampoco es nada del otro mundo. -no

Pero me ha quedado bonito, ¿a que sí? -rofl

Se puede descargar en mi web, of course. -thumbup

Saludos.

Avatar de Usuario
luiscoco
Mensajes: 2337
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 34 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: DeskJoy para PCW

Mensajepor luiscoco » 20 Feb 2014 04:13

Dios, como me gusta, y yo que no termino nada, que rabia me da, jaja
Magnifico trabajo, tendré que meter a los equipos amstrad que no se nada de ellos, solo hice un inventario en basic (en españa), en un viaje de tres meses, lo vendi en 18000 pelas, ya hace mucho, tenia floppys de 3" monitor incorporado, ni se cual era, un dia reviso, jeje

Tiene algún parecido al de Atari ST, pues que bien esta, si necesitas algo avisa
Abrazos

dancresp
Mensajes: 5091
Registrado: 13 Nov 2010 02:08
Agradecido : 37 veces
Agradecimiento recibido: 105 veces

Re: DeskJoy para PCW

Mensajepor dancresp » 20 Feb 2014 10:22

Bueno, lo estoy probando.

Por ahora la experiencia es positiva excepto con la velocidad del puntero del ratón, pero no se si el problema es mio.

Hoy doy mi veredicto. -507

Avatar de Usuario
ron
Mensajes: 17746
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 705 veces
Agradecimiento recibido: 761 veces

Re: DeskJoy para PCW

Mensajepor ron » 20 Feb 2014 20:46

FloppySoftware, mi Amstrad PCW 8256 ampliado a 512KB de RAM te da las gracias ya que se siente feliz porque hoy ha probado algo diferente a lo que suele estar acostumbrado, y le ha gustado !!!

Yo directamente me quito el sombrero y digo !! Chapeau ! es una pena que no tenga ratón para mi PCW, seguramente hubiera hecho una experiencia sublime. Gracias un millón !!!

FloppySoftware

Re: DeskJoy para PCW

Mensajepor FloppySoftware » 20 Feb 2014 21:50

luis46coco escribió:Dios, como me gusta, y yo que no termino nada, que rabia me da, jaja
Magnifico trabajo, tendré que meter a los equipos amstrad que no se nada de ellos, solo hice un inventario en basic (en españa), en un viaje de tres meses, lo vendi en 18000 pelas, ya hace mucho, tenia floppys de 3" monitor incorporado, ni se cual era, un dia reviso, jeje

Tiene algún parecido al de Atari ST, pues que bien esta, si necesitas algo avisa
Abrazos


Hola Luis46coco,

Pues mira, yo termino algo "de vez en cuando", porque tengo cosas a medias mogollón, ahora así a bote pronto:

+ CLP / UX para CP/M, algo así como un shell estilo Unix para CP/M (¿Por qué? Pues no se, me dio por ahí).
+ ROSWELL, un juego marcianero tipo puzzle con escaleritas que subir y tal. Se supone que está acabado, pero tengo que pulir cosas como la velocidad de juego.
+ UMMO, un juego matamarcianos. Bastante avanzado y jugable, pero como soy un perfeccionista de m..., muchos detalles por pulir.
+ KSLIB, biblioteca de funciones para MESCC, control de teclado y pantalla estándar en CP/M.
+ TWO, The World Of, librería de funciones para MESCC, para juegos, ligeramente basado en Greenfoot.
+ Nueva versión de MESCC, con biblioteca de funciones para PCW, y genéricas CP/M.
+ y yo qué se cuántas cosas más.

Pero de vez en cuando termino algo, y lo pongo a disposición de los amantes de CP/M y/o PCW. Si no compartes... ¿pa qué? -thumbup -drinks

Sí, se parece algo a GEM, y es deliberado. Podría paracerse más a VENTANAS, pero no me da la gana. -507

dancresp
Mensajes: 5091
Registrado: 13 Nov 2010 02:08
Agradecido : 37 veces
Agradecimiento recibido: 105 veces

Re: DeskJoy para PCW

Mensajepor dancresp » 21 Feb 2014 14:26

ron escribió:FloppySoftware, mi Amstrad PCW 8256 ampliado a 512KB de RAM te da las gracias ya que se siente feliz porque hoy ha probado algo diferente a lo que suele estar acostumbrado, y le ha gustado !!!

¿Esto quiere decir que lo has probado en la máquina real?
Ya me gustaría.

Por mi parte, lo he probado bastante a fondo y la verdad es que lo encuentro una pasada, sin ánimos de peloteo. -drinks

De todas formas dejo varios temas:
- El programa tendría que ir en un disco de arranque e iniciarse solito.
- No entiendo como va lo del ratón. Pixel a pixel, no, y si va por bloques verticalmente va más rápido que horizontalmente. De todas formas, no creo que sea "culpa" de tu aplicación. ¿Luz para este tema?
- He creado nuevos "Links" y está muy currado. ¿Que tal un "TAB" para saltar entre los distintos campos?
- ¿Poder hacer nuevos iconos?

Por el resto, vuelvo a decir que está muy, muy currado y el aspecto me encanta.
He creado "link", los puedes colocar donde quieras, todo funciona a una velocidad más que decente, olé !!!

Vamos, que me gustaría verlo funcionando en la máquina real...

Lo ideal sería tener el sistema operativo y el deskjoy en un disquete en "A" y las aplicaciones ponerlas en la unidad "B", por ejemplo.

Y para terminar, una pregunta más:
¿Como se hace para llamar a un programa desde tu programa, y que al finalizar éste vuelva a tu programa?
No hace falta que te enrolles mucho, pero no sabía que se pudiera hacer desde el CP/M-80. Interesante.

Nada más, que no es poco.

FloppySoftware

Re: DeskJoy para PCW

Mensajepor FloppySoftware » 21 Feb 2014 20:55

Jopetas, Dancresp, cuanta pregunta!! (es broma)

A ver...

dancresp escribió:De todas formas dejo varios temas:
- El programa tendría que ir en un disco de arranque e iniciarse solito.


Muy fácil, y cualquiera puede hacerse un disco de arranque en un plis plas, CP/M Plus lo tiene todo controlado (CP/M 2.2 en absoluto).

1. Crear un archivo de texto ascii normalito llamado PROFILE.SUB
2. Escribir en él lo siguiente:

DESKJOY

3. Poner en el mismo disco los archivos:

DESKJOY.COM
SUBMIT.COM
J14SCPM3.EMS (o equivalente, podría ser incluso un .EMT)


Cada vez que reiniciemos o encendamos la máquina, le metemos este disco en A:, y a correr.

Sugerencias del chef: En dicho archivo PROFILE.SUB podemos poner (antes de la orden DESKJOY, claro), cualquier otra orden que deseemos, de configuración, etc. Por ejemplo con SETDEF, para establecer el orden de búsqueda de comandos, o con PIP, copiando ciertos ejecutables en la unidad M: de memoria para un acceso más rápido y que siempre estén disponibles, etc.

- No entiendo como va lo del ratón. Pixel a pixel, no, y si va por bloques verticalmente va más rápido que horizontalmente. De todas formas, no creo que sea "culpa" de tu aplicación. ¿Luz para este tema?


El ratón va fatal, más que nada porque los drivers que he escrito, dan pena. Ya dije que estoy en ello, y próximamente en sus pantallas, mejor control del ratón.
De todas formas, aclaro: El puntero del ratón se mueve de carácter a carácter (8 pixels por 8 pixels), porque el GUI está orientado a carácter, no a pixel, por temas de rapidez y simplicidad (eso no significa que no pueda tratar los píxeles cuando sea necesario).
Pero los pixels del PCW son particulares: son el doble de alto, que de ancho.
Eso significa, que un carácter, aun cuando está formado por 8 píxeles de alto, y 8 de ancho, visualmente, es el doble de alto que de ancho.
Así, cuando mueves el cursor horizontalmente un carácter, lo mueves 8 pixels, mientras que cuando lo mueves verticalmente un carácter, también lo mueves 8 pixels, pero visualmente, equivalen a 16. ¿Me explico?

Por eso la sensación de que verticalmente, el cursor da saltos más grandes (justo el doble).

Ése es un aspecto a mejorar en los drivers del ratón. Y en ello estamos.

- He creado nuevos "Links" y está muy currado. ¿Que tal un "TAB" para saltar entre los distintos campos?


También estoy en ello. Ahí hay que darle a los "widgets" (yo los llamo items) del GUI.

- ¿Poder hacer nuevos iconos?


Oído cocina. Pero entonces he de programar un editor de iconos y/o posibilitar la importación de BMPs, o algo así. Me lo apunto.

Lo ideal sería tener el sistema operativo y el deskjoy en un disquete en "A" y las aplicaciones ponerlas en la unidad "B", por ejemplo.


Buena idea. Y si tienes una (o dos) unidades de 720 KB, ni te cuento. Lo del disco duro ya es soñar, pues haberlos haylos, pero...

¿Como se hace para llamar a un programa desde tu programa, y que al finalizar éste vuelva a tu programa?
No hace falta que te enrolles mucho, pero no sabía que se pudiera hacer desde el CP/M-80. Interesante.


De hecho, CP/M Plus permite incluso overlays, pues el BDOS tiene funciones específicas para ello.
Pero yo he ido a lo básico, sencillo, simple y... ¡efectivo!
El método que utilizo viene de los tiempos de CP/M 2.2 y los famosos MENUs.
El truco del almendruco, es crear un archivo $$$.SUB, y cada vez que se vuelva al CCP (el intérprete de comandos de CP/M), ejecutará los comandos que hayamos escrito en él.
Tiene un formato un tanto especial:
Cada comando se escribe en un registro de 128 bytes, en orden inverso de ejecución (es decir, el último comando a ejecutar, ha de escribirse en el 1er registro, y así sucesivamente).
El 1er byte de cada registro, indica la longitud del comando.
El 2º byte y siguientes, contienen el comando en sí (p. ej. DIR *.COM).
Los bytes sobrantes del registro son ignorados, y su valor es indiferente.

Cada vez que el CCP ejecuta un comando del archivo, elimina ese registro (trunca el archivo, de ahí el orden inverso de los comandos).

Cuando no queden más registros, el archivo $$$.SUB será eliminado automáticamente.

Por lo tanto, el programa lo que ha de hacer es escribir el archivo $$$.SUB y finalizar su ejecución.

Lo que hago en DESKJOY, es crear un $$$.SUB que ejecutará el comando que deseemos, y posteriormente ejecutará el comando DESKJOY, para volver al programa.

Sencillo, ¿verdad?

El código que hace esto en DeskJoy es:

Código: Seleccionar todo

if((bf = malloc(256)) == NULL)
   {
      DlgErr("Not enough memory for $$$.SUB"); return;
   }

   fn = "?:$$$.SUB"; fn[0] = SvDrvTmp;

   if((fp = fopen(fn, "wb")) != NULL)
   {
      bf[128] = strlen(lk_cmd[selectedlink]);
      strcpy(bf + 129, lk_cmd[selectedlink]);

      strcpy(bf + 1, "DESKJOY");

      if(lk_mode[selectedlink] & LKF_PAUSE)
         strcat(bf + 1, " -P");

      *bf = strlen(bf + 1);

      if(fwrite(bf, 256, 1, fp) == 1)
      {
         if(!fclose(fp))
         {
            if(lk_mode[selectedlink] & LKF_FULLSCR)
               ExitGui();
            else
            {
               MouseCur(MOUSE_OFF);

               WinNew(3, -1, 84, 28, lk_title[selectedlink], 0);

               BiosScrOut(27); BiosScrOut(X);
               BiosScrOut(WinRow() + 35); BiosScrOut(WinCol() + 34); BiosScrOut(55); BiosScrOut(111);
               BiosScrOut(27); BiosScrOut(p);
               BiosScrOut(27); BiosScrOut(H);

               WinDel();
            }

            BiosScrOut(27); BiosScrOut(lk_mode[selectedlink] & LKF_CURSOR ? e : f);

            exit();
         }
      }
   }

   free(bf);

   DlgErr("Cant create $$$.SUB");


Aquí está muy bien explicado (en inglés):

www.retroarchive.org/cpm/cdrom/CPMINFO/CHAIN.DOC

Pero como digo, CP/M Plus tiene funciones específicas en el BDOS, para enlazar la ejecución de programas, y hacer overlays.

Saludos.

vcoraba
Mensajes: 296
Registrado: 29 Oct 2010 15:07

Re: DeskJoy para PCW

Mensajepor vcoraba » 23 Feb 2014 17:26

-nb -nb -nb que version de CP/m usais, yo con la 1.2 se me cuelga en el PCW fisico, se va el raton a la derecha a toda velocidad y el reloj empieza a ir despacito despacito.

FloppySoftware

Re: DeskJoy para PCW

Mensajepor FloppySoftware » 23 Feb 2014 21:38

vcoraba escribió:-nb -nb -nb que version de CP/m usais, yo con la 1.2 se me cuelga en el PCW fisico, se va el raton a la derecha a toda velocidad y el reloj empieza a ir despacito despacito.


Lo del ratón, es porque no tienes ninguno, o el que está seleccionado por defecto no lo tienes (creo que AMX).

El reloj, únicamente cuenta las horas y los minutos, así que sólo cambiará cuando haya pasado 1 minuto, y así sucesivamente.

¿Cuándo se te cuelga? ¿Al hacer qué?

Si pulsas las teclas K, L, H, o la S, ¿se te desplega algún menú?

Deberías pulsar S, para entrar en el panel de control, seleccionar el ratón que tengas (o teclado, si no tienes), guardar los cambios y salir.

Aún cuando no se tenga un ratón, se puede utilizar el programa perfectamente, pulsando las teclas que corresponden a los carácteres subrayados de las opciones, menús, botones, etc.

También se puede utilizar las teclas del cursor para moverse por las posiciones de los iconos (pero tendrás que cambiar el tipo de ratón por defecto a teclado o el que tengas realmente).

El CP/M que utilizo reconoce los archivos FIB y las unidades de 3 1/2", pero supuestamente debería funcionar con cualquier CP/M para PCW.

Dime si logras hacerlo funcionar, porfa.

Saludos.


Volver a “Amstrad PCW”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado