ORIC - Help !!!

Avatar de Usuario
Chema
Mensajes: 2219
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1767 veces
Agradecimiento recibido: 577 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 13 May 2014 23:14

Último mensaje de la página anterior:

Vaya pinta que tiene esto! Otra vez enhorabuena...

Puedes volcar donde dices, siempre que vayas hacia abajo, claro. Si estás en modo texto puedes incluso empezar más arriba, en $b400.

Avatar de Usuario
Silicebit
Mensajes: 1494
Registrado: 16 May 2011 21:13
Ubicación: La buhardilla del silicio.
Agradecido : 99 veces
Agradecimiento recibido: 201 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Silicebit » 14 May 2014 19:24

dancresp, ¿podrías hacer que el código de operación quede separado del de operando? Creo que así quedaría más claro el listado después del ensamblado, por lo menos así lo he visto en algunos ensambladores, y la verdad es que se nota cuando es un listado largo a leer.
El 6809 es el Rolls-Royce de los 8bits, el 6502 es el Mercedes, y el Z80 el SEAT 850. Sorry, but... I think different. :-P -0r1c -m3s3x -t4nd1 -cbmja YouTube

dancresp
Mensajes: 5339
Registrado: 13 Nov 2010 02:08
Agradecido : 151 veces
Agradecimiento recibido: 288 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 14 May 2014 21:35

Silicebit escribió:dancresp, ¿podrías hacer que el código de operación quede separado del de operando? Creo que así quedaría más claro el listado después del ensamblado, por lo menos así lo he visto en algunos ensambladores, y la verdad es que se nota cuando es un listado largo a leer.

Si no entiendo mal, te refieres al código hexadecimal generado.

El tema no es complicado pero ahora mismo lo hago así para perder el menor tiempo posible en la impresión por pantalla, y hay que tener en cuenta que solo dispongo de 38 columnas ya que las dos primeras no las puedo usar.

Avatar de Usuario
Silicebit
Mensajes: 1494
Registrado: 16 May 2011 21:13
Ubicación: La buhardilla del silicio.
Agradecido : 99 veces
Agradecimiento recibido: 201 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Silicebit » 16 May 2014 17:28

dancresp escribió:
Silicebit escribió:dancresp, ¿podrías hacer que el código de operación quede separado del de operando? Creo que así quedaría más claro el listado después del ensamblado, por lo menos así lo he visto en algunos ensambladores, y la verdad es que se nota cuando es un listado largo a leer.

Si no entiendo mal, te refieres al código hexadecimal generado.

Sí, a eso mismo. :-)


dancresp escribió:El tema no es complicado pero ahora mismo lo hago así para perder el menor tiempo posible en la impresión por pantalla, y hay que tener en cuenta que solo dispongo de 38 columnas ya que las dos primeras no las puedo usar.

La verdad es que con 38 columnas no se pueden hacer muchas filigranas. En el C128 uso Merlin128 en 80 columnas y es una delicia... ¡Benditas 80 columnas! :-D
El 6809 es el Rolls-Royce de los 8bits, el 6502 es el Mercedes, y el Z80 el SEAT 850. Sorry, but... I think different. :-P -0r1c -m3s3x -t4nd1 -cbmja YouTube

Avatar de Usuario
ron
Mensajes: 18410
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1579 veces
Agradecimiento recibido: 1317 veces

Re: ORIC - Help !!!

Mensajepor ron » 16 May 2014 19:17

Hola señores !

Atentamente estoy siguiendo este hilo, ¡¡¡ con las 80 columnas hemos topado !!!! ohhhh ! -banghead y al igual que con otros micros, como el Vic20 o el Spectrum, hay pequeñas rutinas que permiten usar 40 o 64 caracteres ( columnas ) respectivamente. O como en el caso de ZX Spectum +3 y sus 51 columnas bajo CP/M.

¿ y cuantas columnas pinta de serie un Vic20 ?
Imagen
...en modo nativo ofrece 22 columnas x 23 filas, en un formato de 8 X 8 pixels

viewtopic.php?f=12&t=200028750


Ya que estamos hablando de columnas, si 38 son insuficientes tiene que haber alguna manera de llegar a 64 o incluso un poco más...

