Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - javierglez

Páginas: [1] 2 3
1
Commodore 128 / The 8 Bit Theory
« en: Octubre 31, 2023, 22:44:54 »
Este canal de Youtube tiene unos vídeos sobre la programación de C128 centrada en el VDC, el chip de vídeo de 80 columnas. El chaval programa en BASIC de C128 con una extensión que facilita el acceso a los registros del VDC y a la memoria de vídeo dedicada.

El tío debió tener un C128D, porque centra sus experimentos en 64k de memoria dedicada. A veces se flipa, pero precisamente por eso sus vídeos son interesantes.

El VDC tiene cierta compatibilidad con el Motorola 6845, controlador de CRT que utilizan el IBM PC y otros ordenadores. A diferencia del VDC, el Motorola no puede generar señal de video por sí solo, necesita una ULA o algo así. Por eso los ordenadores con Motorola no tienen exactamente las mismas prestaciones pero sí se dan un aire.

El CGA del IBM PC es conocido por el modo de 320x200 con colores negro, blanco, cyan y magenta, pero tiene más posibilidades. Por ejemplo, el modo no soportado por la BIOS, de 160x100 en 16 colores, que no se usó en la época pero se ha popularizado con el Paku Paku. La tentación de probar eso en VDC es grande pero ... si bien esa resolución debería necesitar 8kB, en CGA necesita 16kB, malgastando 8kB. En el VDC necesita ... 24kB, malgastando 16kB. Eso tira para atrás, entre otras cosas porque un C128 normal tiene 16kB de memoria dedicada VDC. Pero no a ese flipado.

Recomiendo empezar a mirar sus vídeos por este: C128 vs IBM XT: 16 Color CGA Graphics using the 30 year old VDC-Basic extension
https://www.youtube.com/watch?v=yvTVJPRz8GY

El IBM PC AT introdujo el adaptador EGA con más colores y modos gráficos que se popularizó en USA con las aventuras gráficas. Uno de los modos tiene 640x200 en 16 colores. Puede el VDC dar eso? Pse, con celdas de color sí. Celdas de 8 bits de ancho y 2 de alto. En realidad está usando de fondo el mismo modo de 24kB que en el video anterior. Pero a este chico el color clash no le detiene.

El segundo vídeo a mirar se titula: EGA on the C128? And it looks great
https://www.youtube.com/watch?v=ES4eBcKxmE4

Acceder a la memoria dedicada del VDC es lento, pero no todo en ese chip es malo. Tiene comandos que permiten copiar bloques dentro de dicha memoria dedicada. Aquí el autor hace sus pinitos con transiciones entre imágenes, y también scrolls verticales y horizontales. Con resultados mezclados: triunfa con el scroll vertical y, a pesar de hacer las cosas de manera correcta, fracasa con el scroll horizontal. La incompetencia de Commodore se impone al menos de momento porque el chaval promete seguir intentando. También toca el tema emuladores, pues el VICE128 es inadecuado para VDC.

Es el último vídeo que tiene de momento, dedicado al VDC: How to scroll Fullscreen Graphics using Basic on the C128. Much easier than on the C64.
https://www.youtube.com/watch?v=NLUrxx0t2HU

El otro tema que toca en sus videos es la programación en BASIC con la perspectiva de los juegos que está haciendo de estrategia, simulación, no estoy seguro. Todos sabéis que el BASIC es lento, por eso se abandonaba por el lenguaje máquina. Creo que quien se acerca hoy en día de fuera del ámbito del 6502 tira por el C.

En todo caso en este vídeo enseña varias cosas interesantes de cómo usar el compilador Blitz BASIC en C128, por ejemplo, optimizaciones. Pero especialmente cómo usarlo conjuntamente con la extensión de BASIC para accceso al VDC antes mencionada.

Blitz! Basic Compilers for the C64 and C128. Plus a bit of X16 and Mega65. C128 beat the X16 btw
https://www.youtube.com/watch?v=5thXpk_hv54

