(ATARI) DUDA CREAR LOADER
Re: (ATARI) DUDA CREAR LOADER
Puedes publicar el CAS o el dump Hex del CAS resultante para revisarlo?
Re: (ATARI) DUDA CREAR LOADER
Cabe señalar, estoy trabajando a base de MYDOS 4.5, esto me pasa a lo igual que en DOS 2.5
DOGCAS DESAMBLADO
También te dejare adjunto el .cas + el .bas
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.
DOGCAS DESAMBLADO
También te dejare adjunto el .cas + el .bas
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.
Re: (ATARI) DUDA CREAR LOADER
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. , 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
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
Re: (ATARI) DUDA CREAR LOADER
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
BLOKE 2
Alguna sugerencia?, se los agradeceria.
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
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
Re: (ATARI) DUDA CREAR LOADER
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
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
Re: (ATARI) DUDA CREAR LOADER
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.
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.
Re: (ATARI) DUDA CREAR LOADER
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.
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.
Re: (ATARI) DUDA CREAR LOADER
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.
Re: (ATARI) DUDA CREAR LOADER
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
Re: (ATARI) DUDA CREAR LOADER
Pruebo y te cuentofcatrin 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