He estado investigando si para Oric pudiera existir esta posibilidad y teniendo 38 columnas igual pudiera, ( igual ) reducir a la mitad la fuente como se hace con los micros citados y podríamos tener X2 = 76 columnas.

Pero como los caracteres en Oric son también un tema a tener en cuenta, he ido sacando cosas que os muestro:

http://www.teaser.fr/~amajorel/oricscii/ ----> OricSCII - the Oric character set

En ello estoy, remirando unas cuantas cosas por si ya existiera una rutina escrita que permita ampliar el numero de columnas en pantalla ( a razón de mostrar caracteres más pequeños ), creo que con eso solventaríamos muchos problemas.... ya se que no se ven tan bien como las 30/40 pero algo es algo. ¿ exploramos la idea ?

por si acaso sigo mirando y acabo de descubrir un bombazo que a más de uno le va a dejar a cuadros....

dancresp
Mensajes: 5339
Registrado: 13 Nov 2010 02:08
Agradecido : 151 veces
Agradecimiento recibido: 288 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 16 May 2014 22:30

Pues ya he terminado el ensamblador de 6502 para el ORIC, y el resultado es agridulce.

El ensamblador funciona perfectamente, pero teniendo en cuenta que muchas partes del programa son idénticas a la versión del ensamblador de Z80 para MSX, y que la parte del ensamblado es mucho más simple, el programa es bastante más lento.

Si el ensamblador de Z80 podía llegar a velocidades teóricas de más de 300 líneas por minuto, en este caso no creo que supere las 150 líneas por minuto.

El "recolector de basura" que se encarga de compactar el área de variables alfanuméricas es considerablemente más lento que en MSX. Y si el MSX se queda, a veces, "colgado" unos 5 segundos, en el ORIC se puede quedar unos 15 segundos "frito".

La parte de la grabación de datos ha sido otro problema ya que hay que volcar el contenido de las matrices a la memoria (solo lo justo y necesario) y grabar l bloque de memoria en cinta, y para recuperar la información hay que hacer el proceso inverso. El resultado es que es un proceso "algo" lento. Eso si, funciona.

Y para terminar, los "bugs" del intérprete BASIC siguen haciendo sus estragos. El ELSE funciona cuando quiere y falla cuando le apetece, con lo que es mejor en muchos casos dividir la línea en dos partes, con cosas como:

IF F=1 OR F=2 THEN ... ELSE ... , en el que si F=2 funciona pero si F=1 no. -banghead

Y la rutina de INPUT la he tenido que obviar y reprogramarla yo mismo porque deja que desear.

Con todo, una vez más me lo he pasado la mar de bien con el reto, y lo dicho, ensamblar ensambla.

En cuanto tenga el artículo listo lo subo.

Gracias a todos por la ayuda... -drinks

jltursan
Mensajes: 2530
Registrado: 20 Sep 2011 13:59
Agradecido : 167 veces
Agradecimiento recibido: 474 veces

Re: ORIC - Help !!!

Mensajepor jltursan » 16 May 2014 23:05

Um; pero, ¿lo programas sobre un Oric-1?

Si es así y no has sustituido la ROM por la versión 1.1 ya tardas ;-). O mejor aún, la ROM 1.22 que incluso acelera algo el funcionamiento del BASIC.

Cierto es que así ya no se respeta la configuración original de la máquina; ¡pero es que ya no debería haber usuarios de Oric que no tuviesen la ROM 1.22!

Avatar de Usuario
Chema
Mensajes: 2219
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1767 veces
Agradecimiento recibido: 577 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 16 May 2014 23:31

Felicidades dancresp! Estoy deseando echarle un vistazo.... Es cierto que usando el BASIC 1.1 todo hubiese sido más fácil: sin bugs, con funciones para grabar directamente las matrices a cinta, lo que te libera espacio para el BASIC y reduce la necesidad de que se active el recolector de basura... pero entiendo perfectamente que quieras ser compatible también con el Oric-1.

Así que reitero mis felicidades. Para quitarse el sombrero, oiga :)

Avatar de Usuario
ron
Mensajes: 18410
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1579 veces
Agradecimiento recibido: 1317 veces

