DeskJoy para PCW
DeskJoy para PCW
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
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
-
- Mensajes: 6226
- Registrado: 13 Nov 2010 02:08
- Ubicación: Barcelona
- Agradecido : 665 veces
- Agradecimiento recibido: 1017 veces
Re: DeskJoy para PCW
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?
Buscando la IP de la W.O.P.R. he encontrado mi índice
- ron
- Mensajes: 21856
- Registrado: 28 Oct 2010 14:20
- Ubicación: retrocrypta
- Agradecido : 3862 veces
- Agradecimiento recibido: 4755 veces
Re: DeskJoy para PCW
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.
Pues no te lo creerás, pero todavía no lo he probado en mi PCW.
Requisitos mínimos: Un PCW.
Requisitos opcionales: un ratón (AMX, KEMPSTON, KEYMOUSE).
Está escrito en MESCC, mi propia versión de Small C, que genera ensamblador Z80.
Saludos.
- DyLucke
- Mensajes: 4726
- Registrado: 30 Oct 2010 12:52
- Ubicación: Pompaela vieja
- Agradecido : 136 veces
- Agradecimiento recibido: 183 veces
Re: DeskJoy para PCW
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?
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 playing games.
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".
You've nowhere to run,
I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".
Re: DeskJoy para PCW
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.
DeskJoy funcionará en cualquier disco que admita CP/M en el PCW. Vamos, que sí.
¿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.
Pero me ha quedado bonito, ¿a que sí?
Se puede descargar en mi web, of course.
Saludos.
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: DeskJoy para PCW
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
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
-
- Mensajes: 6226
- Registrado: 13 Nov 2010 02:08
- Ubicación: Barcelona
- Agradecido : 665 veces
- Agradecimiento recibido: 1017 veces
Re: DeskJoy para PCW
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.
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.
Buscando la IP de la W.O.P.R. he encontrado mi índice
- ron
- Mensajes: 21856
- Registrado: 28 Oct 2010 14:20
- Ubicación: retrocrypta
- Agradecido : 3862 veces
- Agradecimiento recibido: 4755 veces
Re: DeskJoy para PCW
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 !!!
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 !!!
Re: DeskJoy para PCW
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é?
Sí, se parece algo a GEM, y es deliberado. Podría paracerse más a VENTANAS, pero no me da la gana.
-
- Mensajes: 6226
- Registrado: 13 Nov 2010 02:08
- Ubicación: Barcelona
- Agradecido : 665 veces
- Agradecimiento recibido: 1017 veces
Re: DeskJoy para PCW
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.
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.
Buscando la IP de la W.O.P.R. he encontrado mi índice
Re: DeskJoy para PCW
Jopetas, Dancresp, cuanta pregunta!! (es broma)
A ver...
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.
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.
También estoy en ello. Ahí hay que darle a los "widgets" (yo los llamo items) del GUI.
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.
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...
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:
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.
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.
-
- Mensajes: 299
- Registrado: 29 Oct 2010 15:07
- Ubicación: Husillos
- Agradecido : 2 veces
- Agradecimiento recibido: 1 vez
- Contactar:
Re: DeskJoy para PCW
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.
Re: DeskJoy para PCW
vcoraba escribió:-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.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados