|
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 - Eternal Idol
Páginas: 1 ... 187 188 [189] 190 191 ... 205
4701
« en: Miércoles 24 de Agosto de 2005, 18:17 »
No hay que hacer inclusion de alguna Librery en paraticular para el uso de esta funcion?
y otra cosa Declaro e prototipo de la funcion deacurdo. BOOL AllocConsole(void);
luego la invoco, muy bien. AllocConsole();
Pero si quisiera manda a imprimir en esa consola que abri un mensaje como por ejemplo:
Hola mundo! sera valido algo como esto? [CODE] BOOL AllocConsole(void){ cout << "Hola mundo" << "\n" } [CODE]
O la funcion ya esta definida? La funcion ya esta definida en Wincon.h que esta incluido en Windows.h pero igual este codigo esta muy mal: [code] BOOL AllocConsole(void){ cout << "Hola mundo" << "\n" } [/code] No podes redefinir la funcion y menos para ponerle ese codigo, como te decia antes para poder usar esa consola tenes que llamar a GetStdHandle y despues a ReadFile y WriteFile.
4702
« en: Miércoles 24 de Agosto de 2005, 18:01 »
Este es el prototipo: BOOL AllocConsole(void);
La podes llamar asi de facil: AllocConsole();
4703
« en: Miércoles 24 de Agosto de 2005, 17:29 »
Tenes que usar AllocConsole para abrir la consola. Con GetStdHandle conseguis stdin y stdout que despues podes usar con WriteFile y ReadFile.
4704
« en: Miércoles 24 de Agosto de 2005, 17:14 »
Hola
Ya pueden bajar Google Talk de aqui:
http://www.google.com/talk/
De momento es un poco simple.Lo uqe mas me gusto es el preview que hacen de los mensajes de correo al conectarte
salu2 Ya lo instalare, ¿El preview de mensajes es como el del Messenger 7?
4706
« en: Miércoles 24 de Agosto de 2005, 17:03 »
Bueno, para los que se quieran anotar a este muy ambicioso proyecto (cuyo objetivo es infimo a comparacion de un Sistema Operativo profesional) que me manden un privado con su mail (preferentemente Messenger). Cualquier duda o sugerencia ponganla aca asi la ve todo el mundo
4707
« en: Miércoles 24 de Agosto de 2005, 16:55 »
Realmente no opino lo mismo, como bien lo dije tiene cosas que lo harian parecer a un sistema operativo pero realmente, ring-3 protection ya viene implementado desde el procesador y por ejemplo sistemas operativos antiguos como por ejemplo DOS no poseian multitasking, multithreading y aun asi eran sistemas operativos, más que por cuestiones de funcionalidad visibles primera vista, no lo considero un sistema operativo es por cuestiones de diseño y mas de fondo que la funcionalidad tangible del programa. Pero creo que ya dejamos ese tema ahi porque seria ubicarlo mejor en otro post.
Si claro, lo del gcc era solo un ejemplo porque de hecho si se quisiera hacer algo que funcionara con codigo para mac o para as400 o cosas asi pues igualmente seria viable.
Ya les dejo a ustedes como deciden hacerlo, pues logicamente las condiciones cambian si se pretende hacer un SO ASM por ser el foro de ASM, o si se quiere hacer un SO independientemente de la tematica ppal del foro.
Ahora si ponemos a volar la imaginacion ( de manera segutramente descabellada o soñadora a extremo) se podria inicialmente utilizar el formato ejecutable de otra plataforma ( linux , windows) y hacer una especie de subsystem para soportarlo, y si todo se diseña y planea de la manera adecuada se podria continuar luego que ya este funcionando, con la creacion del 'subsystem' propio del sistema e implementar los demas subsystems con llamdados al subsystem nativo. tal como lo hace windows, eternal me corregira sino es posible de ese modo.
El sistema en el cual estoy(o estasba) participando en la U, lo habiamos comtenplado para hacer lo usando otro ejecutable y a futuro crear un formato ejecutable y un conjunto de lladmas propio tal como se los he propuesto. Lo mismo digo, difiero totalmente, MS-DOS es apenas una capita que le deja todo el control de la PC a otros ejecutables pero bueno, lo dejamos para otro momento. Windows trabaja con diferentes subsystems y aunque en su momento te haya parecido hilarante soporta una especificacion (chica) de POSIX. Si, seria bastante bueno permitirnos trabajar asi, estoy totalmente de acuerdo. Bueno, ya va siendo hora de que se anoten los que quieran participar y ya despues veremos la arquitectura
4708
« en: Miércoles 24 de Agosto de 2005, 16:15 »
Retomando lo de menuet OS.. creo que seria un mal horizonte para el proyecto, ya que menuet puede tener muchas cosas buenas a nivel de programacion y que seguro merecen un reconocimiento pero en mi opinion no tiene nada de sistema operativo aunque cuente con cosas que lo hagan ver asi.
Menuet en efecto fue desarrollado totalmente en asm, lo cual aunque parezca heroico es una trampa mortal para el desarrollo progresivo de un sistema operativo ya que cualquier mejora que se haga en codigo incluso para hacerlo portable de una maquina a otra o para modificarlo y hacerlo compatible con nuevas funcionalidades de los procesadores... termina siendo una tarea bastante dispendiosa y costosa.
Solo deberia ser desarrollado en ensamblador una parte muy pequeña del nucleo que seria la que implementaria una especie de RTL y otras funcionalidades básicas y la cual podriamos llamar una HLA.
Una alternativa para no desarrollar un sistema en ensamblador es lógicamente desarrollarlo en algún lenguaje de programacin de más alto nivel... seguramente lenguaje C y despues C++, pero esto implica tener un compilador lo cual facilita mucho el asunto ya que si se necesita generar un ensamblado con caracteristicas diferentes o que genere código de maquina de una manera diferente pues simplemente se cambian los parametros del compilador , se recompila y ya.
Alli surge otro problema y es que solo hay dos opciones:
1- Crear un compilador nativo para el sistema operativo 2- Usar un compilador que ya este hecho en otra plataforma y adecuar el sistema para interpretar ese ejecutable
La primera es la opcion más optima creo yo o al menos seria la que mas me gustaria, pero demanda muchisimo más tiempo ya que la sola creacion de un MUY BUEN compilador podria tomar años, la segunda es más rápida pero implica desarrollar de acuerdo a un estandart ya establecido, es decir si se decide usar el GCC habria que ir pensando en desarrollar el conjunto de llamdas del estandart POSIX. MenuetOS es un Sistema Operativo sin lugar a la menor duda: Features - Pre-emptive multitasking, multithreading, ring-3 protection- Responsive GUI with resolutions up to 1280x1024, 16 million colours - IDE: Editor/Macro Assembler for building kernel and applications - TCP/IP stack with Loopback, PPP & Ethernet drivers - Network applications include ftp/http/mp3/smtp servers, - irc, http, nntp and tftp clients - Free-form, skinnable application windows - Hard real-time data fetch - Fits uncompressed on a single floppy Tene en cuenta especialmente lo que esta en negrita. ¿QNX tampoco es un Sistema Operativo entonces? Obviamente eso no quita que hacerlo totalmente en assembly es mucho mas complicado y disminuye muchisimo la cantidad de personas que pueden colaborar, aunque claro que este es el foro de ASM y no de C/C++. Dudo muchisimo de que vayamos a desarrollar un compilador, ciertamente es la mas (sic) optima pero creo que lo mas interesante seria tener ALGO funcionando y no diseñar un nuevo Linux/Windows que nunca logremos implementar. Practicamente estas hablando de lo que queria hacer CodigoDavid con las tarjetas graficas y le dijimos que no se apurara tanto, no podemos pretender diseñar un File System propio, un compilador, un kernel y demas, al final fracasariamos estrepitosamente y no lograriamos tener nada tangible. La segunda opcion me parece razonable y FACTIBLE (cosa fundamental). Esto marca dos caminos, uno es el que ya mencionaste con POSIX y supongo que ext y elf. Otra alternativa que propongo es que en vez de seguir con POSIX creemos nuestra propia interfaz (tal como Windows) y ya que estamos soportemos algun File System como FAT/32 y COFF. Lo mas interesante de esto es que construyendo un enlazador ya podriamos generar un ejecutable propio apartir de codigo compilado en Windows (VC++, gcc, etc).
4709
« en: Miércoles 24 de Agosto de 2005, 09:21 »
4710
« en: Miércoles 24 de Agosto de 2005, 09:08 »
He leido sus post, y se escucha muy interesante lo del SO, me gustaria participar pero realmente soy nuevo en esto de ensamblador, ahora trato de hacer un SO para un trabajo de la universidad, pero debido a sus comentarios he quedado con una duda ¿que diferencia hay entre TASM, NASM y FASM?, cual es mejor, cual debo usar?. TASM olvidalo, es el pasado. FASM: http://flatassembler.nethttp://flatassembler.net/docs.php?article=designSegun su autor esta orientado a Sistemas Operativos, MenuetOS sin ir mas lejos: http://www.menuetos.org/NASM: http://nasm.sourceforge.netdiOS esta hecho en NASM asi que supongo que Bob podra comentar ampliamente sobre este ensamblador. Yo use siempre MASM, incluso para el ejemplo que puse pero creo recordar que en algun momento de la historia lei algo relacionado con la imposibilidad (legal) de hacer un Sistemas Operativo con este ensamblador de Microsoft ... Resumiendo todavia no estoy decidido como dije anteriormente: si llegamos a empezar el proyecto la eleccion yo la haria entre NASM y FASM por cierto.
4711
« en: Miércoles 24 de Agosto de 2005, 07:42 »
Mil GRacias Eternal Idol, jeje .. algo reformado mi Argentino pero igual se entiende che .. Me quiero anotar para lo que tienen pensado hacer, quisiera participar y mas que nada aprender el ASM.. no se si han visto el OS Menuet, elaborado en ASM 32bits si no me equivoco ... lo probe y esta muy bueno, podriamos lograr algo como eso?.. he visto que no hay proyectos emprendidos por personas de habla hispana en toda internet, culpa de eso todos los documentos de sistemas operativos estan en ingles .. aver si se anotan mas usuarios y comenzamos con algo simple como para ver que sale.
Bob, probe tu codigo y me hizo llorar de risa, esta muy bueno, con que compilador trabajas?.. me interesaria aprender al maximo todo esto!.. Un Abrazo para todos y comiencen algo que se ta poniendo buenisimo! jeje MenuetOS, un clasico, en un misero diskette tiene hasta GUI! Creo que estaba hecho con FASM. Lograr un MenuetOS es bastante complejo, se necesita tiempo y dedicacion pero si somos suficientes y con ganas se puede. Bob trabaja con un ensamblador llamado NASM que es multiplaforma y Open Source, si llegamos a empezar el proyecto la eleccion yo la haria entre NASM y FASM por cierto.
4712
« en: Miércoles 24 de Agosto de 2005, 07:38 »
Saludos, muchas gracias Eternal Idol por tu ayuda, pero al final encontre la respuesta era sobre un registro llamado marcador el cual si tiene el valor 11 es que esta vacio, y si cada localidad de la pila en el registro marcador tiene un 11 significa que esta vacia, bueno al rato esto le sirva a alguien mas, pero de nuevo gracias por tu ayuda Eternal Idol.
Farewell Efectivamente segun lo que pude ver en la pagina este seria el estado del registro tag (16 bits) 1111111111111111b (FFFFh) al iniciar.
4713
« en: Martes 23 de Agosto de 2005, 22:08 »
Cualquiera que quiera aportar sera bienvenido por mi parte. De desarrollarse realmente un Sistema Operativo habra muchas tareas por hacer, desde el analisis pasando por el diseño y no terminando en la implementacion que tambien hay que probar todo Por mas infimo que fuera, demandaria muchisimas horas hacer algo realmente funcional, si existen suficientes usuarios dispuestos a internarlo mucho mejor. PD. Saquen sus copias de Sistemas Operativos: Diseño e implementacion
4714
« en: Martes 23 de Agosto de 2005, 19:23 »
eternal de hecho el halt lo unico que hace es bloquear el micro no apagar la pc, lo que se apaga es el micro, faltaria un "ahora puede apagar el pc", a diOS lo deje de programar porque cuando estraba escribiendo el manejador de la disquetera habia una cosa que no funcionaba por eso pare, pero no es dificil de retomar.
por lo del tutorial con mucho gusto si de algo sirve mi aporte..
sobre la instruccion de reseteo es una intruccion que soporta cualquier assembler creo que en nasm la instruccion esa es la misma, es una constante lo que se asigna. es lo mismo hacer
reset: jmp ffff:0000 ; no hace falta ret porque no vueleve nunca y despues call reset
por un solocodigOS jajaj Efectivamente, despues vi el codigo El salto en si, funciona con cualquier BIOS de PC logicamente pero la forma de escribirla no funciona asi en NASM y el salto no te lo deja poner en MASM. Son diferentes sintaxis simplemente En NASM en vez de usar equ se usa %define: %define reset DB 0EAh, 0h, 0h, 0FFh, 0FFh despues pones simplemente reset, entonces te reemplaza el macro, no hace falta hacer una llamada ni un salto. Podriamos hacer un proyecto interesante, habria que ver quien tiene ganas de participar.
4715
« en: Martes 23 de Agosto de 2005, 18:56 »
La pregunta tiene mas de cinco meses ...
4716
« en: Martes 23 de Agosto de 2005, 17:20 »
tienes razon hya incluye soporte para instrucciones SSE2, el ML soportara SSE3? La verdad es que no lo se pero ya viste que es muy simple crear macros para simular instrucciones.
4717
« en: Martes 23 de Agosto de 2005, 17:15 »
4718
« en: Martes 23 de Agosto de 2005, 17:12 »
pero es dependiente del ensamblador que se usa o todos los ensambladores soportan esa 'directiva', es decir lo puedio usar en nasm , tasm? o en todos ? La respuesta a esta pregunta esta implicita en mi anterior mensaje, el que hace el reemplazo es el preprocesador. Por lo tanto la sintaxis es de MASM, creo que TASM la soporta pero no es algo de assembly.
4719
« en: Martes 23 de Agosto de 2005, 17:04 »
reset equ DB 0EAh, 0h, 0h, 0FFh, 0FFh ya veo equ asigna el opcode del jmp y los 'parametros' a reset es como un define en C verdad? Si, le asigna un valor a un identificador que despues reemplazara el preprocesador.
4720
« en: Martes 23 de Agosto de 2005, 16:33 »
en sintesis eso lo se lo que quiero saber es que hace puntualmente.
Son bytes que representan un jmp FFFF:0000, la direccion de memoria donde la CPU carga la BIOS. Al hacer un salto ahi es como si la PC volviera a arrancar.
4721
« en: Martes 23 de Agosto de 2005, 16:06 »
Eternal o el que sepa... tengo una duda, me podrian decir por fa que hace esto:
reset equ DB 0EAh, 0h, 0h, 0FFh, 0FFh
En sintesis eso resetea la PC.
4722
« en: Martes 23 de Agosto de 2005, 10:56 »
Recapitulando, parece que hay bastante interes por este tema en Argentina, no solo ustedes dos sino tambien Enko que fue el culpable de que haya hecho este 'nano loader', no se burlen demasiado que solo perdi una tarde en el Si les interesa podriamos hacer un tutorial, esto va dirigido tanto a los que quieren aprender a hacerlo como a bob esponja que evidentemente podria ayudar muchisimo a su elaboracion. PD. bob, si lo queres seguir ... no me molestaria en colaborar. Ademas me parecio muy gracioso!
4723
« en: Martes 23 de Agosto de 2005, 10:50 »
aca hay algo que hice hace un tiempo como una broma con un amigo.
habiamos teniado la idea de un sistema operativo llamado diOS y quedo todo en la ruina, les paso el codigo fuente con unos bat que creo que lo construyen y lo copian a un disquete, despues de eso reinicien con el disquete puesto y veran algo simple pero que ayuda un poco.
espero comentarios
si no funciona o falta algo avisen Muy interesante realmente, mi PC no tiene diskettera pero para algo esta Virtual PC (o VMWARE en su defecto). Logre probarlo creando un disco virtual, esta muy bien, carga en memoria cuatro sectores apartir del segundo y salta ahi (en este caso es el kernel). Eso si, no me apaga la maquina virtual, queda bloqueada. El reset funciona tal como en mi 'nano loader', saltando a la direccion de comienzo de la BIOS. Las funciones para sacar por pantalla son muy parecidas a las que hice, me alegro En resumen, muy bueno, lastima que no lo hayan seguido.
4724
« en: Martes 23 de Agosto de 2005, 10:08 »
Eternal, me parecio interesante el comentario que has hecho, te enojas si te pido el codigo para verlo?... solo es una consulta .. estoy buscando info al respecto para ver si logro hacer algo similar. Saludos y Gracias de antemano ¿Como me va a molestar? Para nada, solo me jode un poco que me digas "has hecho" en vez de hiciste Estoy pensando en hacer un mini tutorial al respecto ya que veo a bastantes personas interesadas en este tema. Se podria poner un poco de teoria, desarrollar el loader y explicar como lograr probarlo. Aclaro que no soy un experto ni mucho menos en la materia, ni siquiera me gusta programar en 16 bits De cualquier manera aca tenes el codigo, NO REVISADO NI COMENTADO: .186 .model tiny Codigo segment 'code' reset equ DB 0EAh, 0h, 0h, 0FFh, 0FFh IFDEF LOADER org 07C00h ELSEIFNDEF org 0100h ENDIF main: IFDEF LOADER mov ax, 0FFFFh mov ds, ax ENDIF mov ax, cs mov ds, ax mov si, offset msg call prints call getchar IFDEF LOADER reset ELSEIFNDEF call exit ENDIF exit : mov ah, 4Ch int 21h putchar: pusha mov ah, 0Eh xor bh, bh int 10h popa ret prints: prints_bucle: lodsb cmp al, 0 jz prints_fin call putchar jmp prints_bucle prints_fin: ret getchar: xor ah, ah int 16h ret msg db "Presione una tecla para continuar", 0 Codigo ends End Main
4725
« en: Martes 23 de Agosto de 2005, 09:28 »
No entiendo muy bien que es lo que queres hacer, si te referis a los 7 registros de la FPU no son una pila realmente. FINIT/FNINIT lo que hace es establecer todos los registros y flags a los valores por defecto. Tal vez podrias comprobar si hay cambios cuando usas la instruccion con el estado anterior ... Seguramente esta pagina te sera de ayuda: http://www.website.masmforum.com/tutorials/fptute/index.html
Páginas: 1 ... 187 188 [189] 190 191 ... 205
|
|
|