Re: ORIC - Help !!!

Mensajepor ron » 16 May 2014 23:34

De agridulce nada, es de putisima madre y siempre se puede adaptar a 1.1 y así habrá dos versiones. Para gustos colores
Enhorabuena, master wally

Avatar de Usuario
Silicebit
Mensajes: 1494
Registrado: 16 May 2011 21:13
Ubicación: La buhardilla del silicio.
Agradecido : 99 veces
Agradecimiento recibido: 201 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Silicebit » 16 May 2014 23:50

Estoy con ron, dos versiones optimizadas, una para Oric-1 y la otra para Atmos, sería buena idea. ¡¡Ya estoy deseando verlo!!
El 6809 es el Rolls-Royce de los 8bits, el 6502 es el Mercedes, y el Z80 el SEAT 850. Sorry, but... I think different. :-P -0r1c -m3s3x -t4nd1 -cbmja YouTube

Avatar de Usuario
ron
Mensajes: 18410
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1579 veces
Agradecimiento recibido: 1317 veces

Re: ORIC - Help !!!

Mensajepor ron » 17 May 2014 00:25

na, si dancresp ya sabe que aquellos Basic que son susceptibles de ser compilados ganan un montón, ya lo hemos visto con los ejemplos de C64 y de Spectrum. Seguro que en Oric aparte de hacerlo en C con el OSDK hay algo.

Y estoy convencido que hay ensambladores de 6502 en C facilmente portables y compilables con OSDK , cc65 y otras toolchains.

Pero , solo son comentarios algo peregrinos, venidos al caso ¿ alguna opinión sobre ampliar las columnas en el oric ?

dancresp
Mensajes: 5339
Registrado: 13 Nov 2010 02:08
Agradecido : 151 veces
Agradecimiento recibido: 288 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 17 May 2014 01:23

Silicebit escribió:Estoy con ron, dos versiones optimizadas, una para Oric-1 y la otra para Atmos, sería buena idea. ¡¡Ya estoy deseando verlo!!

A ver, salvo que me equivoque porque tengo el portátil apagado, lo he desarrollado en el tren con el Euphoric en MS-DOS con las ROMS del Atmos.

De todas formas, estoy seguro que funciona en un ORIC-1 sin problemas porque he evitado los ELSE todo lo posible.

Respecto a lo de grabar matrices en memoria, ¿el ATMOS lo permite? porque si lo permite igual si que habrían dos versiones para optimizar la parte de carga y grabación de datos.

Y como digo, me habría gustado un rendimiento mejor, pero sin lugar a dudas tira.

Para terminar, dejo varias imágenes para abrir boca, ya que redactar el artículo me llevará uno o dos días (voy falto de tiempo), pero en la última veréis como me las he ingeniado para montar la matriz de instrucciones del 6502 en el mínimo espacio, comparado con otros ensambladores que he visto par allí...

6502_1.gif
6502_1.gif (36.04 KiB) Visto 342 veces

6502_2.gif

6502_3.gif

Avatar de Usuario
Silicebit
Mensajes: 1494
Registrado: 16 May 2011 21:13
Ubicación: La buhardilla del silicio.
Agradecido : 99 veces
Agradecimiento recibido: 201 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Silicebit » 17 May 2014 12:24

dancresp escribió:... Y para terminar, los "bugs" del intérprete BASIC siguen haciendo sus estragos. El ELSE funciona cuando quiere y falla cuando le apetece, con lo que es mejor en muchos casos dividir la línea en dos partes, con cosas como:

IF F=1 OR F=2 THEN ... ELSE ... , en el que si F=2 funciona pero si F=1 no. -banghead

Raro es... Acabo de probar esa línea en Oricutron y funciona perfectamente, eso sí, con ROM Atmos.
El 6809 es el Rolls-Royce de los 8bits, el 6502 es el Mercedes, y el Z80 el SEAT 850. Sorry, but... I think different. :-P -0r1c -m3s3x -t4nd1 -cbmja YouTube

dancresp
Mensajes: 5339
Registrado: 13 Nov 2010 02:08
Agradecido : 151 veces
Agradecimiento recibido: 288 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 17 May 2014 13:59

