(ATARI) DUDA CREAR LOADER

Software y Juegos para retro-computadores, bueeeno... casi puros juegos :-)
Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por fcatrin » Dom Abr 23, 2017 2:02 pm

Puedes publicar el CAS o el dump Hex del CAS resultante para revisarlo?

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por dogdark » Dom Abr 23, 2017 3:35 pm

Cabe señalar, estoy trabajando a base de MYDOS 4.5, esto me pasa a lo igual que en DOS 2.5

DOGCAS DESAMBLADO

Imagen

También te dejare adjunto el .cas + el .bas
cas.rar
dogcas.
(10.17 KiB) Descargado 101 veces
LO."D:PRUEBA

resubido el cas. subi otro por error.
PD:quite en la linea 350 el $85 $85 al comienzo para tener los 257 bytes, se me fue esa parte, o habria que modificar el bloke2$ para los 259 bytes resultantes.

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por dogdark » Lun Abr 24, 2017 2:31 pm

stop, stop, pare, pare, el error estaría en el 3 bloke, calmeichon, momentoneichon, estoy revisando bien, al parecer tengo mal los dos primeros bytes del 3 bloke, los tengo con UU inverso y es UU pero sin inverso. o sea $55,$55. :ff: :ff: :ff: :ff:, segundo, la conversión en el bloke2 de $2000 esta mal hecha, me carga en $07D0 y no en $2000. Ahora que estaba tranquilo revisando me di cuenta.

La conversión que uso es una que me diste tu en otro topic, para obtener los bytes

H = X / 256
L = X - H*256

por lo tanto
Hex $2000
Decimal es 8192

H = 8192/256 = 32
L = 8192 - (32*256) =
8192 - 8192 = 0

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por dogdark » Lun Abr 24, 2017 5:23 pm

apareció y cargo por fin pero hay errores



resulta que después del segundo bloque debería aparecer una presentación mientras se carga el tercer bloque donde ira todo lo demás, pero no aparece.

códigos usados

BLOKE1

Código: Seleccionar todo

0120     *=  $0700
0130     .BYTE $00,$01
0140     .WORD $0700
0150     .WORD $0400
0160 INIT
0170     LDA $02C7
0180     STA $02C6
0190     LDA $02C8
0200     STA $02C6
0210     LDA #HLIST&255
0220     STA $0230
0230     LDA #HLIST/256
0240     STA $0231
0250     CLC 
0260     RTS 
0270 START
0280 LINE1 .SBYTE "?dogdark??????????k?"
0290 LINE2 .SBYTE "sistemas?para?ataris"
0300 HLIST
0310     .BYTE $70,$70,$70,$70,$70,$70,$70,$70
0320     .BYTE $70,$70,$70,$70
0330     .BYTE $46
0340     .WORD LINE1
0350     .BYTE $70
0360     .BYTE $46
0370     .WORD LINE2
0380     .BYTE $70,$70,$70,$70
0390     .BYTE $41
0400     .WORD HLIST
BLOKE 2

Código: Seleccionar todo

0120     *=  $0400
0130     LDX #11
0140 COPY
0150     LDA DESCRIPTOR,X
0160     STA $0300,X
0170     DEX 
0180     BPL COPY
0190     JSR 58457
0200     BPL NOJMP
0210     JMP 58487
0220 NOJMP
0230     JMP $2000
0240 DESCRIPTOR
0250     .BYTE 96,0,82,64,254,31,32,0,3,1,0,128
0260     CLC 
0270     RTS 
Alguna sugerencia?, se los agradeceria.

Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por fcatrin » Mié Abr 26, 2017 3:21 pm

Manda el CAS actual.

Ojo que hay dos tipos de carga:

1. Carga de bloques en un buffer
2. Carga con transferencia de datos a memoria "principal". En este caso, primero se carga en un buffer y luego se copian los datos a memoria principal.

Cuando cargas en un buffer, siempre tendrás $5555 al inicio ya que se usa para sincronizar, por lo tanto si tu código está con origin = $2000, tienes que cargar en el buffer que comienza en $1FFE (2 bytes antes), cosa de que $5555 quede en $1FFE y $1FFF, y tu código inicie efecivamente en $2000.

Si te fijas en mi código original, la carga es en $6FE para el código que tiene origin = $700

Saludos

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por dogdark » Mié Abr 26, 2017 8:18 pm

me referiré a lo que había mostrado anteriormente, a como va el cas. el que sale en el video

bloke1 todo va en la dirección $0700
bloke2 va en posición $0400, el bloke 3 se carga en 1FFE, 2 bytes antes de $2000, para por los dos bytes $55 $55, así que su comienzo de ejecución sea en $2000,

bytes apuntados

.BYTE 96,0,82,64,....(254,31)....,32,0,...(3,1)....,0,128

()lo que se modifico

como se saco el calculo.
$1FFE = 8190 decimal para calculo

H = 8190/256 = 31
L = 8190 – (31*256) = 256
8190 - 7936 = 254

254,31 apunta a $1FFE
3,1 apunta a 259 bytes a cargar

bloke3 código que comienza en posición $2000, y se le agrego a mano en el basic UU , byte $55 $55

la pregunta es, se supone que al cargar el bloke2 debería aparecer una pantalla con un texto. y no aparece y sigue con la carga del bloke3. que me faltaría para que aparezca esta pantalla antes de cargar el bloke3.
dog.zip
cas del boot loader
(511 Bytes) Descargado 106 veces

Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por fcatrin » Jue Abr 27, 2017 12:55 pm

Mirando el CAS yo veo que se ejecuta tal como está.

La secuencia es la siguiente:

* Carga de primer bloque, el OS lo copiará a $700
* Carga del EOF, el OS no lo copiará a ninguna parte, quedará en $400
* Ahora que ya terminó de cargar el boot code, éste se ejecuta:
** Se ejecuta el código en $700 que modifica el display list y pone tu pantalla de carga
** Se ejecuta el código en $400 que iniciaría la carga del siguiente bloque

Quizás tu esperas a que el código se ejecute a medida que se carga, pero no funciona así. Sólo una vez que termina la carga completa (hasta el EOF) se ejecuta el código de boot.

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por dogdark » Jue Abr 27, 2017 1:10 pm

eso me pasa, lo que necesito que se ejecute el eof al terminar el segundo bloke y no en el tercero, como se pone la pantalla en negro en el segundo, pero quiero que aparezca el display line y siga con la carga del tercer bloque, como lo hace el copiador prisma.

Avatar de Usuario
fcatrin
Mensajes: 655
Registrado: Jue Ene 24, 2013 2:19 pm
Ubicación: Quilpué
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por fcatrin » Jue Abr 27, 2017 5:36 pm

En ese caso simplemente pon el código que cambia la pantalla en el EOF, como parte del bloque 2. En el bloque 1 puedes poner simplmente CLC RTS para que no haga nada

Avatar de Usuario
dogdark
Mensajes: 594
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Re: (ATARI) DUDA CREAR LOADER

Mensaje por dogdark » Jue Abr 27, 2017 5:46 pm

fcatrin escribió:En ese caso simplemente pon el código que cambia la pantalla en el EOF, como parte del bloque 2. En el bloque 1 puedes poner simplmente CLC RTS para que no haga nada
Pruebo y te cuento

Responder