El último vídeo que me he mirado, también sobre programación BASIC, es sobre un "microcompilador" de BASIC. Se trata de un compilador que trabaja sobre un subconjunto limitado de BASIC. Por ejemplo sólo trabaja con números enteros de 16 bits y no tiene variables alfanuméricas. Pero alcanza velocidades muy altas. Al final no sé hasta qué punto es más fácil aprender ensamblador o aprender a utilizar tantas herramientas pero no le quita interés al vídeo.

C128 Basic 100x faster? - Fast like a Flash: the Basic Microcompiler - RLE decoding on the C128
https://www.youtube.com/watch?v=Lr4Gfa-eXL0

Tiene otro vídeo más sobre las extensiones de memoria REU y GeoRAM. Está en alemán pero con subtítulos en inglés. Entiendo que no es una traducción autogenerada sino que está supervisada correctamente pero de momento me espero a ver si saca el mismo vídeo doblado al inglés, que es lo que suele hacer este tío.

REU und GeoRAM in BASIC Programmen nutzen
https://www.youtube.com/watch?v=Mj6qtbxnAvg

El canal tiene otros vídeos de temática más dispersa en alemán.
En resumen, son videos de programación pero más frescos de lo habitual, nada que ver con los típicos tutoriales de ensamblador o de C. Es posible que os gusten a los que no os gusta la programación pero sí el C128 o los PC compatibles antiguos. Especialmente si recordais algo de BASIC.



2
BASIC / Meter listados de BASIC en el VICE desde el portapapeles
« en: Febrero 06, 2023, 00:08:11 »
Es usar el menu EDIT->PASTE del VICE. Esto no mete directamente las líneas en la memoria, funciona como si se estuviera tecleando en el C64, y tarda un poco.
Pero hay que tener en cuenta dos cosas:
1) El listado tiene que estar en minusculas. Pero se pueden utilizar las mayúsculas para las abreviaciones de las keywords, por ejemplo ? es PRINT y pO es POKE.
2) Para los caracteres gráficos y los códigos de control en modo comillas no hay solución fácil. Si no hay demasiados se puede buscar el código ASCII y cambiar el símbolo en cuestión por CHR$.

Por ejemplo el tenliner del laberinto que he puesto hace poco aqui
https://commodoremania.com/foro/index.php/topic,2651.msg46302/topicseen.html#msg46302
Tiene una línea con 3 códigos de esos, la línea 2: limpiar pantalla (corazoncito, es CHR$(147)), color blanco, es CHR$(5) y modo REVERSE ON, es CHR$(18).

Se puede reescribir esa línea con esas substituciones y las abreviaturas de los comandos y en este caso queda por debajo de 80 caracteres la línea, por lo que entra en el editor del C64:

Código: [Seleccionar]
2 ?cH(147):a$="         ":fori=1to23:?cH(18)cH(5)"   "a$a$a$a$:next:l=fnr(48)*2
Así es resumen, podéis copiar estas líneas de abajo y pegar en el VICE con EDIT->PASTE. A veces en la última de las líneas no coge el RETURN. Al final de todo, cuando ha acabado el pegado, lo mejor es pulsar RETURN para asegurarse que entra la línea.


Código: [Seleccionar]
1 dima(5):fori=0to5:reada(i):next:deffnr(r)=int(rnd(1)*r):a=a(5)+fnr(11)*80
2 ?cH(147):a$="         ":fori=1to23:?cH(18)cH(5)"   "a$a$a$a$:next:l=fnr(48)*2
3 o=l<37:p=l>58:m=o*(l+41)+p*(l+862)+(40*l-1362)*not(poro):j=fnr(4):x=j:pokea,4
4 b=a+a(j):ifpeek(b)=160thenpokeb,j:pokea+a(j)/2,32:a=b:j=fnr(4):x=j:goto4
5 j=(j+1)*-(j<3):ifj<>xthen4
6 j=peek(a):pokea,32:ifj<4thena=a-a(j):j=fnr(4):x=j:goto4
7 ifpeek(a(4)-m-o*40+p*40+not(poro))=160thenm=m+o+p+40*not(poro)
8 pokea(4)-m,102:pokea,81:geta$:j=asc(a$+chr$(0))-65:ifj<0orj>3then8
9 b=a+a(j)/2:q=peek(b):e=q=102:if(q=32)orethenpokeb,81:pokea,32:a=b
10 ifnotethen8:data-2,2,80,-80,1024,1105


