ORIC - Help !!!

Avatar de Usuario
Chema
Mensajes: 2237
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1816 veces
Agradecimiento recibido: 586 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 23 Abr 2015 23:13

Último mensaje de la página anterior:

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).

Avatar de Usuario
Chema
Mensajes: 2237
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1816 veces
Agradecimiento recibido: 586 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 24 Abr 2015 00:05

No pude evitarlo y tuve que arrancar el portátil y probar :)

A mi me "medio" funciona con el Oricutron 1.2. Te cuento. Este programa graba una matriz de cadenas:

Código: Seleccionar todo

 10 DIM A$(10)
 20 FOR N=1 TO 10
 30 A$(N)="CADENA "+STR$(N)
 40 NEXT N
 50 STORE A$,"MATRIZ"


Desde el Oricutron se genera el archivo "matriz.tap". Ahora tecleamos un nuevo programa (o reseteamos o hacemos un CLEAR para asegurarnos de que las variables se borran:

Código: Seleccionar todo

 10 DIM A$(10)
 20 RECALL A$,"MATRIZ.TAP"
 30 FOR N=1 TO 10
 40 PRINT A$(N)
 50 NEXT N


Y recupera los valores imprimiendo "CADENA 1" "CADENA 2", etc.... Un par de cosas, sin embargo:
1/ El oricutron se queja de que el archivo no parece estar correcto (da un mensaje de error), aunque parece cargar los datos.
2/ Si te fijas para cargar he tenido que poner "MATRIZ.TAP" y no "MATRIZ". Si pones lo segundo tienes que insertar la cinta (la imagen tap) desde el menú del Oricutron o se te queda en "Searching..". Si usas la primera se busca el archivo y se usa como cinta automáticamente.

No he probado con el Euphoric, pero ¿son tus síntomas parecidos?.

A ver si lo miro algo más a fondo y reporto el bug del archivo incorrecto.

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 24 Abr 2015 20:22

El problema es que yo uso más matrices, y aparentemente se hace un lío.

Por desgracia, tengo esto finalizado al 99%, siendo el 1% la parte del STORE/RECALL.

Imagen
Imagen
Imagen

Como puedes ver, la matriz a grabar en cuestión es S$, pero existen más.
Y por descontado no puedo hacer un CLEAR ya que no puedo perder el contenido de otras variables.

Estoy mirando el tema de las variables del sistema para ver si lo puedo hacer de otra forma, sino... que putada !!!

Por cierto, excepto esto funciona a las mil maravillas.

-nb
Adjuntos
dBaseII-1.gif
dBaseII-1.gif (70.21 KiB) Visto 411 veces
dBaseII-3.gif
dBaseII-3.gif (73.17 KiB) Visto 411 veces
dBaseII-2.gif
dBaseII-2.gif (18.46 KiB) Visto 411 veces

Avatar de Usuario
ron
Mensajes: 18442
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1614 veces
Agradecimiento recibido: 1337 veces

Re: ORIC - Help !!!

Mensajepor ron » 24 Abr 2015 20:32

Dancresp, ¿ tu aun no tienes la controladora operativa verdad ?

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

Re: ORIC - Help !!!

Mensajepor Silicebit » 24 Abr 2015 20:35

Operativa está, pero se la tengo que enviar. -507
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: 18442
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1614 veces
Agradecimiento recibido: 1337 veces

Re: ORIC - Help !!!

Mensajepor ron » 24 Abr 2015 20:56

Silicebit escribió:Operativa está, pero se la tengo que enviar. -507


Ya no duerme !!!

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 24 Abr 2015 21:38

¿Mi... mi controladora? -shock

¿Y que tenía, doctor?
O dicho de otra forma, ¿donde la he cagado esta vez? -banghead

Sea como sea, -drinks

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 24 Abr 2015 21:39

.

Avatar de Usuario
Chema
Mensajes: 2237
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1816 veces
Agradecimiento recibido: 586 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 24 Abr 2015 21:52

Igual no lo entendí bien... ¿Estás usando disco y quieres grabar en un fichero? Es que yo probé el Basic y cintas, y SEDORIC tiene extensiones que no he probado.

En cuento pueda lo miro a ver, pero debería de funcionar... :/

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 24 Abr 2015 22:07

No, no, quiero usar cinta de casete.

Avatar de Usuario
Chema
Mensajes: 2237
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1816 veces
Agradecimiento recibido: 586 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 24 Abr 2015 23:11

Vale, pues ahora estoy perdido del todo. Lo del CLEAR yo lo hago para probar que la carga funciona. En tu caso no es necesario. No debería haber problemas porque hubiese más o menos matrices en memoria. ¿Habrá alguna cosa rara con el hecho de que estés poniendo extensión al archivo? Los emuladores hacen cosas raras para auto montar ficheros TAP. Podrías probar a no poner extensión a ver que pasa.

Estaría bien tener mas claros cuales son los síntomas. Si te aparece el mensaje de error como a mi en el Oricutron, por ejemplo... No se...

¿En el Oric real funciona bien? ¿Puedes pasarme el TAP que genera al grabar? Estoy algo liado el fin de semana pero podría echar un vistazo a ver si veo algo raro...

Siento no estar siendo de mucha ayuda...

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 12 May 2019 23:30

Refloto este hilo unos cuantos años más tarde porque tengo una duda que creo que mis ángeles de la guardia del ORIC, chema y silicebit, me sabrán responder...

El tema es bastante simple:

¿Hay alguna variable de sistema o posición de memoria que le diga al BASIC cual es la próxima posición de memoria donde se va a hacer un PRINT, o la actual? En el ORIC, los comandos PLOT y PRINT van cada uno por su lado, y si hago un PLOT en una posición, no afecta al PRINT.

Estoy con un pequeño proyecto, que no es un juego, y tengo esta problemática.

Como no, gracias de antemano.

Avatar de Usuario
Chema
Mensajes: 2237
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1816 veces
Agradecimiento recibido: 586 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 13 May 2019 00:20

Creo que en el Atmos están en las direcciones #268 y #269 (fila, columna). Prueba a hacer par de peeks a ver... No recuerdo si en el 1 son esas direcciones también...

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 13 May 2019 10:12

Chema escribió:Creo que en el Atmos están en las direcciones #268 y #269 (fila, columna). Prueba a hacer par de peeks a ver... No recuerdo si en el 1 son esas direcciones también...

Lo he probado y efectivamente en esas direcciones están la fila y la columna, pero no consigo que el PRINT haga un "LOCATE" en la posición que yo le indico...

Supongo que se debe guardar la dirección en la memoria de vídeo (actual o siguiente) en algún sitio, y estas coordenadas solo deben servir como contador para activar el scroll de pantalla cuando haga falta. En ese caso el PEEK(#268) vale 27.

Avatar de Usuario
minter
Mensajes: 2491
Registrado: 22 Jul 2014 18:51
Agradecido : 2311 veces
Agradecimiento recibido: 1019 veces

Re: ORIC - Help !!!

Mensajepor minter » 13 May 2019 10:36

dancresp, igual aquí te da alguna pista de las direcciones de memoria de pantalla.

No se si ya lo habías leído.

http://www.defence-force.org/computing/ ... /index.htm

Aquí tenemos el mapa de memoria:

http://www.defence-force.org/computing/ ... /index.htm

En la posición BB80 comienza la pantalla en modo texto.

Igual pokeando un caracter en una posición, es como si quisieras hacer ese LOCATE que quieres hacer.

Con un POKE 48001, (caracter ASCCII), debería poner un caracter ASCII en la primera posición de la pantalla.
(Creo haber entendido que la primera posición, 48000, es de estado), por eso 48001.

No puedo comprobarlo, porque no tengo aquí el emulador de Oric.

dancresp
Mensajes: 5370
Registrado: 13 Nov 2010 02:08
Agradecido : 169 veces
Agradecimiento recibido: 296 veces

Re: ORIC - Help !!!

Mensajepor dancresp » 13 May 2019 10:53

Gracias minter.

Lo de POKEAR directamente en pantalla lo tengo muy por la mano.
El "Solomon's Key" hace un uso muy intensivo de ello.

Respecto al artículo que pasas, a primera vista parece que no responde mi pregunta, pero es muy interesante.
El tema HI-RES es una asignatura pendiente que tengo en el ORIC, y algún día tocará hacer algo.

Lo que si que veo en el artículo es que pone que el CHARSET ocupa 1920 bytes, que son 240 caracteres, cuando yo creía que solo disponía de 128. Haciendo un PRINT de todos veo que se repiten. Ahora me queda probar si el juego está dos veces, o si la segunda parte (CHAR>127) es una copia de los primeros 128 caracteres.

Avatar de Usuario
Chema
Mensajes: 2237
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 1816 veces
Agradecimiento recibido: 586 veces
Contactar:

Re: ORIC - Help !!!

Mensajepor Chema » 13 May 2019 11:34

A ver... no entiendo bien qué quieres hacer. Si lo que quieres es modificar esas direcciones para que el PRINT lo haga donde tú quieres, no te va a funcionar porque el SO usa un puntero interno a la línea, más un desplazamiento para la columna, para realizar su trabajo siempre que puede. Es posible que algunas funciones usen ese puntero pre-calculado y no los valores de las variables.

Para cambiar el cursor desde basic se usa PRINT @, de forma que:

Código: Seleccionar todo

   5 CLS                               
   10 PRINT @10,10;"HOLA";             
   20 PRINT " A RETROWIKI"             

Pone el cursor de texto en la posición 10, 10 e imprime allí la cadena "HOLA A RETROWIKI".

La rutina en $CC59 en la ROM del Atmos implementa el posicionamiento del cursor de texto para la orden PRINT @ y, entre otras cosas, actualiza esas variables del sistema y los punteros internos en página cero para lo que te cuento arriba.

O sea, en resumen (que se me va la pinza), si quieres colocar el cursor en una posición determinada para el comando PRINT, hay que usar PRINT @. Como bien dices PLOT lleva siempre las coordenadas y es independiente de PRINT en este sentido.

Otra cosa es que en el Oric-1 no existe este comando PRINT @. Peeeero, en el manual viene una implementación de un comando equivalente. De todos modos tienes algo más de información en el libro de Geoff Phillips (que te recomiendo). en el capítulo 2.15 dice:

On version 1.1 machines the PRINT @ facility allows you to print at any place on the screen. This is also provided on 1.0 machines by way of an add-on machine code routine in the manual, but no explanation is given on how it works. If you wish to use the general PRINT subroutine in a machine code program, you will need to know a little about how PRINT works in this respect.
There are two locations which control where the next PRINT goes to: #268 – the number of lines down – and #269 – the number of lines across. These are relative to the start of the screen as defined by #26D (version 1.0) or #27A (version 1.1). On version 1.1 machines you also have to write the address of the start of the line to #12,3.
On version 1.0 follow this example of moving to D lines down and A characters across:
100 POKE #268,D – 1:PRINT:POKE #269,A
Here is the same line for version 1.1:
100 POKE#268,D:POKE#269,A:DOKE#12,DEEK(#27A)+(D – 1) *40
To avoid large numbers of solid blocks appearing everywhere, it is recommended that you turn off the cursor before moving around the screen.


Las he probado en el emulador y ambas funcionan en sus respectivas ROM. Eso sí, la segunda, con una multiplicación por 40, se me antoja lenta, así que cuidado con ella. La rutina de la ROM de PRINT@ usa una subrutina que hace la multiplicación rápida.

Te dejo el enlace a donde puedes descargar el libro que te comento. Es la penúltima entrada:
http://www.defence-force.org/computing/ ... /index.htm


Volver a “Oric”

¿Quién está conectado?

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