• Martes 13 de Mayo de 2025, 03:33

Mostrar Mensajes

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
C/C++ / Re: Abrir Consola De Dos Desde Aplicasion Grafica
« en: Miércoles 24 de Agosto de 2005, 18:17 »
Cita de: "maikmr"
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
C/C++ / Re: Abrir Consola De Dos Desde Aplicasion Grafica
« 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
C/C++ / Re: Abrir Consola De Dos Desde Aplicasion Grafica
« 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.

 :devil:

4704
La taberna del BIT / Re: Google Messenger
« en: Miércoles 24 de Agosto de 2005, 17:14 »
Cita de: "Diodo"
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  :hola:
Ya lo instalare, ¿El preview de mensajes es como el del Messenger 7?

4705
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Miércoles 24 de Agosto de 2005, 17:11 »
Como dije anteriormente, cualquier colaboracion sera bien recibida.

Al que le interese que se pase por aca:

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

 :devil:

4706
ASM (Ensamblador) / Proyecto Sistema Operativo
« 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  :devil:  :smartass:

4707
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Miércoles 24 de Agosto de 2005, 16:55 »
Cita de: "JuanK"
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  :smartass:

4708
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Miércoles 24 de Agosto de 2005, 16:15 »
Cita de: "JuanK"
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
ASM (Ensamblador) / Re: Optimización... Cosas Que Sólo Puedes Hacer En Asm
« en: Miércoles 24 de Agosto de 2005, 09:21 »
Assembly optimization tips:
http://www.website.masmforum.com/mark/

Intel Architecture Optimizations Reference Manual:
http://developer.intel.com/design/pentiumi...uals/245127.htm

Intel Architecture Optimizations Manual
http://developer.intel.com/design/pentiumi...uals/242816.htm

 :devil:  :ph34r:  :comp:

4710
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Miércoles 24 de Agosto de 2005, 09:08 »
Cita de: "IceCube"
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.net
http://flatassembler.net/docs.php?article=design

Segun su autor esta orientado a Sistemas Operativos, MenuetOS sin ir mas lejos:
http://www.menuetos.org/

NASM:

http://nasm.sourceforge.net

diOS 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:

Cita de: "Eternal Idol"
si llegamos a empezar el proyecto la eleccion yo la haria entre NASM y FASM por cierto.

4711
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Miércoles 24 de Agosto de 2005, 07:42 »
Cita de: "© Jonathan ©"
Mil GRacias Eternal Idol, jeje :lol: .. algo reformado mi Argentino pero igual se entiende che ;) :D ..
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  :ph34r: ... 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  :comp:  :devil:  :D
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
ASM (Ensamblador) / Re: Como Se Que La Pila De Registros De
« en: Miércoles 24 de Agosto de 2005, 07:38 »
Cita de: "darkchronos"
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.

 :devil:

4713
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« 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  :devil:

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  :smartass:

4714
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 19:23 »
Cita de: "bob esponja"
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  :comp:

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.

:devil:

Podriamos hacer un proyecto interesante, habria que ver quien tiene ganas de participar.

4715
C++ Builder / Re: Formato De Fechas
« en: Martes 23 de Agosto de 2005, 18:56 »
La pregunta tiene mas de cinco meses ...

4716
ASM (Ensamblador) / Re: Cual Es El Mejor Ensamblador Para Windows
« en: Martes 23 de Agosto de 2005, 17:20 »
Cita de: "JuanK"
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
ASM (Ensamblador) / Re: Cual Es El Mejor Ensamblador Para Windows
« en: Martes 23 de Agosto de 2005, 17:15 »

4718
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 17:12 »
Cita de: "JuanK"
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
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 17:04 »
Cita de: "JuanK"
Citar
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
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 16:33 »
Cita de: "JuanK"
:lol: 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
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 16:06 »
Cita de: "JuanK"
Eternal o el que sepa... tengo una duda, me podrian decir por fa que hace esto:
Código: Text
  1.  
  2. reset equ DB 0EAh, 0h, 0h, 0FFh, 0FFh
  3.  
En sintesis eso resetea la PC.

4722
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« 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  :ph34r:

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! :smartass:

4723
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 10:50 »
Cita de: "bob esponja"
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  :smartass:

En resumen, muy bueno, lastima que no lo hayan seguido.

4724
ASM (Ensamblador) / Re: Como Bootear Una Maquina
« en: Martes 23 de Agosto de 2005, 10:08 »
Cita de: "© Jonathan ©"
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  :D

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.  :devil:

Aclaro que no soy un experto ni mucho menos en la materia, ni siquiera me gusta programar en 16 bits  :whistling:

De cualquier manera aca tenes el codigo, NO REVISADO NI COMENTADO:

Código: Text
  1.  
  2. .186
  3. .model tiny
  4.  
  5. Codigo segment 'code'
  6.  
  7. reset equ DB 0EAh, 0h, 0h, 0FFh, 0FFh
  8.  
  9. IFDEF LOADER
  10.   org 07C00h
  11. ELSEIFNDEF
  12.   org 0100h
  13. ENDIF
  14.  
  15. main:
  16.   IFDEF LOADER
  17.     mov ax, 0FFFFh
  18.     mov ds, ax
  19.   ENDIF
  20.  
  21.   mov ax, cs
  22.   mov ds, ax
  23.    
  24.   mov si, offset msg
  25.   call prints
  26.   call getchar
  27.  
  28.   IFDEF LOADER
  29.     reset
  30.   ELSEIFNDEF
  31.     call exit
  32.   ENDIF
  33.  
  34. exit :
  35.   mov ah, 4Ch
  36.   int 21h
  37.  
  38. putchar:
  39.   pusha
  40.     mov ah, 0Eh
  41.     xor bh, bh
  42.     int 10h
  43.   popa
  44. ret
  45.  
  46. prints:
  47.   prints_bucle:
  48.   lodsb
  49.   cmp al, 0
  50.   jz prints_fin
  51.   call putchar
  52.   jmp prints_bucle
  53.   prints_fin:
  54. ret
  55.  
  56. getchar:
  57.   xor ah, ah
  58.   int 16h
  59. ret
  60.        
  61. msg db &#34;Presione una tecla para continuar&#34;, 0
  62.  
  63. Codigo ends
  64.  
  65. End Main
  66.  
  67.  

4725
ASM (Ensamblador) / Re: Como Se Que La Pila De Registros De
« 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


 :smartass:  :devil:

Páginas: 1 ... 187 188 [189] 190 191 ... 205