3
BASIC / Tweetcarts de BASIC
« en: Diciembre 24, 2022, 02:33:40 »
Durante una temporada salieron unos bots en Twitter que interpretaban programas en BASIC que cupieran en un tweet. El más activo fue el de BBC Micro. También me consta que hubo de QBASIC+GWBASIC (de MSDOS) y del BASIC de ZX SPECTRUM. Cuando el motor estimaba que se había alcanzado un resultados hacía una captura de pantalla o un GIF de la animación (el BBC Micro es especialmente adecuado para hacer animaciones con efectos de color cycling).

Os pongo aquí un ejemplo de programa de BBC Micro adaptado para BASIC 3.5. El listado de BBC Micro:

Código: [Seleccionar]
10 MODE2
20 FORI=0TO30
30 X=840:Y=0:L=200:A=PI/2
40 FORJ=0TO10
50 U=L*COSA:V=L*SINA:MOVEX-V/8,Y+U/8:PLOT1,V/4,-U/4: PLOT81,U-V/4,V+U/4:PLOT81,V/4,-U/4:X=X+U:Y=Y+V:L=L*5/6
60 A=A+(RND(2)-1.5)*.7
70 NEXT,
80 K=0:M=0
90 FORY=0TO1024STEP4
100 FORX=0TO1280STEP8
110 I=.755*X+.57*Y:I=I-INT(I)
120 IFK>0GOTO150
130 M=0
140 IFPOINT(X+M,Y)=7:M=M+8:K=M:GOTO140
150 IFK>0ANDY>450ANDI>.9GCOL0,2:MOVEX,Y-4:PLOT1,0,-32
160 IFK>0F=3*(M-K)/M:C$="0137":K=K-8:GOTO180
170 F=3*Y/1024:C$="2046"
180 GCOL0,ASC(MID$(C$,INTF-(F-INTF>I)+1))-48
190 PLOT69,X,Y
200 NEXT,

* snipet1bbc.jpg (177.6 kB . 640x512 - visto 230 veces)
Aquí una adaptación que he hecho para C16:

Código: [Seleccionar]
10graphic3,1
12color0,10,1:color1,1:color3,16,2
14box1,0,0,159,199,,1
20fori=0to30
30x=105:y=200:l=50:a=3.1416/2
40forj=0to10
50u=l*cos(a):v=l*sin(a):locatex-v/16,y-u/8:draw0tox+v/16,y+u/8
52draw0tox+u/2+v/16,y-v+u/8:draw0tox+u/2-v/16,y-v-u/8
54draw0tox-v/16,y-u/8:ifj<8thenpaint0,x+u/4,y-v/2
56x=x+u/2:y=y-v:l=l*5/6
60a=a+(int(2*rnd(1))-0.5)*.7
70nextj,i
80k=0:m=0
90fory=0to199
100forx=0to159
110i=3.02*x+2.28*y:i=i-int(i)
120ifk>0then150
130m=0
140locatex+m,199-y:ifrdot(2)=0thenm=m+1:ifx+m<160thenk=m:goto140
150ifk>0andy>90andi>.9thendraw3,x,200-ytox,207-y
160ifk>0thenk=k-1:goto200
170f=3*y/200:c$="@4>7":l$="5432"
180b=1+((f-int(f))<i):c=int(f)+b+1
182g=asc(mid$(c$,c))-48:h=asc(mid$(l$,c))-48
184p=1+b:if(fand1)=1thenp=2-b
186colorp,g,h
190drawp,x,199-y
200nextx,y

