60

Je suis d'accord pour dire qu'écrire un OS en asm est une hérésie. A l'heure actuelle, c 90% de C (pour la portabiltié/maintenabiltié) et 10% d'asm pour les zones critiques (en terme de vitesse).

Il est clair qu'un tel OS n'a pas d'avenir !

De plus, vous parlez d'optimisation... Soit ! Mais un programme bien écrit en C peut etre aussi rapide si ce n'est plus qu'un prog asm mal écrit. Bcp de gens pensent que le C est lent parce qu'il est compilé.
Mais combien de gens font attention à ce qu'il écrivent en 'C''. Le simple fait de bien écrire son programme 'C' peut faciliter lla tache de l'optimiseur et générer un bon code !

Que ce soit l'asm ou le 'C', il s'agit de _bien_ programmer.

Il s'agit de mon point de vue, ca n'engage que moi (je suis encore loin d'écrire du _beau_ code !)

Romain Liévin aka 'roms'
"Linux, y'a moins bien mais c'est plus cher !"

61

nmatrice a écrit :
C'est ça qui m'impresionne le plus fou et en ASM, avec un interface qui TUE !!



Si tu veux un os avec une interface qui "TUE" essaye plutot BeOS ou MacOS X...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

63

C'est surement largement plus evident d'ecrire un OS enC que en asm !!!

D'ailleur oublie pas que le C a été creer pour CREER des OS !!! (Cf Unix)

Tu peut tt faire en C, meme l'impossible, mais pas le café... wink

PS: si tu veux faire un os digne de se nom, je te déconseille vivemnet d'utiliser le bios...

Meme windows depuis 95 ne l'utilise plus !!
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

65

godzil a écrit :
PS: si tu veux faire un os digne de se nom, je te déconseille vivemnet d'utiliser le bios...
Meme windows depuis 95 ne l'utilise plus !!


Euh d'après ce qu'on nous a dit en cours d'info, Win9x n'est pas un OS. le vrai OS c'est le DOS.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

66

ben DOS= Disk Operating System.
Windows=interface graphique (mais je simplifie fortement)
Car seuls les cons ne reconnaissent pas leurs erreurs.
=========================================
Avis aux newbies, avant de poster, essayez ça ->[http://databob.free.fr/IFAQ/FAQ]

Membre de la [V4pOR T34m]
EvaSDK's Homepage > et c'est reparti

67

sous win3.1, ct réellement le cas...
sous les système plus récentes (XP, par exemple), je ne sais pas si c encore le cas, puisqu'il n'y a plus de DOS, mais une émulation DOS...
sous les os intermédiaire (95, 98), je sais pas trop... ct un peu le foutoir grin
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

68

TheCodR > pour afficher les char
A ma conaissance, il n'y a pas besoin du BIOS, car en mode texte, chaque octet de la mémoire vidéo représente le code ASCII du caractère, et le suivant représente sa couleur.

> changer de mode video
Là le BIOS VESA est indispensable... et encore ! il me semble qu'avec les pilotes du fabriquant (demande-lui d'en écrire pour ton OS, mais je crois qu'il refusera grin), ce n'est qu'une fonction à appeler.

> lire sur une disquette etc...
Je crois que ce n'est pas indispensable, mais je ne suis pas sûr du tout.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

69

4 ko !
On ne doit vraiment pas pouvoir faire grand chose !
Mais où peut-on trouver des docs là-dessus ?
Comment t'as fait, toi ?

70

Thibaut: Je fais des progs en C qui écrivent directement dans la mem texte, mais c'est quand même le bios qui les affiche, non?
Et la police est celle du Bios, de toute manière!
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

71

C'est pas le BIOS qui affiche, c'est la carte !!!
Le processeur de ta carte graphique, en mode texte, transforme chaque octet en le dessin du caractère correspondant magic
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

72

Question conne : Pk windows est programmé en C et pas en ASM ?

73

Parce qu'il y aurait encore plus de bugs grin

74

Ba les bugs ca se corrige ?

75

Pas chez Kro$oft.

76

Mais le noyeau des windows NT c'est de l'ASM nan ?

78

TheCodR : Tout mon post suppose que l'écran fait 80x40 caractères, que chaque caractère demande 2 octets (code ASCII + couleur), et que l'adresse de la VM est $A000.

> il faudrait écrire un driver qui gère l'écriture en mémoire suivant la position X et Y du curseur, les couleurs,
Tu as raison, c'est terriblement surhumain de coder :
void DrawChar(short X, short Y, char caractere, char couleur)
{
  ((unsigned short *)0xA000)[Y*80+X] = ((unsigned short)caractere << 16) | couleur;
}

en ASM ! Ca demande 5 ou 6 lignes !! oulàlà grin


> le deplacement des lignes
C'est un simple décalage des mots de la VM de 2*80 octets "vers la gauche", ce qui donnerait en C :
void deplace(void)
{
  short *pVM= (short *)0xA000;
  short i= 80*39;
  
  while (i--)
  {
    *pVM= pVM[80];
    pVM++;
  }
}



Je suis en train de coder ton OS à ta place triso
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

80

> je code pas en C
n'importe quel débutant ASM qui connaît le C peut faire la conversion wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

81

Il me semble qu'à l'origine le noyau NT n'appartenait pas à Kro$oft
Car seuls les cons ne reconnaissent pas leurs erreurs.
=========================================
Avis aux newbies, avant de poster, essayez ça ->[http://databob.free.fr/IFAQ/FAQ]

Membre de la [V4pOR T34m]
EvaSDK's Homepage > et c'est reparti

82

Exact. Si ma mémoire est bonne, Windows NT est basé sur OS/2 qui appartenait à IBM et M$. M$ a rompu le contrat de co-développement avec IBM et s'est servit de OS/2 pour bâtir NT.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

83

.globl _DrawChar
	.def	_DrawChar;	.scl	2;	.type	32;	.endef
_DrawChar:
	pushl	%ebp
	movl	%esp, %ebp
	movswl	12(%ebp),%ecx
	imull	$80, %ecx, %ecx
	movswl	8(%ebp),%eax
	movsbw	16(%ebp),%dx
	sall	$16, %edx
	addl	%eax, %ecx
	movsbw	20(%ebp),%ax
	orl	%edx, %eax
	movw	%ax, 40960(%ecx,%ecx)
	popl	%ebp
	ret
	.align 2
.globl _deplace
	.def	_deplace;	.scl	2;	.type	32;	.endef
_deplace:
	pushl	%ebp
	movl	$40960, %edx
	movl	%esp, %ebp
	movl	$3119, %ecx
L6:
	movw	160(%edx), %ax
	decl	%ecx
	movw	%ax, (%edx)
	addl	$2, %edx
	cmpw	$-1, %cx
	jne	L6
	popl	%ebp
	ret

Reste à virer les registres 32 bits si tu as besoin d'instructions 16 bits.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

84

Qu'est-ce que c'est que cet assembleur à la con ???
Ils ont fumé ou quoi chez GNU ? Ils pouvaient pas utiliser la syntaxe intel ?

85

C'est la syntaxe AT&T, standard sous Unix (et nettement plus lisible pour un habitué du 68k, d'ailleurs).

Si tu veux de l'Intel, il suffit de passer -masm=intel à GCC:
.globl _DrawChar
	.def	_DrawChar;	.scl	2;	.type	32;	.endef
_DrawChar:
	push	ebp
	mov	ebp, esp
	movsx	ecx, WORD PTR [ebp+12]
	imul	ecx, ecx, 80
	movsx	eax, WORD PTR [ebp+8]
	movsx	dx, BYTE PTR [ebp+16]
	sal	edx, 16
	add	ecx, eax
	movsx	ax, BYTE PTR [ebp+20]
	or	eax, edx
	mov	WORD PTR [ecx+40960+ecx], ax
	pop	ebp
	ret
	.align 2
.globl _deplace
	.def	_deplace;	.scl	2;	.type	32;	.endef
_deplace:
	push	ebp
	mov	edx, 40960
	mov	ebp, esp
	mov	ecx, 3119
L6:
	mov	ax, WORD PTR [edx+160]
	dec	ecx
	mov	WORD PTR [edx], ax
	add	edx, 2
	cmp	cx, -1
	jne	L6
	pop	ebp
	ret
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

86

Ceci dit, je trouve movswl 12(%ebp),%ecx nettement plus lisible que movsx ecx, WORD PTR [ebp+12]. Mais ça doit être parce que je suis un habitué du 68k. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

88

Windows XP / 2000 sont basé sur un noyau NT qui est lui même basé sur
Windows 3.11 pour workgroup (il me semble, windows 3.1!=windows 3.11).
ce noyau fonctionne tout seul et pas du tout comme Windows 98 qui , lui ce base sur DOS.
le dé-avantage c que en cas de probléme, le noyau NT qui depend entierement de windows
ne peu pas démarrer en mode minimal ou on peu alors reparer l'erreur
ou formater, alors que DOS ne depend pas de windows, on peu donc librement booter sous DOS même si Windows98 ne demarre pas.


attentionattention NT est strictement différent de Windows 3.11 !!! attentionattention

Windows NT a tjrs fait l'oeuvre d'un developpement totalement séparé de DOS/Win 3.x

D'ailleur pour info Windows 3.x (3.1 et 3.11 sont stictement identique, seulement 3.11 supporte "nativement" le reseau, en donnant directement les pilotes, sans avoir besoin d'acheter le module reseau de DOS avec Win 3.1, une petite preuve, on peu utiliser les disquette de 3.1 pour windows 3.11, en "bidouillant" un peu..)

Autre choses aussi, a propos de Win NT, si ton WinNT veux plus démarer c que vraiment tu a fait n'importequoi avec, ou alors ton pc est au bord de l'agonie (...) , et il existe un menu de démarage permettant de faire un minimum qui permet (tres) souvent de recuperer ton WinNT dans un etat "utilisable"

Sinon pour info, je te conseille de lire un peu de litérature (Genre du tannenbaum) et de regarder un peu les source de kernel actuels, le BIOS est strictement evité pour plusieurs raisons.

La premiere est principale c que le bios fonctionne avec des interruptions est EMPECHE le fonctionnement MULTITACHE d'un OS en bloquant le fils d'execution de tt se qui utilise le bios pendant que l'intereruption est utilisé...

D'ailleur Win 9x est qu'une "interface" mais une interface qui prend totalement le coontrole par dessus le bios, un peu comme le ferrait loadlin ss dos, mais en un peu moins brutalement puisque le dos continu plus ou moins a exister

Et puis faire fonctionner le lecteur de disquette est pas si horrible que sa !
suffit d'avoir la doc, et puis abandonne l'asm, si tu veux faire un OS actuellement tu va voir quand tu va changer ne serait-ce que ton proc ou ta carte mere ou quoique se soit dans ton pc... tu va rire quand il faudra changer la moitié du code source !

L'asm est tjrs utilisé dans les "section critiques" ou le C est pas assé précis, TT les OS actuells sont dévellopé en C (ou au "pire" en C++) meme les UNIX d'il y a 30ans !!!!!!!!!!!

Si Ken tompson, brian kernighan et denis richies (pour citer que les plus connu) on devellopé le B et puis le C pour develloper leur OS (basé sur MULTICS ecrit en BCPL) c'est qu'il y a une raison !!!!!!!

Le C est aps fait pour les chiens..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

89

bien resume
Car seuls les cons ne reconnaissent pas leurs erreurs.
=========================================
Avis aux newbies, avant de poster, essayez ça ->[http://databob.free.fr/IFAQ/FAQ]

Membre de la [V4pOR T34m]
EvaSDK's Homepage > et c'est reparti

90

MenuetOS ne reconnait pas le NTFS, j'imagine......sad