Nº214 (2/2008)







  Download :
Merci à tous ceux, très nombreux, qui m'ont envoyé leurs vÅ“ux pour la nouvelle année. Recevez les miens, bien cordiaux. Une solide santé pour vous et pour tous ceux que vous aimez. Plein de bonheur et la réussite de tous vos projets, qu'ils soient Oriciens ou non. Ce numéro de février est encore bien ventru. Que Jean, qui se tape les photocopies, me pardonne. Outre vos rubriques habituelles, vous devriez y trouver de bons articles. Et si vous avez des idées d'articles, ne vous gênez pas, vous ferez plaisir à tous les autres adhérents (et au rédac'chef)! Bonne lecture! André

Compte-Rendu & Photos de la Visu du 5 Janvier!
Longtemps réclamée, voici enfin la Liste de Contacts! Attention: A utiliser avec précaution S.V.P.
Ecran TFT pour Oric et Super-Oric!
Jouez: Le Retour du Dr. Génius!
Super-Oric: La Rom 1.40!

sommaire

Adresses CEO / Sommaire / Editorial   Page 
Courrier Oricien   Page 
Petites Annonces   Page 
Bonnes Adresses & Liste de Contacts   Page 
Atelier : Sedoric à Nu   Page 
Les Calembours de Schizo Dino   Page 
Super-Oric et LM   Page 
Atelier : Ecran TFT pour Oric et Super-Oric   Page 
La Page de Yann : Venir à Bout du Château de Waydor   Page 
Trucs & Astuces : Transfert des Vieilles Cassettes Oric   Page 
Le Coin Sudoku Oric : Grilles 7 à 12 de Décembre 2007   Page 
Divertissements Mathématiques et Logiques   Page 
Listing : Une Routine LM universelle : MOVER   Page 
News : OricGames 2008   Page 
Nostalgie : Quelques Ecrans Loriciels   Page 
La Librairie Oric : Jeux sur Oric   Page 
Des Trucs pour Tricher (35) : Le Retour du Dr. Génius   Page 
Dino fait le Chat   Page 
Compte-Rendu de la Visu du Samedi 5 Janvier 2008   Page 
Quelques Photos de la Visu   Page 
Super-Oric : Nouvelle Version : La Rom v1.40   Page 
Journal de Transferts : Novembre / Décembre 2007   Page 


Super-Oric et LM

par André Chéramy, Fabrice Francès et Thierry Bestel



De André [9/10/07]: Une fois de plus, je t'appelle à l'aide. Profitant du clavier Super-Oric de Thierry (qui marche vraiment au poil), j'ai tenté d'utiliser la commande CALL, sans succès. Je me souviens que tu m'avais proposé de la modifier pour quelle puisse fonctionner avec les adresses longues mais je pensais qu'elle marchait dans la banque des 64 Ko normaux. Cela ne semble pas être le cas.

J'ai mis sur une cartouche v1.39, le petit moniteur d'André Chénière, Monac1, que j'utilise souvent pour sa flexibilité. Il est logé au départ en #AC00, mais est automobile (auto relogeable). Première déconvenue, il se charge bien au boot, mais n'est pas reconnu comme une programme de type C (Code), mais comme un programme de type B (Basic) et ne se lance pas, bien qu'il soit en AUTO.

J'ai donc placé devant un petit changeur que j'ai appelé Monac0:

10 CLOAD«MONAC1»

20 CALL#AC00

Nouvelle cartouche, avec Monac0 (placé devant) en AUTO et Monac1 en STOP (tout au bout de la cartouche, faite avec Buildcart, qui est un utilitaire très utile).

Le lanceur Basic se charge bien et se lance. Monac1 se charge (en B). Le CALL donne un résultat différent du lancement automatique précédent: Visiblement le moniteur a été lancé (on voit les ‘*' au début de certaines lignes), mais l'affichage est inhabituel. On peut quand même lire:

C0E9- A=C0 X=00 Y=65 S=E7 NV/BDIRC etc. mais la machine est bloquée.

Pensant que c'était peut-être Monac1 qui était inadapté au Super-Oric, j'ai tenté de rentrer manuellement des octets en mémoire.

Les POKE marchent peut-être, mais je n'en sais rien, car les PRINT(HEX$(PEEK()) renvoient systématiquement une «?OUT OF MEMORY ERROR», quelle que soit l'adresse indiquée, page 0, Ram basse, Ram haute, Rom.

Ne pouvant entrer de programme, j'ai tenté les routines de la Rom avec CALL, mais ça plante, même #FFFA (warstart) et FFFC (coldstart), qui affichent toutes deux «ERROR» et on perd la main.

En outre, pour jouer avec un petit programme LM, il faudrait pouvoir observer un résultat. Le son ne marche pas sur ma console réelle avec le Super-Oric (mais marche avec les cartouches Nintendo). Et pour afficher quelque chose à l'écran, il faudra sans doute accéder à la mémoire écran, qui se trouve dans l'autre banque?

Quelle est la commande pour basculer d'une banque à l'autre? Existe t-il une commande pour basculer entre les modes 8 et 16 bits ou bien peuvent-ils coexister?

François Schuler a mis sur son site le manuel de l'Apple IIGS avec un gros chapitre sur le LM 65816. Je peux donc envisager de bricoler des bouts de code en mode 16 bits. Comment fais-tu? Existe-il un petit assembleur 65816 sous Windows?

Beaucoup de questions donc et tu n'as sans doute pas trop le temps de me fournir des explications...

PS Dans la future version 1.40, pourrais-tu restaurer le CTRL/A qui manque vraiment pour faire des essais, maintenant qu'on a un clavier?



De Fabrice [9/10/07]: Pour répondre rapidement, c'est normal que des programmes en LM ne marchent pas de la même façon sur Oric et sur Super-Oric...

Il ne faut pas oublier que le Super-Oric n'est pas un émulateur d'Oric: on peut l'oublier quand on tape des programmes Basic simples, mais si on commence à vouloir jouer directement avec la zone mémoire écran de l'Oric, on va vite se rendre compte que ça ne marche pas sur le Super-Oric. D'ailleurs, l'écran Super-Oric a une résolution différente...

Comme un programme LM n'est en général pas indépendant du matériel, il se comporte différemment sur Oric et Super-Oric. Si le programme LM utilise des routines en Rom pour ne pas adresser directement le matériel (comme pour l'accès écran), ça risque de marcher, ça semble être partiellement le cas avec le moniteur Monac puisque tu vois certaines lignes s'afficher, mais peut-être pas complètement si l'affichage est inhabituel (il se peut aussi que Monac essaie d'utiliser les 40 colonnes alors que le Super-Oric n'en a que 32).