* snipet1c16.jpg (135.19 kB . 799x688 - visto 214 veces)
Y la versión BASIC 3.5 para C64, que es igual pero cambiando los códigos de los colores. Cambian las líneas:
Código: [Seleccionar]
12color0,10:color1,1:color3,6
170f=3*y/200:c$="4289"
182g=asc(mid$(c$,c))-48
186colorp,g

* snipet1c64.jpg (194.16 kB . 977x823 - visto 180 veces)
El BASIC de 3.5 lo podéis obtener en cdsb: https://csdb.dk/release/?id=189017

4
BASIC / Tenliners
« en: Noviembre 28, 2022, 22:52:05 »
Un tenliner es un programa en BASIC de menos de 10 lineas. Se hacen concursos. Este es un tenliner del tipico juego de la serpiente que destaca por ser especialmente corto.

Al comer los roscos (al pasar por encima) la serpiente crece. Si choca contra los bordes o contra una cruz el juego se acaba. La puntuacion es el numero de roscos comidos. La letra A gira a la izquierda y la D a la derecha.

Adjunto un listado y una captura del juego en marcha (he puesto el emulador al 10% de velocidad porque soy lento).

* listado.jpg (40.15 kB . 479x163 - visto 274 veces)

* snake.png (2.6 kB . 384x272 - visto 293 veces)

5
Commodore PET / Demos
« en: Julio 17, 2022, 03:23:57 »
Esta pasando inadvertida esta demo y no pue ser

https://www.youtube.com/watch?v=ytob8TCMcjk

Recordad que el PET no tiene modo hires, esto lo hacen sincronizando la ejecución del código con el raster y cambiando los códigos de los caracteres en cada línea raster, cada fila de caracteres abarca 8 líneas raster. Creo que en el ZX81 también hacen esto.

6
Commodore 16 / Plus 4 / Tenliner interesante C16
« en: Abril 15, 2022, 12:27:33 »
Pues eso, un tenliner interesante de un laberinto en BASIC para C16.
https://plus4world.powweb.com/software/100-Line_Maze

Hay un link a la pagina de itchio, ahí es donde sale explicado el código.

Me parece interesante porque utiliza los códigos de escape para hacer scroll una línea arriba o abajo, y las ventanas de texto para escribir con PRINT en la ultima línea de la pantalla sin que salte el desplazamiento automático del editor. Es decir, es BASIC 3.5, y no se puede convertir directamente al BASIC 2 de un C64.

A parte de eso el programa también tiene otras cosas interesantes.

8
Commodore 16 / Plus 4 / 3D construction kit
« en: Octubre 14, 2021, 16:40:33 »
Han hecho un port, de la versión de C64 me parece. En realidad no se nada de este programa, parece interesante. He probado algo de lo que han colgado en el emulador en plus4world y me parece que va demasiado lento. Probablemente hubiera funcionado bien en la SuperCPU.

9
Desarrollo / Cross lib de Fabrizio Carusso
« en: Junio 09, 2021, 18:41:55 »
Para hacer programas multiplataforma 
Trae 4 juegos de ejemplo, son un poco estilo VIC-20, no están mal en el VIC pero se ven sencillos en plataformas mas potentes.  Trae enlaces para probarlos en algunos emuladores sobre web:
https://github.com/Fabrizio-Caruso/CROSS-LIB

Para los Commodore 8-bit usa el cc65 pero entiendo que el mismo listado se puede compilar en diferentes plataformas. Aquí paso el link del proyecto.
https://github.com/Fabrizio-Caruso/CROSS-LIB

Aun no me lo he mirado pero lo pongo porque me interesa, parece una forma interesante de aprender C y cc65 si te interesan otros ordenadores también.

10
Ensamblador / Videos tutoriales de ensamblador
« en: Mayo 11, 2021, 17:52:10 »
El canal de este tío tiene un montón de tutoriales de ensamblador para un montón de procesadores, ordenadores y consolas. Tiene 8 para VIC20, 9 para C64, 11 para Amiga, ahora esta haciendo de PET, un tutorial de 8 programando para 9 sistemas a la vez, también tiene de NES, etc, un montón de tutoriales.