Silicebit escribió:Raro es... Acabo de probar esa línea en Oricutron y funciona perfectamente, eso sí, con ROM Atmos.

Lo acabo de comprobar y tengo el EUPHORIC de MS-DOS configurado como una ORIC Atmos (Computer=Atmos).

De todas formas, con el "Nuclear Invaders" ya detecté que código que me fallaba en el EUPHORIC me funcionaba perfectamente en el Oricutron.
Al final lo modifiqué para que funcionara bien en cualquier emulador o máquina real.

La línea exacta que me fallaba es la siguiente:

F=VAL(P$(2)):IF F=1 OR F=2 THEN Z1=F:Z2=F ELSE Z1=1:Z2=2

En P$(2)) viene el valor de paso de ensamblado, por si solo queremos hacer una segunda pasada. Pues si P$(2)="1" falla porque ejecuta el ELSE, pero si P$(2)="2" funciona bien. Si hay cualquier otro valor a 1 ó 2, funciona bien porque ejecuta el ELSE.

Al final lo he dejado así, y funciona bien:
Z1=1:Z2=2:F=VAL(P$(2)):IF F=1 OR F=2 THEN Z1=F:Z2=F

Si alguien lo entiende... -no

dancresp
Mensajes: 5339
Registrado: 13 Nov 2010 02:08
Agradecido : 151 veces
Agradecimiento recibido: 288 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 19 May 2014 23:07

Para ejemplos de problemas de ELSE...

Error_Else.jpg
Error_Else.jpg (38.63 KiB) Visto 341 veces


He añadido el comando "P" que activa/desactiva la impresión de las líneas durante el ensamblado. Esto hace que funcione un 50% más rápido.

Por defecto "P=1" (activada la impresión) y al poner "P" se ejecuta el ELSE y pone "P=0".
Al volver a pulsar "P", pone "P=0", ejecuta el PRINT "On", pero ... o milagro... ejecuta el segundo PRINT, pero no ha ejecutado el "P=1".

Extraordinario !!! -thumbup

La de horas que he perdido puliendo estos "bugs" del intérprete. -banghead

Lo más sorprendente es que otros ELSE los ejecuta perfectamente.

dancresp
Mensajes: 5339
Registrado: 13 Nov 2010 02:08
Agradecido : 151 veces
Agradecimiento recibido: 288 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 23 Abr 2015 22:44

Refloto nuevamente este hilo ya que el maldito BASIC del ORIC vuelve a hacer de las suyas.

Tengo listo un programa que debería grabar una matriz en memoria, aparentemente poca cosa.

He hecho caso a chema y lo he intentado hacer con STORE y RECALL, haciendo el programa incompatible con el ORIC-1, pero es lo que hay.
Pero lo que hay es que estas instrucciones no funcionan bien, ni con el Euphoric ni con el Oricutron usando una versión 1.1 de BASIC y en modo ATMOS.

¿Alguien sabe porque no funciona?
¿También petardean? -banghead

Lo curioso es que con matrices numéricas va bien.

Por otro lado, he localizado las variables de sistema que indican el inicio de la zona de variables y de matrices, y las he cambiado con un DOKE.
Funciona bien, pero cuando grabo un bloque de bytes con CSAVE y después lo recupero con CLOAD... tarariquetedí !!!

¿Como pelotas puedo grabar una matriz en el ORIC?

-nb

Avatar de Usuario
Chema
Mensajes: 2219
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1767 veces
Agradecimiento recibido: 577 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 23 Abr 2015 23:13

Pues debería de funcionar... Hace mil años que no hago eso, pero funcionaba en el Oric real tal y como dice el manual. Podría ser un bug del emulador, pero que falle en los dos me extraña....

¿Puedes poner las instrucciones Basic que usas? Supongo que sabes que la matriz sobre la que haces el RECALL tiene que ser del mismo tipo y con dimensión igual o mayor que la que has grabado.

Ahora no puedo probar con oricutron. A ver si mañana encuentro un hueco (y me acuerdo, que esa es otra).


Volver a “Oric”

¿Quién está conectado?

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