Quant au blocage, je vois deux raisons possibles: il se peut que Monac reprogramme le VIA (il n'y en a pas sur la Snes) et du coup la lecture du clavier par interruption est affectée... Ou alors il y a un plantage parce que Monac réinitialise le pointeur de pile avec une instruction TXS...

Une explication là-dessus: il faut aussi savoir que la cartouche Super-Oric fait marcher le 65816 en mode natif, et non en mode émulation 6502. Même si la taille des registres A,X,Y a été gardée à 8 bits pour pouvoir exécuter le contenu de la rom Oric, il y a des différences de fonctionnement avec le 6502, en particulier le registre de pile est sur 16 bits : il suffit que le moniteur d'André Chénière utilise l'instruction TXS pour que le registre de pile quitte la page 1 pour s'installer en page 0 (avec les dégâts qu'on peut imaginer). La première adaptation de la rom Super-Oric, c'est justement un patch de toutes les instructions TXS de la rom Oric.

Bref, il y a tout un tas de bonnes raisons pour qu'un programme LM pour Oric ne tourne pas de la même façon sur Super-Oric. Si on veut faire tourner Monac, il faut sûrement l'adapter...

Quant à toutes les déconvenues que tu as essuyées, je pense que tu les as eues après avoir exécuté Monac: il est fort possible que l'état de la machine était corrompu après. Le fichier toto.tap ci-joint contient un petit programme de 5 octets et il s'exécute bien au chargement (il affiche juste un caractère ‘@'). Et le fichier test.tap est un programme Basic qui enchaine sans problème les PRINT(HEX$(PEEK()), POKE et CALL pour exécuter la même petite routine LM de 5 octets:

5 PRINT(HEX$(PEEK(#400)))

10 POKE#400,#A2

15 POKE#401,#40

20 POKE#402,#4C

30 DOKE#403,#0238

40 CALL #400

50 LIST

PS: et CALL DEEK(#FFFC) fait bien redémarrer le Super-Oric...

[NDLR. Les fichiers Test.tap et Toto.tap seront sur la prochaine disquette trimestrielle.]



De André [10/10/07]: Fabrice, tu es un (bon) génie! Toutes tes explications me conviennent. Y compris la corruption de l'état de la machine, vu que j'ai fait tous mes essais avec la même cartouche qui lance Monac au boot. Je reprends le problème avec tes indications et ton petit programme et je te tiens au courant. Merci beaucoup.



De André [11/10/07]: Bonjour Fabrice! Comme tu dois t'en douter ça marche! J'ai shooté une AM29F010B avec tes deux tap et c'est pratique de pouvoir utiliser le vecteur d'affichage en #0238 (comment l'appelles-tu déjà?). Les PRINT(HEX$(PEEK(# et les POKE sont OK maintenant. J'ai initialisé la mémoire #400 avec différentes valeurs pour re-tester l'un ou l'autre des deux tap. Les tap se chargent maintenant avec le bon flag (B ou C selon le cas). Tout est OK. Et CALL DEEK(#FFFC) fait bien redémarrer le Super-Oric.

C'est vraiment Monac (et sans doute la présence d'un ou plusieurs TXS) qui corrompait le système. Le source de Monac est bien sûr disponible et quand j'aurais un moment, je vais voir ce qu'on peut faire pour l'adapter.

Merci Fabrice. Je te tiens au courant. Mais pour l'instant, il faut que je me re-penche sur le prochain mag.


BROWSE

NUMEROS
 [224] - [223] - [222] - [221] - [219] - [218] - [217] - [216] - [215] - [214] [213] 

YEAR
2013 - 2012 - 2011 - 2010 - 2009 - 2008 - 2007 - 2006 - 2005 - 2004 - 2003 - 2002 - 2001 - 2000 - 1999 - 1998 - 1997 - 1996 - 1995 - 1994 - 1993 - 1992 - 1991 - 1990



Hosted By oric.org server www.oric.org V 2.6 CNIL ID : 872370 Write to Webmaster © 2000-2024 Built in 0.01 Seconds