Me parece que tiene unos 500 videos. Es el Leonardo del ensamblador.
https://www.youtube.com/c/ChibiAkumas/videos

11
Commodore VIC-20 / Juego arcade para VIC 20 y C16
« en: Mayo 04, 2021, 18:42:17 »
Os presento un juego que me he tirado programando bastante tiempo, empecé hace 4 años en 2017. Lo llevé a Retrobarcelona 2019, donde los habituales de la parroquia le echaron un tiento. Luego hice bastantes cambios. Gracias a Bieno por probarlo este finde. Podéis echar un vistazo a un gameplay en este video:
https://youtu.be/5vYkcGLmBTw
Pretende parecerse al primer nivel de un arcade español de 1981, Draco de la compañía barcelonesa Cidelsa. Lo he llamado Sidelsa en recuerdo.

El videojuego original fue uno de los primeros con "continue", lo que daba sentido a los muchos niveles  que tenía, teniendo en cuenta que era bastante rápido. Podéis echar un vistazo a un gameplay en este video:
https://www.youtube.com/watch?v=a5Wd79IGqNs

Creo que está disponible para MAME pero soy novato en eso. Un Pentium 75 Mhz que me compré llevaba una versión muy vieja de MAME y desde entonces tengo pendiente prepararlo un poco mejor (cambiar la pila, encontrar joystick, etc.).

Aunque no solía jugar a sus juegos porque eran rápidos tengo bastante recuerdo de sus títulos. En especial del feto de Altair II. Podéis encontrar la historia de la compañía y de sus títulos en este link:
https://www.recreativas.org/empresas/cidelsa-301/

(al ver los dos videos juntos me he dado cuenta que la intermitencia de los colores de los bloquecitos es mas rápida en el arcade y he cambiado los ficheros)

(añado las instrucciones)

Mueve el joystick sin pulsar el botón para mover el jugador por el área. Si aprietas el botón mientras mueves el jugador se van disparando rayos.

Si aprietas el botón antes de mover el joystick estableces la dirección del disparo y empieza a disparar con autorrepetición.  Esto compensa que el arcade original tuviese dos joysticks.

Cuando pulsas disparo con el joystick suelto el fuego se detiene. ​Suelta el boton antes de soltar la palanca para dejar activada la autorrepetición del disparo.

12
Eventos / Concurso desarrollo TheC64
« en: Noviembre 08, 2020, 18:48:22 »
Pues eso, concurso de desarrollo de videojuegos para VIC20 y C64, el ganador gana un TheC64 o un The Mini C64.

https://vintageisthenewold.com/retro-games-ltd-announces-a-c64-and-vic-20-game-development-competition/

Tienen que ser proyectos nuevos no pueden estar a medias


13
Os presento mi jueguecillo de saltar obstáculos con control de un solo botón, a imitación del juego del Dino de Chrome cuando no hay conexión a internet.
https://www.youtube.com/watch?v=zSpjyBSvrUw
Cuelgo la versión de VIC 20, que es en la que más he testeado lo que es la dificultad, y otra versión para C16.
(modificado)
(modificado para ralentizar variacion velocidad y bug version C16 NTSC)

14
Commodore VIC-20 / Demo o lo que sea
« en: Septiembre 04, 2020, 22:50:04 »
Cogi la parte que seleccionas una bandera y toca el himno del Summer Games de C64 y lo adapte para el VIC 20 con +8K. Para quien le interesen las similitudes entre el VIC20 y el C64. Mas adelante pondre el proyecto en Github o algo asi.
http://www.gnzlz.es/summeran.prg

15
Desarrollo / Monitor VICE emuladores
« en: Agosto 09, 2020, 00:09:34 »
Me he descargado Vice 3.4 y veo que al abrir el monitor solo aparece la ventana de la consola, sin las otras ventanitas de listados de desensamblado y volcados de memoria que salían antes, o eso me parece. No es que sea mucho mas incomodo, pero meh.

Por otra parte leo que se puede adjuntar al monitor un debugguer externo, aunque no tengo ni idea de que programas ni de como hacerlo.


Páginas: [1] 2 3