Terminfo pour Proteus III A ou B ...

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

canal
Messages : 67
Inscription : 17 juil. 2015 00:15
Localisation : Paris
Contact :

Terminfo pour Proteus III A ou B ...

Message par canal »

Hello !

Nouveau sujet ... nouveau projet ...

Juste un terminfo pour Proteus III A ou B (cf. topic: http://forum.system-cfg.com/viewtopic.php?t=5169 ) sur le même modèle que les terminaux Viewdata : pas de code pour positionner le curseur...

Version 1 (fonctionne avec certaines version d'Emacs uniquement) :

Code : Tout sélectionner

proteusIII-dumb|proteus III dumb sans cup,
   cols#64, lines#16, cr=^M, 
   cub1=^H, cuf1=^I, cud1=^J, cuu1=^K, home=^A, clear=^L,
        acsc=x\253q\254l\255k\256j\257m\260n\261t\262u\263v\264w\265\,\274#\2760\275|\335,
   ind=^J,
Version 2 (devrait fonctionner partout ou presque - Emacs, xemacs, vi, screen(1), mc...) :

Code : Tout sélectionner

proteusIII|proteus III,
	cols#64, lines#16, cr=^M, 
	cub1=^H, cuf1=^I, cud1=^J, cuu1=^K, home=^A, clear=^L,
        acsc=x\253q\254l\255k\256j\257m\260n\261t\262u\263v\264w\265\,\274#\2760\275|\335,
	ind=^J,
	cup=^A
	%?%p1%{8}%&%t^J^J^J^J^J^J^J^J%;
	%?%p1%{4}%&%t^J^J^J^J%;
	%?%p1%{2}%&%t^J^J%;
	%?%p1%{1}%&%t^J%;

	%?%p2%{47}%>%t^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I%;
	%?%p2%{31}%>%t^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I%;
	%?%p2%{15}%>%t^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I^I%;
	%?%p2%{8}%&%t^I^I^I^I^I^I^I^I%;
	%?%p2%{4}%&%t^I^I^I^I%;
	%?%p2%{2}%&%t^I^I%;
	%?%p2%{1}%&%t^I%;,
Pour qui veux ... a tester sous Linux :

$ tic lesfichiers.ti_plushaut ^^^
$ export TERM=proteusIII
$

Alex - http://canal.chez.com/terminfo.htm
CP/M (Z80)
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

Le choix du Proteus III pour ce projet est assez particulier:
-il existe trois Proteus III A/B connus, un seul est fonctionnel: le mien.
-le Proteus III A/B n'est pas nativement un terminal, il démarre sur un Basic contenu en ROM.
-aucun logiciel n'a été sauvé sur cette machine
-il dispose d'une interface série, d'une commande "PORT" en Basic qui permet d'utiliser cette interface série mais je pense qu'il n'est pas possible d'envoyer et de recevoir simultanément sur l'interface série depuis le Basic.
Donc "nativement", ca me parait compromis.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
canal
Messages : 67
Inscription : 17 juil. 2015 00:15
Localisation : Paris
Contact :

Re: Terminfo pour Proteus III A ou B ...

Message par canal »

petitjd a écrit :-aucun logiciel n'a été sauvé sur cette machine
Pas de logiciel de communication en gros ...
petitjd a écrit :Le choix du Proteus III pour ce projet est assez particulier:
-il existe trois Proteus III A/B connus, un seul est fonctionnel: le mien.
-le Proteus III A/B n'est pas nativement un terminal, il démarre sur un Basic contenu en ROM.
Oui...
petitjd a écrit :-il dispose d'une interface série, d'une commande "PORT" en Basic qui permet d'utiliser cette interface série mais je pense qu'il n'est pas possible d'envoyer et de recevoir simultanément sur l'interface série depuis le Basic.
Il y a aussi PRINT #2 (pour envoyer vers la RS232C) et le GET (INKEY$) que tu as trouvés dans le Basic 14K ...
Reste a savoir si ce GET marche avec le port RS232C (GET #2 ?) ...

et dans ce cas un petit programme en BASIC pour envoyer/recevoir des caractères entre la RS232C et l'écran/clavier (qui n'a donc pas de codes pour positionner le cursuer) ...

Il y a aussi l'histoire des minuscules ... apparemment les minuscules de cet appareil ne sont pas au bon endroit par rapport à une table ASCII traditionnelle...

Ca me semble pas irréalisable du tout ... mais c'est vrai c'est pas une console non plus ... et 16 lignes de 64 colonnes c'est pas le terminal du siècle mais c'est toujours ça !

Alex.
CP/M (Z80)
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

PORT #2 suivi de PRINT " " est identique à PRINT #2 " "
GET fonctionne avec le clavier mais je ne sais pas si on peut faire un GET #2.
Si Daniel passe par là, il connait mieux les entrailles de la machine que moi.

Le GET je l'ai trouvé par chance, Daniel l'a trouvé (ainsi que toutes les mnémoniques du Basic 14K) en étudiant la ROM.
INKEY$ n'est pas reconnu par le Proteus III.
Les mnémoniques du Basic 14K sont disponibles ici:
http://www.proteus-international.fr/use ... ic-14K.txt
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Terminfo pour Proteus III A ou B ...

Message par Daniel »

A priori je pense que la lecture du port série se fait plutôt par INPUT#2,X$
Ce n'est qu'une hypothèse, je n'ai aucune preuve. Dans l'émulateur cette instruction attend éternellement un caractère sur le port $8010, mais comme il n'arrive pas elle ne se termine jamais.
Daniel
L'obstacle augmente mon ardeur.
canal
Messages : 67
Inscription : 17 juil. 2015 00:15
Localisation : Paris
Contact :

Re: Terminfo pour Proteus III A ou B ...

Message par canal »

Daniel a écrit :Dans l'émulateur cette instruction attend éternellement un caractère sur le port $8010, mais comme il n'arrive pas elle ne se termine jamais.
Bah c'est encore plus simple si on a le numéro du port ! PEEK($8010) fera la même chose que le GET #2 !
Il doit y avoir un autre port pour savoir si un caractère est en arrivé ou non ($800F ? $8011 ??) ... et ce sera parfait ...

Une petite boucle qui recoit du port série (PEEK) et affiche a l'écran (PRINT) et qui reçoit en même temps du clavier (GET) et envoi au port série (PRINT #2) ... facile !

Alex.
CP/M (Z80)
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

Je m'étais amusé il y a quelques années à écrire sur TO7/70 un client "chat" qui était connecté en rs232 à un PC qui lui même renvoyait les communications sur un serveur qui gérait l'ensemble des connexions sur Internet, le tout écrit maison.
Le problème c'était que si on saisissait du texte au clavier sur le TO7/70 en même temps qu'arrivaient des données vers le TO7/70, la liaison rs232 se plantait et plantait le TO7/70.
J'ai abandonné depuis, je ne sais même plus où se trouvent les programmes.
J'ai peur d'avoir le même genre de mésaventure avec le Proteus, d'où mon inquiètude du post précèdent sur l'envoi et reception de données simultanément sur la rs232.

Rassembler tous les éléments nécessaires au test va demander un peu de temps, entrant en période de vacances, j'espère que tu n'es pas trop pressé.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
canal
Messages : 67
Inscription : 17 juil. 2015 00:15
Localisation : Paris
Contact :

Re: Terminfo pour Proteus III A ou B ...

Message par canal »

petitjd a écrit :Le problème c'était que si on saisissait du texte au clavier sur le TO7/70 en même temps qu'arrivaient des données vers le TO7/70, la liaison rs232 se plantait et plantait le TO7/70.
Plutôt un bug coté TO7 du genre routine d'interruption ... car en principe ça fonctionne !
petitjd a écrit :J'ai abandonné depuis, je ne sais même plus où se trouvent les programmes.
J'ai peur d'avoir le même genre de mésaventure avec le Proteus, d'où mon inquiètude du post précèdent sur l'envoi et reception de données simultanément sur la rs232.

Rassembler tous les éléments nécessaires au test va demander un peu de temps, entrant en période de vacances, j'espère que tu n'es pas trop pressé.
En supposant que GET #2 existe et ne soit pas bloquant c'est aussi simple que ça :

10 GET #0,A$: IF A$<>"" THEN PRINT #2, A$;
20 GET #2,A$: IF A$<>"" THEN PRINT #0, A$;
30 RUN

Sinon remplacer le GET #2,A$ par:
20 IF PEEK($xxxx) AND y THEN PRINT #0, CHR$(PEEK($8010));

Après j'ai pas géré les minuscules non plus et j'ai pas de proteus !

Alex.
CP/M (Z80)
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

Avec pas mal de retard, j'ai enfin monté une machine physique avec un port série db9 sous Ubuntu server 14.04.
J'ai tapé ton script .ti (version 2), puis exécuté les deux commandes demandées.
Apres le tic proteusiii.ti, j'ai eu deux avertissements:
Ligne 5, colonne 83, terminal 'ascs=x253q254l...275' : older tic versions may treat the description field as an alias
Ligne 5, colonne 83, terminal 'ascs=x253q254l...275' : primary name 'ascs=x253q254l...275' may be too long

Malgré cela, ca m'a crée deux répertoires dans /etc/terminfo:
a/ et p/.
Dans a/ il y a un fichier qui s'apelle ascs=x253q254l...275
Dans p/ il y a un fichier qui s'apelle proteusIII

Remarque: les ... représentent un troncage pour éviter de tout taper dans ce post mais sur la plateforme de test la chaine est identique à celle donnée en version 2, à l'exception des "\"

Est-ce ok pour toi coté Linux?

Ensuite je dois faire le cable, mais il y a plusieurs possibilités coté ProteusIII. Quel serait d'après toi le bon pinout.
Les infos sur la rs232 du Proteus sont disponibles sur http://www.proteus-international.fr
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
canal
Messages : 67
Inscription : 17 juil. 2015 00:15
Localisation : Paris
Contact :

Re: Terminfo pour Proteus III A ou B ...

Message par canal »

petitjd a écrit : Ligne 5, colonne 83, terminal 'ascs=x253q254l...275' : older tic versions may treat the description field as an alias
Ligne 5, colonne 83, terminal 'ascs=x253q254l...275' : primary name 'ascs=x253q254l...275' may be too long
Clairement, tu as oublié un espace (ou un tab) au début de la ligne acsc= (acsc pas ascs !)
Car là il prend ça pour un 2eme terminfo !
petitjd a écrit : Est-ce ok pour toi coté Linux?
Moi j'ai pas eu d'erreurs de compilation. Juste un fichier proteusIII.
petitjd a écrit : Ensuite je dois faire le cable, mais il y a plusieurs possibilités coté ProteusIII. Quel serait d'après toi le bon pinout.
Les infos sur la rs232 du Proteus sont disponibles sur http://www.proteus-international.fr
Si tu as un port DB9 standard (voire éventuellement via adaptateur USB) prends les signaux RS232 oublie les 20mA et TTL !

Donc
(coté Proteus DB25) vers (coté PC DB9)
3+13 Masse vers 5 Masse (1+7 si DB25)
4 TX RS232 vers 2 RX (3 si DB25)
5 RX RS232 vers 3 TX (2 si DB25)
20 RTS vers 8 CTS (5 si DB25)
21 (D)CD vers 4 DTR (20 si DB25)
22 CTS vers 7 RTS (4 si DB25)

Vérifies qd même un peu ... j'ai fait ça rapidement ...

Alex.
CP/M (Z80)
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

Rassures toi, j'ai bien ecrit acsc dans le fichier ti, j'ai fais l'erreur dans le post :oops:
Il manquait bien la tabulation devant acsc, mon iPhone m'a joué des tours, preuve en image:
Maintenant tout est ok à la compilation, on va pouvoir passer à la suite: le cable.
Image
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

Le cable est fait et vérifié.
export TERM=proteusIII tapé coté Linux sur le tty1
Le programme tapé coté Proteus, run et... ca ne marche pas.
Il n'y a pas quelque chose à faire coté Linux pour la liaison série, réglage de la vitesse de transmission ou autre?
Coté Proteus je ne sais pas à quelle vitesse de transmission il est, pour le savoir il faut retirer la plaque des ROMS qui recouvre le système de réglage, mais l'enlever est plutôt délicat, ca ne me tente pas.
Par défaut il devrait être au choix à 30 caractères seconde ou 120 caractères seconde.
J'ai aussi l'impression que le get ligne 10 est bloquant, on ne passe jamais à la ligne 20.

Daniel, Est-ce que tu peux confirmer à quoi correspond chaque canal # en ERCEE Basic 14K?
#1->écran
#2->imprimante (série rs232?)
#3->écran + imprimante
#autres->???
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Terminfo pour Proteus III A ou B ...

Message par Daniel »

Pour l'émulation j'ai essayé de deviner l'adresse des ports écran, clavier, imprimante et cassette. Je ne suis même pas sûr d'avoir choisi le bon pour l'écran et le clavier (interne ou externe). Les autres ports ne sont pas émulés, je ne connais pas leurs adresses. J'ignore les numéros de canaux.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

Ok, bon je vais essayer de jouer avec getty ou mgetty coté Linux.
Et je vais essayer à l'aveugle les canaux coté Proteus.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: Terminfo pour Proteus III A ou B ...

Message par petitjd »

J'ai ouvert le Proteus pour vérifier les vitesses accessibles par le commutateur SPEED.
On est bien en F7 et F9, donc d'après la doc du Proteus en 30 ou 120 caractères par seconde. Or, ces valeurs semblent 10x plus lentes que la norme. J'ai vérifié la datasheet du MC14411, on est en réalité bien à 300 ou 1200 bauds.
Voila qui me rassure sur les paramètres de vitesse.

J'ai commandé un cable null modem, qui me permettra de vérifier si mon ttyS0 est bien opérationnel avec un autre terminal, car je n'ai toujours rien avec Getty et le Proteus. A suivre fin de semaine ou début de semaine prochaine suivant délai de livraison.
Dernière modification par petitjd le 17 mars 2016 20:32, modifié 1 fois.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Répondre