Un nouvel OS pour un nouvel ami
15 sujets de 1 à 15 (sur un total de 17)
- 1
- 2
-
Salut à tous. Suite à mon 1er post dans la partie général, voici l’aspect rock n’roll de ma personne.
J’ai fait du dev 68k pour la Megadrive, c’est sympa. Pour info, la partie la plus ardue est de maîtriser le processeur graphique de la bête.
Voici mon hypothèse de travail : je me trouve avec un Amiga 600 (parce que je le vaux bien).
1ère question : est-ce que l’OS est en ROM ? Je crois (je suis passé du C64 au PC, alors …) qu’une petite animation s’affiche me demandant de mettre une disquette de boot (le Workbench ?). L’OS se situe donc sur disquette.
Si ma question dans la section générale accueille des réponses positives, c’est tout bon. Mais sinon, comme je m’en doute, j’enchaîne.
2nde hypothèse de travail : mécontent des fonctionnalités de l’OS, je souhaite en écrire un moi-même (et les lecteurs m’éviteront les écueils habituels du genre « mais tu es fou », « tu n’y arriveras jamais » ou alors « t’es prétentieux »). Et oui je sais, c’est dur, gna gna gni et gna gna gna. J’ai fait un peu d’informatique, laissez-moi me mettre ces freins tout seul, ils arriveront à bout de moi par eux-mêmes.
Voici les tant attendues questions :
– je sais assembler un code 68k. Comment l’écrire sur disquette, fut-elle virtuelle (à destination d’un émulateur) ?
– existe-t-il une doc pour connaître l’adressage des ports PCMCIA (surtout lui, pour de l’Ethernet) et IDE ?
– existe-t-il une doc pour l’affichage (typiquement, comment écrie un « a » sur l’écran) ?
Olivier
Mod1ère question : est-ce que l’OS est en ROM ? Je crois (je suis passé du C64 au PC, alors …) qu’une petite animation s’affiche me demandant de mettre une disquette de boot (le Workbench ?).
non l’os « workbench » est sur disquette ou HDD, c’est l’atari St qui a le Gem en Rom
Euh.. pas mal de chose trainent en ROMs (exec, intuition entre autre)
Et sur les anciennes révisions il n’y a que peu de choses sur disquette (qq drivers/utilitaires/librairies supplémentaires).
On utilise une disquette « WorkBench » ou un disque dur pour arriver à un bureau du système d’exploitation..
Mais y a des gens plus calés que moi qui devraient pouvoir te répondre…
Pour écrire ton code sur la disquette il y a plusieurs solutions :
Tu crée ton propre secteur de boot, et ton propre format de fichier que tu écris directement sur la disquette : c’est une solution utilisée sur beaucoup de démos et de jeux. Cette méthode n’est évidemment pas reconnue par le workbench.
Tu utilises un formatage standard du workbench (on dit que la disquette est DOS par opposition à NO-DOS), avec comme système de fichiers, FFS (fast file system) ou OFS (old file system) par exemple.
Il y a beaucoup de doc amiga qui peuvent t’aider pour l’assembleur, je pense nottament aux rom kernel manual. Ou a la bible de l’amiga. Pour le port PCMCIA et IDE j’ai les docs techniques du 1200 mais je ne sais pas si ça sert pour un 600.
Il y a déjà des drivers (sur http://aminet.net/) pour les cartes réseau PCMCIA qui fonctionnnent sous workbench. Mais attention seul les cartes compatibles NE2000 fonctionnent et certaines 3COM. Pas les cartes 100MBit juste les 10Mbit. Il faut bien vérifier sur les listes de compatibilité qui sont fournies avec les drivers d’aminet sinon ça marchera pas.
[edit: je viens de lire ton autre post dans général, en fait je comprends que tu veux un client léger. Je pensais que tu voulais faire un os experimental ou pour faire tourner des démos.
Sous workbench (qui est pourtant trés léger comme système), pour faire tourner une pile tcp/ip sur un 600 plus un browser on a besoin d’un disque dur et de plus de mémoire que les un mega d’origine.
Maintenant peut être qu’en optimisant à mort et avec un système de compactages (un filesystem exotique existe qui permet de mettre 950Ko sur une disquette soit: 1900ko decompressé) tu peux arriver a faire rentrer une pile tcp/ip (miami et genesis semblent un peu lourd, peut être amitcp) et un browser minimaliste genre lynx (qui existe déjà sur amiga) sur une disquette (voire deux) je t’encourages, même si cela risque d’être long et compliqué (surtout si tu ne connais pas le workbench) mais pas autant que de tout créer de zéro.
jegougou a écrit :
1ère question : est-ce que l’OS est en ROM ? Je crois (je suis passé du C64 au PC, alors …) qu’une petite animation s’affiche me demandant de mettre une disquette de boot (le Workbench ?).
non l’os « workbench » est sur disquette ou HDD, c’est l’atari St qui a le Gem en Rom
Le coeur de l’os est en Rom une facon simple de s’en convaincre, la simple commande loadWb (de 4 a 6ko) affiche le workbench sans demander quoique ce soit d’autre.
Vouloir ecrire son propre Os est intéressant, mais il existe déjà des projets aboutis. Je pense a Morphos et son ambient, aros, scalos et d’autre que je connaissais pas :
http://aminet.net/search?query=replacement+workbench
Il existe egalement de nombreux patch qui viennent patcher soit des images de la rom qui sont chargées au démarrage, soit des fonctionnalités présentes sur les disquettes du workbench.
Sur amiga 600, il me semble que c’est une rom2.0, il existe egalement une rom 3.0 et 3.1 plus ou moins spécifique a l’amiga 1200.
Au niveau de la doc, je pense qu’il faut que tu trouves les RKM (Rom Kernal Manual), il me semble qu’il y avait des exemples assembleur.
regardes par la déjà ca doit etre un bon début :
http://aminet.net/search?query=RKM
N’hésite pas a nous parler d’avantage de ce que tu souhaites faire, car il est probable que beaucoup de choses existent déjà.
SixK
ob1: salut !
Pour commencer, soit le bienvenu. Si tu veux développer pour l’Amiga, il y a de quoi faire. Et en plus tu es rock’n’roll et un peu fou, c’est parfait !
Par contre, je te décourage fortement d’écrire un OS pour l’Amiga 68k. Pourquoi ? Déjà parce que pour les premières réponses que tu poses, tu risques de ne pas avoir beaucoup de réponses techniques et tu ne sembles pas connaître le hardware de l’Amiga. Ensuite si tu arrives une sorte d’OS, il sera forcément peu abouti (je me place dans un perspective de délai inférieur à 5 ans disons) et que personne n’aura d’intérêt à utiliser.
Je ne veux pas être trop dur mais il ne faut pas te faire d’illusions. A mon avis tu pourrais beaucoup plus d’éclater sur d’autres projets en rapport avec l’Amiga et qui nous seraient utiles !
Comme c’est exactement le genre de remarques que tu ne semblais pas vouloir lire, je te souhaite bonne chance pour cette aventure.
Je serais le premier à t’accueillir et à t’encourager quand tes freins t’auront fait abandonner. Dommage que tu doives en passer par là …
corto a écrit :
Ensuite si tu arrives une sorte d’OS, il sera forcément peu abouti (je me place dans un perspective de délai inférieur à 5 ans disons) et que personne n’aura d’intérêt à utiliser.
Très juste, mais, très égoïstement, ce projet n’est que .. pour moi ! Je vais pas faire le coup de celui qui sort l’OS que toute la communauté attendait. C’est juste un petit truc pour moi perso, pour comprendre, apprendre (parce que je sais que je en sais rien). Ceci dit, ouais, c’est ardu. Je viens de laisser passer un Amiga 600 sur eBay, et j’apprend qu’une carte réseau PCMCIA existe et que la pile TCP/IP Genesis de OS 3.9 est sympa …
… et je vais enchaîner les posts
Tu veux te faire encore plus plaisir ? Prends-toi un Efika et tu galèreras moins qu’avec un 600 bricolé à grands coups d’extensions.
Au fait, savez-vous que Frank Wille a réalisé un module pour se compiler simplement des programmes à lancer directement depuis le firmware de l’Efika, sans OS :
While experimenting with my EFIKA boards I created a compiler target for PPC-Openfirmware (SmartFirmware in this case). It enables you to run plain ANSI-C programs directly under Openfirmware, without the need for booting a real OS. Not much tested. Use it at your own risk.
C’est sur la page de vbcc. En plus, je suis sûr qu’il serait content d’avoir des retours dessus. Et des testeurs.
Pour l’OS que tout le monde attendait … de toute façon on ne t’aurait pas cru
1) L’AmigaOS est en ROM.
Commande loadWb l’active, un bootblock standard de disquette n’a rien de spécial : il est vide.
Donc à tout moment tu peux utiliser les fonctions de la ROM.
Si tu mets une disquette Workbench1.3 dans un A600 ou A1200 tu auras le WorkBench 2.0 ou 3.0, avec ses menus et son style d’interface graphique.
Ce qui est sur disquette ou disque dur, ce sont des programmes suplémentaires, tu n’en a pas forcément besoin.
2) Les Rom kernal manual sont surement utilies mais c’est au cas ou tu utilises ces fameuses Roms, sinon il te faut la Bible de l’Amiga qui décrit tous les registres machines, y compris ceux du lecteur de disquette et probablement ceux du disque dur IDE.
La bible est probablement difficile à trouver, et je n’ai jammais vu celle pécifique au 1200 ou a l’A600. Je ne connais que celle pour l’A500.
3) Pour écrire un ‘A’ il faut au moins ouvrir un écran intuition ou une fenêtre si tu le fais en utilisant les Roms.
Pour le faire sans les ROMS, il faut tout simplement dessiner la lettre.
Pour se faire il faut décrire une ‘Copper list’ qui est un espèce de pseudo language machine destiné à être exécuté par le circuit grapfique Amiga.
Une fois qu’elle est décrite il faut la mettre en place en renseignant les registre de pointeur de copper list.
Cette copper list te permet de préciser à quel endroit de la mémoire se situe ton écrant, décrit les couleurs, les sprites, le mode graphique utilisé, la priorité bi-plan/ sprite…
Quand ta mémoire écran est positionnée, il ne te reste qu’a copier l’image du ‘A’ en utilisant quelques MOVE en assembleur ou en utilisant le blitter, mais je ne sais pas si le l’utilisation du blitter est rentable pour aussi peu de données à copier.
A la rigueur tu pourrait utiliser un sprite si tu n’a que un seul ‘A’ à afficher, mais il faut savoir que les sprites sont limités en Largeur, en nombre et en nombre de couleurs. Par contre, ils on l’avantage d’être fusionnés à l’affichage par le copper, donc ta mémoire écran n’est pas altérée par un sprite et il faut juste metre à jour ses coordonnées au lieu de le copier le corps de l’image entièrement.
Je suis de l’avis de Corto. Ce serait tellement cool si tu pouvais partager tes connaissances et contribuer à la mise en place d’un OS déjà existant. Le challenge est très intéressant.
Maintenant c’est toi qui vois, c’est certain…
[d]Schéma de principe de l’amiga 600[/d]
Laissez-moi trouver le moyen de coder avec du «
«
NDBatteMan : Si tu veux un équivalent àsur le forum, c'est la balise (sans l'espace, évidemment).
Baba a écrit :
2) Les Rom kernal manual sont surement utilies mais c'est au cas ou tu utilises ces fameuses Roms, sinon il te faut la Bible de l'Amiga qui décrit tous les registres machines, y compris ceux du lecteur de disquette et probablement ceux du disque dur IDE.
La bible est probablement difficile à trouver, et je n'ai jammais vu celle pécifique au 1200 ou a l'A600. Je ne connais que celle pour l'A500.Je viens de commander la Bible de l'Amiga (Micro Application ?) sur Price Minister. Je te tiendrai au courant.
Baba a écrit :
3) Pour écrire un 'A' il faut au moins ouvrir un écran intuition ou une fenêtre si tu le fais en utilisant les Roms.
Pour le faire sans les ROMS, il faut tout simplement dessiner la lettre. ...L'Amiga est un moteur de sprite je suppose. Pas assez de mémoire pour faire un Frame Buffer si ? Gageons que la "Bible" m'aidera à y voir plus clair.
/me, chaud bouillant !!!
Modération de BatteMan : Les deux posts à la suite ont été regroupés. Pensez à utiliser le bouton "éditer".[code ] (sans l'espace, évidemment).
Baba a écrit :
2) Les Rom kernal manual sont surement utilies mais c'est au cas ou tu utilises ces fameuses Roms, sinon il te faut la Bible de l'Amiga qui décrit tous les registres machines, y compris ceux du lecteur de disquette et probablement ceux du disque dur IDE.
La bible est probablement difficile à trouver, et je n'ai jammais vu celle pécifique au 1200 ou a l'A600. Je ne connais que celle pour l'A500.
Je viens de commander la Bible de l'Amiga (Micro Application ?) sur Price Minister. Je te tiendrai au courant.
Baba a écrit :
3) Pour écrire un 'A' il faut au moins ouvrir un écran intuition ou une fenêtre si tu le fais en utilisant les Roms.
Pour le faire sans les ROMS, il faut tout simplement dessiner la lettre. ...
L'Amiga est un moteur de sprite je suppose. Pas assez de mémoire pour faire un Frame Buffer si ? Gageons que la "Bible" m'aidera à y voir plus clair.
/me, chaud bouillant !!!
Modération de BatteMan : Les deux posts à la suite ont été regroupés. Pensez à utiliser le bouton "éditer".
la Bible de l’Amiga c’est aux éditions Micro Application effectivement.
L’Amiga a un moteur de sprite et un blitter (copie de mémoire rapide) pour faire ce qu’on appelle des bob (blitter objects), le blitter remplit aussi des surfaces et dessine des lignes mais je ne sais pas utiliser ces fonctions.
un Frame Buffer ? je ne sais pas trop ce que c’est. Mais si c’est la technique du double buffering (2 images écran que l’on échange), c’est possible.
Il gere aussi le « dual playfield » : pouvoir faire un scrooling paralaxe de deux écran dont 1 transparant.
Ya de quoi jouer, mais jouer avec les registre c’est source de plantage : heureusement, l’amiga reboote vite !
Schéma de principe de l’Amiga 600
|A |D |DRD |DRA |RGA
| | | | |
| | +
+ | | |+
| | | | | +
+| | | ROM | +
| || +---| | | | | | DRAM |
| | +
+ | +
| || | | | | +
+| | +
+ | | |+
| | | | | +
+| | | GAYLE | +
| || +---| | | | | | DRAM |
| | +
+ | +
| || | | | | | +
+| | IDE | | |
| | +-+ | | |
| +
| |
+ | || | +-+ | | |
| | | | |
| | +
+ | | || | | |
+ | |+
| AGNUS |
+ || | | |
+| | +
+ | | || | | | |
+
+ | | | | | +
+| |---+ | +
| || 68k | | | | | | | DENISE |
| |
+ | | +----| |+
+ | | | | | +
+| | | | | |
| | +
+ | | | VIDEO+
| | | | || | | VIA | | | | +
+| +---| | +
| || | +
+ | | | | PAULA || | | | | +----| |
| | PAR | | | +
+| | | | | |
| | +
+ | | | PORTS /+
| | | | | AUDIO| | | VIA | | | |
| +---| | | | |
| | +
+ | | || | | | | |
| | SER | | |
| | | | |
Merci BatteMan
15 sujets de 1 à 15 (sur un total de 17)
- 1
- 2
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Un nouvel OS pour un nouvel ami