|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - jaumegs
51
« en: Viernes 9 de Diciembre de 2005, 16:21 »
Desde un bootloader... jojojoj...
[explicación]bueno,es que a mi me interesa la programación de los procesadores intel puramente... para asi poder hacer proyectos con procesadores 8086. Y me interesa que los programas que ejecuto estén libres de restricciones sobre el equipo por parte de un SO...
SALUDOS
52
« en: Jueves 8 de Diciembre de 2005, 23:37 »
Como puedo hacer para apagar el ordenador? es decir, que se apague completamente y automáticamente , sin necesidad de darle al botón.
Sin SO...
SALUDOS
53
« en: Jueves 8 de Diciembre de 2005, 23:35 »
Parece buena idea... pero... COMO SE HACE? SALUDOS
54
« en: Miércoles 7 de Diciembre de 2005, 21:17 »
Bueno, esa es una opción que ya imaginava... pero igual que hay una memoria de video... no hay algo que indique la posición del cursor sin utilizar las INT?
SALUDOS
55
« en: Miércoles 7 de Diciembre de 2005, 18:15 »
Bueno, suena estraño, pero no lo es tanto... Mi problema es que al introducir texto directamente en la memoria de video (0B800:XXXX) me va divinamente... pero el problema está en que el cursor... como lo diria... No se mueve  ! Se queda donde eantes... Como puedo indicarle a que posición debe ponerse? Cual es la dirección de memoria RAM (si es que la tiene) para este fin? SALUDOS
56
« en: Miércoles 7 de Diciembre de 2005, 18:12 »
Bueno, generalmente depende del sistema de archivos que uses... si es FAT12 o 16 o 32 PERFECTO, si es NTFS.... pues realmente no se como se hace... Bueno, si es FAT el sector de arranque (BOOTSECTOR) contiene cierta información: Des. Longitud Descripción 0x00 3 bytes Instrucción de salto al programa de arranque 0x03 8 bytes Identificación del sistema (fabricante) 0x0B 1 palabra Número de bytes por sector 0x0D 1 byte Número de sectores por cluster 0x0E 1 palabra Número de sectores reservados (con BootSector) 0x10 1 byte Número de copias de la FAT 0x11 1 palabra Número máximo de entradas del directorio raíz 0x13 1 palabra Número total de sectores 0x15 1 byte Identificador del disco (F0 para 3 ½ y 1.44MB) 0x16 1 palabra Número de sectores para cada FAT 0x18 1 palabra Número de sectores por pista 0x1A 1 palabra Número de cabezas/caras 0x1C 1 palabra Número de sectores ocultos 0x20 4 byte Número total de sectores (si 0x13 es 0) 0x24 1 byte Número de unidad física (sólo discos duros) 0x25 1 byte Reservado 0x26 1 byte Byte de marca con el valor 0x29 0x27 4 bytes Número de serie del disco 0x2B 11 bytes Nombre del disco (NO NAME si no tiene) 0x36 5 bytes Tipo de FAT: FAT12 o FAT16 ... ... ......... ... ... Rutina de Arranque (Bootstrap-Loader)
Bueno, esto es necesario si quereis conservar el formato existente... (recomiendo leer documentación sobre la FAT) Esto ha de estar presente siempre en el BootSector, sino os habreis cargado la FAT... bueno, después de esto va el programa que querais.... Que podeis usar en el?... pues todo, pero solo código de 16bits. Claro está que no se pueden usar interrupciones del DOS, mas que nada porque siempre se arranca el programa del BootSector antes que el SO, asi que si modificais el BootSector de vuestro disco duro... y es el único que teneis, si no haceis una copia del que habia antes de modificarlo, ya no podreis cargar ni WINDOWS ni nada...Que tamaño puede tener?... generalmente 512bytes, pero si modificas el offset 0Eh(nº sectores reservados) podreis hacer que ocupe el número de sectores que querais... asi que se puede hacer un programa de 2Mb, 3Mb, 500Mb... ya dependerá de la capacidad de vuestro disco duro, y claro está... de la RAM... PD IMPORTANTE- Si modificas el BootSector de tu disco duro principal(es el que arranca el SO que usas) y no sabes como recuperarlo luego... tendras que formatear el disco i reinstalar el SO. Así que recomiendo hacer una copia de este sector antes de tocar nada (Con el winhex por ejemplo) o practicar con disketes, que el método es el mismo.Bueno, si os interesa mas información podria hacer un MINImanual (y digo mini porque mis conocimientos de ASm...  , pero podria introducir datos acerca el sistema de archivos FAT que este si que me lo conozco) SALUDOS
57
« en: Miércoles 7 de Diciembre de 2005, 08:10 »
Teóricamente por lo que se, para programar el sector de arranque de un disco es necesario usar el procesador en modo 16bits. Despues de eso ya se puede arrancar el modo protegido del ensamblador(32 bits).
Si se hace del mismo modo que con un disquete, es sencillo, solo has de cargar en el sector 0 del disco duro el programa que quieras que te carge, con algunas peculiaridades...
P.D.- Da igual el sistema operativo que estés utilizando... Al iniciarse el ordenador leerá el MBR lo primero, y cargará el programa que haya en el, "substituyendo" al sistema operativo que tuvieras instalado.
SALUDOS
58
« en: Martes 6 de Diciembre de 2005, 02:39 »
He intentado hacer un programa que me lea la disquetera desde un disco bootable(sin SO), lo que quiero es que lea un diskette con el formato FAT12(reconocible en DOS y WINDOWS). Entiendo la teoria de la FAT12 y la FAT16 pero no se apricarlo en un programa... Sabeis de webs que hablen sobre ello aplicado en ASM, a ser posible en español? O algún ejemplo... SALUDOS
59
« en: Martes 6 de Diciembre de 2005, 00:11 »
Cómo puedo ver el código máquina de un programa sin tener que recurrir a un editor hexadecimal? Es decir, algo similar a esto: Offset C.M. Mnemónicos.... 00000000 45 inc bp 00000001 42 inc dx 00000002 334339 xor ax,[bp+di+0x39] 00000005 3032 xor [bp+si],dh 00000007 3937 cmp [bx],si 00000009 3833 cmp [bp+di],dh 0000000B 363232 xor dh,[ss:bp+si] ... ... ...
SALUDOS
60
« en: Domingo 4 de Diciembre de 2005, 13:04 »
Como puedo introducir código en ensamblador dentro de un programa en C? Sabeis de alguna web que lo explique o ponga ejemplos(en español)? SALUDOS
61
« en: Sábado 3 de Diciembre de 2005, 17:44 »
Me ha surgido una duda. En los microcontroladores PIC, existen las interrupciones(faltaria más  ), al aparecer una interrupción, como por ejemplo un cambio de estado en una de sus patillas(no es en todas, pero es irrelevante), el microcontrolador lo que hace es direccionar el IP del programa a la dirección 0x04 i seguir por alli el programa(en esa dirección se escribe un pequeño código que interprete que ha provocado tal interrupción, y hacer lo que sea necesario). Mi duda es la siguiente: ¿Cómo lo hacen los PCs(Intel)?,¿Existen esas interrupciones?, Por ejemplo, si pulso una tecla del teclado, en vez de tenerlo que mirar constantemente, se transfiere el IP a algun lado, o que sucede? He leido que si que existen en los PCs, pero no he encontrado ejemplos de ello. Nota: No me refiero incluir INT 0x10 en el código. SALUDOS
62
« en: Sábado 3 de Diciembre de 2005, 17:35 »
ok muchas gracias. No repetire más esas expresiones Estube mirando el diOS, pero no recaí en que allí se usava la disquetera SALUDOS
63
« en: Jueves 1 de Diciembre de 2005, 21:52 »
Un ejemplo iria...  No queva(bueno, si os animais...) Pero mas o menos como van los parametros de entrada i para que sirven, y los de salida.  SALUDOS
64
« en: Jueves 1 de Diciembre de 2005, 21:49 »
Bf.. he estado mirando esta interrupción i no la entiendo muy bien (la 13h) alguien podria darme una breve explicación? Lo agradeceria mucho. GRACIAS!
65
« en: Miércoles 30 de Noviembre de 2005, 22:32 »
Bueno, para crear una función que borra la pantalla(sin SO), he leido que si voy a: B800:0000 y voy restableciendo los bytes a cero... hasta llegar a B800:( 80 x 25 x 2 ), se borra la pantalla. Cono quedaria un código con esto? (esque a esta parte de direccionamiento... aun no llega mi mente, i un ejemplo caido de los cielos...  ) SALUDOS
66
« en: Miércoles 30 de Noviembre de 2005, 21:36 »
No, no mo referia a eso(pero gracias de todos modos) me referia a "como?"... lo de la bios era una especificacion.. como decir: el ejemplo puede usar la bios, pero si no la usa... mejor aun... jajaj SALUDOS
67
« en: Miércoles 30 de Noviembre de 2005, 20:38 »
Bueno... no es que se pueda decir que de una gran informacion sobre sus funciones...
68
« en: Miércoles 30 de Noviembre de 2005, 20:18 »
Y dado el caso de que no hubiera sistema operativo instalado(...)
Como se podria manejar el diskete? Usando funciones de la BIOS... o directamnet usando el hardware.
SALUDOS.
69
« en: Miércoles 30 de Noviembre de 2005, 16:44 »
Mil gracias!!! Pero..  no incluye las funciones de la interrupcion 0Eh:( Sabeis de alguna otra web que si las incluya? SALUDOS
70
« en: Miércoles 30 de Noviembre de 2005, 16:39 »
jeje OK SALUDOS y gracias
71
« en: Miércoles 30 de Noviembre de 2005, 14:49 »
Hola, me gustaria saber si alguien tiene documentación sobre todas las interrupciones de la bios y sus funciones. Yo he encontrado documentación sobre varias... pero solo de unas cuantas... (la 10h la 17h... y poca cosa mas). Si alguien conociera una web o algo por la red... le estaria eternamente agradecido! SALUDOS
72
« en: Miércoles 30 de Noviembre de 2005, 14:24 »
No son para windows Pero si sin los que yo estoy usando
73
« en: Miércoles 30 de Noviembre de 2005, 01:17 »
Bueno, voy a pedir unas cuantas cosas... Como podria hacer una instruccion que borra la pantalla(sin usar las interrupciones del DOS y al ser posible las de la BIOS)? bueno... una forma seria: mov si,cadena call ponecadena ponecaracter: push ax ; Guardamos AX mov ah,0eh; Funcion putChar de la Bios int 10h ; Interrupcion de video pop ax ; Recuperamos AX ret ponecadena: push ax ; Se ponen en la pila los valores que modificamos push si loop: mov al,[si] ; Se carga el caracter cmp al,0 ; Nos fijamos si es el terminador jz fin ; Si es el terminador se termina call ponecaracter; sino, se pone el caracter inc si ; Se incrementa SI jmp loop ; Continuamos con el siguiente caracter fin: pop si ; Se recuperan los valores pop ax ret cadena times 25 db 10(25 veces intro)
pero... no va muy bien que se pueda decir... Que otros modos mas efectivos hay? Aqui van un par de funciones que no logro sacar(son funciones de la libreria conio.h del borland, para C/C++): gotoxy textbackwroundcolor textcolor wherwisx whereisy clrscr(ya la he pedido en el principio) Bueno, respondan a las que quiera y puedan, les estare muy agradecido. Yo lo estoy intentando, y supongo que acabare sacandolo. Pero agradeceria ayuda. Al ser posible sin usar las interrupciones del DOS, y lo menos posible las de la BIOS. MUCHAS GRACIAS SALUDOS
74
« en: Miércoles 30 de Noviembre de 2005, 01:05 »
 Siento ser pesado... pero cuando uno esta aprendiendo... Una pregunta de estas boba... La interrupción 10h es del BIOS o del DOS? lo he buscado i me la explica i tal... pero no he encontrado(o no he mirado bien...) si es del bios o del dos... SALUDOS
75
« en: Miércoles 30 de Noviembre de 2005, 00:52 »
Es multiplataforma, i va bastante bien. Y lo mas importante, gratuito...
|
|
|