• Viernes 15 de Noviembre de 2024, 10:30

Autor Tema:  Bootear La Maquina Desde El Diskette  (Leído 3074 veces)

Solman

  • Miembro MUY activo
  • ***
  • Mensajes: 151
    • Ver Perfil
Bootear La Maquina Desde El Diskette
« en: Sábado 15 de Octubre de 2005, 01:50 »
0
porfavor alguien sabe hacer un programa que haga que bootee la maquina desde el diskette pero con codigo en C bueno y si quieren utilizan una pisca de asm . porfavor ayudenme.

Alpha_

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #1 en: Sábado 15 de Octubre de 2005, 06:53 »
0
A ver a ver... eso es configuración de la BIOS...

Por ende, el programa sería muy específico según el modelo...

Alguno sabe decir si es posible programar eso?
Alpha
http]

grifo

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #2 en: Sábado 15 de Octubre de 2005, 09:27 »
0
Pues se necesitaria hacer un sistema opartivo completo, que reconzca e lPC y lo haga funcionr esto es halgo dificil de lograr, que necesita hcer acaso???

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #3 en: Sábado 15 de Octubre de 2005, 12:08 »
0
La BIOS te carga, despues de eso dependes de instrucciones de ensamblador e interrupciones de la BIOS mientras estes en modo real (16 bits) que es el modo en que arranca toda PC desde una XT hasta un AMD de 64 bits.

Aca tenes un par de posts que te pueden servir (assembly):

http://foros.solocodigo.com/index.php?showtopic=16756
http://foros.solocodigo.com/index.php?showtopic=16853

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Solman

  • Miembro MUY activo
  • ***
  • Mensajes: 151
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #4 en: Sábado 15 de Octubre de 2005, 19:54 »
0
Hola eternal
puedes ayudarme ha hacer un programa que bootee la maquina desde el diskette.  creo que si saltamos a FFFF:0000 podemos reiniciarla y tambien con la int 13h cuando ah=00h creo ayuda porfa

Solman

  • Miembro MUY activo
  • ***
  • Mensajes: 151
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #5 en: Sábado 15 de Octubre de 2005, 20:05 »
0
Puedes tan bien explicarme bien el funcionamiento de la bios en lo que resetea la maquina... ? porfavor eternal .

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #6 en: Sábado 15 de Octubre de 2005, 22:04 »
0
En el primer link anterior tenes dos ejemplos sobre codigo para bootear una PC.

Aca tenes la explicacion sobre el arranque de NT 5.1 (XP):
http://dotnetjunkies.com/WebLog/unknownref...cles/12284.aspx

"The CPU loads the ROM BIOS starting at ROM memory address FFFF:0000 which is only 16 bytes from the top of ROM memory. As such it contains only a JMP (jump) instruction that points to the actual address of the ROM BIOS code."

Por lo tanto si saltas a esa direccion (FFFF:0000) es como si arrancaras la maquina nuevamente.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Alpha_

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #7 en: Lunes 17 de Octubre de 2005, 04:39 »
0
Pero y toda la RAM? Y el sistema operativo ya cargado? Qué pasa con eso?
Alpha
http]

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #8 en: Lunes 17 de Octubre de 2005, 10:43 »
0
Cita de: "Alpha_"
Pero y toda la RAM? Y el sistema operativo ya cargado? Qué pasa con eso?
No entiendo muy bien que tiene que ver tu pregunta, el Sistema Operativo NO esta cargado. Lo que se carga es lo que la BIOS quiere, hay una lista de unidades incluso donde podes elegir el orden y desde cuales se intente cargar. Si se carga desde un diskette no hay ningun S.O. sino que en realidad lo que haya en el diskette sera el S.O. (por muy pobre que sea sera lo unico disponible).

 :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Solman

  • Miembro MUY activo
  • ***
  • Mensajes: 151
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #9 en: Martes 18 de Octubre de 2005, 00:07 »
0
Hola eternal esta bien si saltamos a FFFF:0000 entonces podemos reiniciar la maquina ok pero yo no puedo poner en C o C++ la instruccion

jmp FFFF:0000 porque no es valido ,,,, entonces q deberia poner para q reinicie la maquina pero en C (si es q programas en c) a y otra cosa .
una vez reiniciada la maquina como hago para con unas cuantas instrucciones pueda configurar el setup sin tener que hacerlo manualmente para que cargue desde el diskette y no desde el disco duro. puedes explicar eso?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Bootear La Maquina Desde El Diskette
« Respuesta #10 en: Martes 18 de Octubre de 2005, 09:50 »
0
Cita de: "Solman"
Hola eternal esta bien si saltamos a FFFF:0000 entonces podemos reiniciar la maquina ok pero yo no puedo poner en C o C++ la instruccion

jmp FFFF:0000 porque no es valido ,,,, entonces q deberia poner para q reinicie la maquina pero en C (si es q programas en c) a y otra cosa .
una vez reiniciada la maquina como hago para con unas cuantas instrucciones pueda configurar el setup sin tener que hacerlo manualmente para que cargue desde el diskette y no desde el disco duro. puedes explicar eso?
La verdad es que no programo en C/C++ en 16 bits, solo hago en 32 y 64 bits. Asi que me pase por google y encontre esto:

Código: Text
  1.  
  2. void Reboot()
  3. {
  4.   __emit__ ((unsigned char)    0xEA);  /* jmp far --> FFFF:0000  */
  5.   __emit__ ((unsigned short) 0x0000);  /* offset                 */
  6.   __emit__ ((unsigned short) 0xFFFF);  /* segment                */
  7. }
  8.  
  9.  

http://bbs.ee.ntu.edu.tw/boards/Programming/13/13.html

Una vez reiniciada la maquina la BIOS ya toma el control y no podes ejecutar ninguna instruccion. Lo tenes que hacer con anterioridad y aca tenes un articulo al respecto:

http://www.codepedia.com/1/CMOS_C

 :devil:  :devil:  :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.