begin process at 2012 05 24 05:32:08
  Trouver un code source :
 
dans
 

13 commentaire(s) de MrNOP sur des sources sur asmfr

Déposé sur Système d'exploitation cos2000 en version 1.2fr

Voici l'adresse de mon nouveau site web avec les nouveaux programmes en assembleur et en C :

http://www.cos2000.info/

Vous y trouverais aussi un forum.

MrNop
Posté le : 04/01/2006 20:36:34

Déposé sur Système d'exploitation cos 2000 v1.3.1 fr (version beta1)

Le programme en C c'est l'installation pour Win2k/XP et c'est du Borland C++ builder 6.0

Je ne donne pas pour l'instant de version compilé pour la 1.3.1 qui n'existe qu'a titre de présentation (pour illustré le fonctionnement de librairie dynamique en mode réel)
Posté le : 07/11/2005 15:33:08

Déposé sur Système d'exploitation cos2000 en version 1.2fr

Lorsqu'une carte graphique est libellé compatible opengl 2.0 ou directX 9.0 cela signifie tout simplement que les fonctions matérielles fournies par la carte graphique sont exploitables par ces librairies videos.
Posté le : 16/05/2005 12:26:57

Déposé sur Secteur boot, kernel et chargeur boot

pour les entrées sorties :
http://cos2000.perso.cegetel.net/int.rar
http://cos2000.perso.cegetel.net/int2.rar

sinon concernant LBA CHS .( LBA concerne que les disque dur donc je parlerais ici d'adressage lineaire d'un secteur )

voila en fait dans un OS on ne raisonne pas en haut nivo avec le N°cylindre (ou piste pour disquette), N° tete, N° secteur (d'ou l'appellation CHS, cylinder, head, sector). Lorsque tu utilise le BIOS avec une disquette c moins grave parce lui parle en CHS et que tu connais parfaitement la geometrie de la disquette (80 pistes,18 secteurs, 2 tetes). Mais sur un disque c plus delicat, il te faut donc recuperer ses infos du BPB (expliqué plus haut) et créer une routine qui transforme un n° secteur lineaire en coordonnées CHS. Regarde ta disquette a en tous 80*18*2 secteurs physique de 512 octets ce qui rend adressable 2880 secteur, en raisonnant avec un nombre entre 0 et 2880 pour situé un secteur c plus simple que d'utiliser les coordonnées CHS.
              adressage lineaire      piste     tete    secteur
exemple secteur 0  ->                  0          0           1
              secteur 12h ->               0          0           12h
              secteur 2Ch ->               1          0            9h

pour plus infos ->
http://membres.lycos.fr/cos2000/FS.html
http://membres.lycos.fr/cos2000/disquette.html

De toute façon c un passage obligé pour la lecture d'une fat !!!

Voila
Sinon le switch mode reel-mode protege qui est utilisé par les dos extenders par exemple, et il est relativement lent !!!!
Arf je sais pas pkoi les gens n'aiment pas le mode réel !!!
Si tu veux plus de mémoire tu peux utiliser le Flat real mode (unreal mode) qui permet d'etendre l'accés a la mémoire etendue complete (<4Gb) sans etre en mode protegé. Il suffit pour cela de basculer en mode protege,  utiliser  pour un selecteur un descripteur dont la limite est de 4Gb et revenir en mode réel !
Posté le : 05/04/2005 19:47:10

Déposé sur Secteur boot, kernel et chargeur boot

Re,

En fait dans cette boucle il faut que tu insere une sous routine qui fait la conversion LBA->CHS a la place de l'appel de l'int 13h

Concernant l'appel de fonction bios en mode protegé, il est possible de le faire mais infiniment plus simple d'implémenter un accés au lecteur disquette, video et HD par les entrées/sorties.

Pour l'appel d'int bios en mode protegé il existe :

- le passage en mode réel le temps de l'appel de l'int et rebasculer en mode protégé
- Un pseudo mode V86

J'ai deja codé une partie d'OS en Pmode mais en C c'est bcp moins sportif comme défit lol
D'autre part meme pour le mode réel je te deconseille d'utiliser le BIOS (lenteur) !!
Surtout en ce qui concerne la video, tu peux programmer trés simplement la vga ou le vesa en utilisant que les ports d'entrée sortie !
Posté le : 05/04/2005 18:49:58

Déposé sur Secteur boot, kernel et chargeur boot

ça c une version simplifiée !!!!

nb_sector equ 9

push es
mov ax,0100h
mov es,ax
xor bx,bx ;mieux que mov bx,0h prend moins de place
mov cx,0002h ;premier secteur a charger sur piste 0
xor dx,dx
mov ah,02
mov al,nb_sector
int 13h
pop es

LordBob> un os utilise tjr le bios (interruption logicielles) pour se charger au boot du PC car aucun OS n'est chargé et il est impossible d'implémenter en un secteur de boot un pilote de disquette (DMA+fdd).

Posté le : 04/04/2005 21:45:34

Déposé sur Secteur boot, kernel et chargeur boot

Salut,

Pour que tu puisse charger plus d'un secteur en mémoire, il faut que tu fasse une boucle autour de ton int 13h func 2.

exemple repris de ton code:

nb_sector equ 9
sector_size equ 512
push es
mov ax,0100h
mov es,ax
xor bx,bx ;mieux que mov bx,0h prend moins de place
mov si,nb_sector ;nombre de secteurs a charger
mov cx,0002h ;premier secteur a charger sur piste 0
xor dx,dx
loading_sectors:
mov ax,0201h
int 13h
jc error_loading
add  bx,sector_size
inc cl
dec si
jnz loading_sectors
end_loading:
pop es

error_loading:
TU MET TA GESTION D'ERREUR

l'inconvenient de ton secteur de boot c qu'il ne respecte pas la norme !! Pas de BPB (boot parameter block) et de plus il te faut une routine de conversion LBA->CHS pour pouvoir charger un nombre plus important de secteurs car la solution que j'ai ecrite ne charge que 18 secteurs au maximum.

Cf http://membres.lycos.fr/cos2000/ mon ancien site dans la section tutorial OS
Posté le : 04/04/2005 19:09:10

Déposé sur Système d'exploitation cos2000 en version 1.2fr

Entierement d'accord bis, les constructeurs de cartes graphiques tiennent a leurs petits secrets, devoiler la programmation des cartes c déja ouvrir une porte vers les mysteres de leur architecture materielle.

Pour avoir des infos sur le prog de ces cartes je vous conseille de lire les sources d'OS opensource tel que linux.

Neanmoins je ne suis pas certain que le mode protégé soit necessaire pour acceder a l'accélération graphique et cela meme si l'adressage de la mémoire video est au dessus des fatidiques 1Mo (cf flat real mode).

Arf le VGA est deja bourré de ressources inexploités, pour un programmeur en ASM c déja un gros travail que de maitrisé le VGA ou le VESA.

D'ailleur le VESA procure une interface par l'usage de l'int 10h qui permet d'acceder a des resolutions ou des performances plus interessante que notre bon vieu VGA.

MrNop
Posté le : 20/01/2005 18:31:07

Déposé sur Système d'exploitation cos2000 en version 1.2fr

Merci,

Mais c vrai qu'un OS en solo c pas evident cela necessite de bien connaitre la machine et d'avoir du temps.

Quand a l'OS 32 bit, ça vient ça vient fo attendre.
Sinon je suis en train de coder une librairie dynamique qui devrais apporter un peu gaieté dans le systeme.

MrNop
Posté le : 22/11/2004 18:17:40

Déposé sur Système d'exploitation cos2000 en version 1.2fr

Merci c sympa, la version 1.4 arrive : elle gère les librairies dynamiques et possede un format d'executable.
Posté le : 19/11/2004 21:24:36

1 2


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales