J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!!!!!

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!!!!!

Message par cgh » 11 nov. 2012 22:40

En 1986, alors en affrontement direct avec un copain d'école d'ingé qui avait une HP-41CX, j'avais développé une gestion de mémoire étendue (XMEM), un peu comme sur la HP. Je pensais l'avoir perdue (les K7, elles sont bien perdues :-( sniff ).
Et bien, en recherchant les informations sur les calls vectorisés, je l'ai retrouvé cet utilitaire :-D :-D :-D !!!
Bon, c'est sur papier. Donc il faut tout retaper, et aussi le reloger car ma copie (qui est une copie de travail preque finale) est complètement éclatée de &0100 à &2960 ! Normalement, cette petite gestion ne devait occupper (de mémoire) que 2,2K.

Grosso-modo, voici les commandes:
---- Générales ----
MSIZE nnnn : Fixe la taille de la XMEM à nnnn octets.
MMEM n : Retourne des informations (place dispos, occupée, nb de fichiers, adresses diverses)
MPURGE "file" : Détruit un fichier (équivalent de PURFL)
M<jesaispasquoi> : Catalogue listant les fichiers présents (nom/type/taille) en avant et en arrière (équivalent de EMDIR)

---- Fichiers Programmes (BASIC et LM) ----
PSAVE "file" [arg...] : Copie un fichier de la zone BASIC dans la XMEM (équivalent de SAVEP). A priori, fonctionne aussi pour les fichiers LM.
PLOAD "file" : Copie un fichier de la XMEM dans la zone BASIC pour l'éditer (équivalent de GETP).
PCALL "file" / PRETURN / PENDALL : Appelle un fichier programme/LM en XMEM (pas d'équivalent sans programmation synthétique) / Retourne à l'appelant BASIC y compris en XMEM / Met fin à l'exécution (comme END). J'ai aussi un embryon de l'EXEC de MACBAS dans le code, mais c'est vieux, et je ne me souviens plus de ce qu'était la version finale (enfin finale :~ ).
P<jenarrivepasamerelire> "file" : Positionne dans le programme en XMEM pour un listage uniquement.
PINIT : Initialise (?)

---- Fichiers Données et Textes ----
FCREATE .... : Crée un fichier données ou texte.
FOPEN <jepigepaslesarg> : Ouvre un fichier sur un fd.
FCLOSE fd : Ferme le fichier fd (j'ai une version avec un FOPEN * aussi en lieu de FCLOSE).
FREAD fd : Lit et retourne une valnum ou valstring depuis le fichier fd.
FWRITE fd,valnum | valstring : Ecrit val... dans le fichier fd.
FSEEK fd,n : Positionne le fd sur l'enrgistrement n.
FTELL fd : Retourne la position courante.
FEOF fd : Renvoi si fin de fichier ou pas

---- Fichiers graphiques ----
GSAVE "file"[,coldeb[,colfin][,"CXD"] : Copie l'écran en graphique dans un fichier depuis coldeb jusqu'à colfin. "CXD" est un bitmask qui doit signifier "C : CLEAR", "X : XOR", "D : ????"
GLOAD "file"[,coldeb[,colfin][,"CXD"] : Copie un fichier sur l'écran en graphique depuis coldeb jusqu'à colfin. "CXD" est un bitmask qui doit signifier "C : CLEAR", "X : XOR", "D : ????"
J'ai aussi des fonctions GPEEK et GPOKE, mais c'est tout barré !!!

Est-ce que cela peut vous intéresser ? Comme je suis dans une période "PC-1500" et qu'il tout retaper et reloger, il faut en profiter car il y a quand même un peu de boulot !
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par gege » 12 nov. 2012 10:55

C'est génial ! 8O
On dirait qu'il y a du travail pour tout remettre d'aplomb.
G.E.

Avatar de l’utilisateur
wldsvc
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 119
Inscription : 15 oct. 2012 13:20
Localisation : Drôme
Contact :

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par wldsvc » 12 nov. 2012 11:44

Encore une fois, joli ! Tu sais bien que ça m'intéresse :mrgreen:

Fonctionne avec un CE-163 ?
dispo : Sony Clié T675C, Psion Series 5mx 16MB, fx-180Pv
recherche : Sharp PC E220, Sharp PC-G850, calculatrices HP programmables

Avatar de l’utilisateur
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4571
Inscription : 09 août 2008 17:46
Localisation : 03

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par Ythunder » 12 nov. 2012 12:36

C'est quoi XMEM, une partie de la mémoire spécifique, une mémoire protégée, étendue, réservée ?
(rapide, ça m'a fait penser à la mémoire XMS des PC)
On cherche a vendre la voiture neuve de mon père décédé en janvier, une KONA Hyundai diesel à boite automatique, sans doute - de 10000 kms. Superbe état. On cherche à payer le LOA en cours, donc si qq est intéressé me faire signe. Vuus pouvez acheter les yeux fermé, 0 défauts.

Je suis CHARLIE
Tell me boy, do you have a room, in your heart, for the Computer boom...

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par cgh » 12 nov. 2012 13:28

wldsvc a écrit :Encore une fois, joli ! Tu sais bien que ça m'intéresse :mrgreen:

Fonctionne avec un CE-163 ?
J'essayerai de faire un programme C qui le reloge n'importe où (selon les contraintes lié à un utilitaires avec une table de mots clés) comme j'ai fait pour l'ASSEMBLER ou monMon.
Mais n'importe quel module devrait aller (même sans pour le 1500A).
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
wldsvc
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 119
Inscription : 15 oct. 2012 13:20
Localisation : Drôme
Contact :

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par wldsvc » 12 nov. 2012 13:39

Ce que je voulais dire, c'est est-ce qu'on peut utiliser la seconde page du module pour la mémoire XMEM...
dispo : Sony Clié T675C, Psion Series 5mx 16MB, fx-180Pv
recherche : Sharp PC E220, Sharp PC-G850, calculatrices HP programmables

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par cgh » 12 nov. 2012 13:54

Ythunder a écrit :C'est quoi XMEM, une partie de la mémoire spécifique, une mémoire protégée, étendue, réservée ?
(rapide, ça m'a fait penser à la mémoire XMS des PC)
Une XMEM (eXtended MEMory) est un terme qui vient du monde HP-41 et plus particulièrement du module XFUNCTION. Il s'agit d'une RAM (de 128 à 604 registres soit ~4,2k) qui est ajoutée à la 41. Mais cette RAM n'est pas mergeable (comme un QUADRAM) à la RAM principale de la 41. Elle est donc vue comme "disque virtuel". C'est donc une mémoire réservée.

J'utilise ce terme, car mon "inspiration" venait de la 41CX. De plus, à cette époque, à part le X-07 et le 71B, je ne me souviens pas avoir vu le terme "disque virtuel".

Pour le PC-1500, il s'agit d'une partie de la RAM qui est "retirée" de la RAM principale pour être gérée comme un petit système de fichiers. Quand la RAM devient importante (8K, 16K, ...), n'avoir qu'une zone pour tout mettre devient vite un bordel sans fin, d'autant plus que les lignes DATA sont statiques et que les variables à deux caractères et les tableaux sont éffacés à chaque RUN. Une gros voulume de mémoire est intéressant aussi pour conserver des données.
C'est ce que fait mon gestionnaire de XMEM.

Il permet de stocker plusieurs programmes. Chacun pouvant être appelé indépendemment des autres, ou bien s'appeler entre eux, comme un "embryon" de librairies.
Les programmes LM sont donc nommés aussi et on a plus à se souvenir que la routine LM qui inverse l'écran est en &1CB7.
Les données numériques ou texte peuvent être stockées dans des espaces nommés et accèdées de façon séquentielle ou aléatoire.

Les fichiers graphiques sont "plus" juste pour "épater la galerie" (et la 41CX de mon copain qui, elle, n'est pas graphique !).
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
Ythunder
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4571
Inscription : 09 août 2008 17:46
Localisation : 03

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par Ythunder » 12 nov. 2012 13:58

ok, thanks !
Je la voyais pas comme disque virtuel (ça m'est pas venu en tête).
On cherche a vendre la voiture neuve de mon père décédé en janvier, une KONA Hyundai diesel à boite automatique, sans doute - de 10000 kms. Superbe état. On cherche à payer le LOA en cours, donc si qq est intéressé me faire signe. Vuus pouvez acheter les yeux fermé, 0 défauts.

Je suis CHARLIE
Tell me boy, do you have a room, in your heart, for the Computer boom...

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par cgh » 12 nov. 2012 14:16

wldsvc a écrit :Ce que je voulais dire, c'est est-ce qu'on peut utiliser la seconde page du module pour la mémoire XMEM...
Actuellement non ! A l'époque où j'ai écrit mon XMEM, je ne connaissais pas ce module. Existait-il déjà ?

Cela ça va être compliqué, car, il va falloir une zone d'échange et si possible en dehors de la RAM principale car le défaut du CE-163 est de commuter ses 2 pages de 16K simultanément.
En zone d'échange, on pourrait cependant utiliser le buffer d'IO (&7B60~7BAF, soit 80 octets), ou bien la zone des XREGS (&7A00..&7Axx [je ne sais plus le dernier registre]). D'autant plus que l'on exécute potentiellement en BASIC (un programme lancé par PCALL), et donc une recopie du code de gestionnaire de la XMEM sera nécessaire. Il y a une restriction sur la zone LM du PC-1500A car son utilisation nécessite forcément un PC-1500A.

Le mieux en attendant serait d'avoir dans une page le gestionnaire XMEM et dans l'autre, ce que je veux. Une "bascule" par une routine LM ou une combinaison de touches dans un driver clavier, ou bien une fonction LM qui copie d'une zone à l'autre serait en revanche assez simple à réaliser (enfin si la bascule se passe comme je le crois). Mais, cette idée me plaît bien et je vais réfléchir à la dernière solution.

Au fait, une idée de nom pour mon gestionnaire de XMEM :?: ? De mémoire, je crois que je l'avais appelé BASFILE.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
wldsvc
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 119
Inscription : 15 oct. 2012 13:20
Localisation : Drôme
Contact :

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par wldsvc » 12 nov. 2012 14:44

Il y a 7 registres : 7A00 à 7A37, soit 56 octets. Sinon, la zone des buffers est plus grande : 7B10h à 7B5Fh (string buffer). Je ne sais pas si on peut utiliser les buffers I/O qui suivent sans risque d'interférer avec un éventuel OPEN #. Je pense que 80 octets devraient faire l'affaire. Autre solution : utiliser la zone de variables dynamiques et y reserver un petit buffer en utilisant un nom de variable inaccessible du BASIC.
dispo : Sony Clié T675C, Psion Series 5mx 16MB, fx-180Pv
recherche : Sharp PC E220, Sharp PC-G850, calculatrices HP programmables

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par cgh » 12 nov. 2012 23:22

Bon, finalement, ce sera plus facile que prévu. En effet dans mes nombreuses images WAV que j'ai numérisées, je viens de retrouver le code de XMEM (enfin, les adresses ne sont pas les même et le code est un peu différent), mais cela évitera une copie from scratch.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Okinawok
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 413
Inscription : 12 avr. 2011 15:07

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par Okinawok » 12 nov. 2012 23:42

cgh a écrit :
Ythunder a écrit :C'est quoi XMEM, une partie de la mémoire spécifique, une mémoire protégée, étendue, réservée ?
(rapide, ça m'a fait penser à la mémoire XMS des PC)
Une XMEM (eXtended MEMory) est un terme qui vient du monde HP-41 et plus particulièrement du module XFUNCTION. Il s'agit d'une RAM (de 128 à 604 registres soit ~4,2k) qui est ajoutée à la 41. Mais cette RAM n'est pas mergeable (comme un QUADRAM) à la RAM principale de la 41. Elle est donc vue comme "disque virtuel". C'est donc une mémoire réservée.

J'utilise ce terme, car mon "inspiration" venait de la 41CX. De plus, à cette époque, à part le X-07 et le 71B, je ne me souviens pas avoir vu le terme "disque virtuel".

Pour le PC-1500, il s'agit d'une partie de la RAM qui est "retirée" de la RAM principale pour être gérée comme un petit système de fichiers. Quand la RAM devient importante (8K, 16K, ...), n'avoir qu'une zone pour tout mettre devient vite un bordel sans fin, d'autant plus que les lignes DATA sont statiques et que les variables à deux caractères et les tableaux sont éffacés à chaque RUN. Une gros voulume de mémoire est intéressant aussi pour conserver des données.
C'est ce que fait mon gestionnaire de XMEM.

Il permet de stocker plusieurs programmes. Chacun pouvant être appelé indépendemment des autres, ou bien s'appeler entre eux, comme un "embryon" de librairies.
Les programmes LM sont donc nommés aussi et on a plus à se souvenir que la routine LM qui inverse l'écran est en &1CB7.
Les données numériques ou texte peuvent être stockées dans des espaces nommés et accèdées de façon séquentielle ou aléatoire.

Les fichiers graphiques sont "plus" juste pour "épater la galerie" (et la 41CX de mon copain qui, elle, n'est pas graphique !).
Enorme ! Merci CGH :P

franck196569
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 97
Inscription : 27 sept. 2012 09:56
Localisation : Nantes

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par franck196569 » 14 nov. 2012 21:26

Merci pour ces infos !!!

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par cgh » 18 nov. 2012 10:30

Bon ! Je suis content, cela fonctionne bien :-) . Seuls les fichiers graphiques me donnent du fil à retordre :evil:
Actuellement, il n'y a pas de pilote clavier. Les fonctions sont affectées en mémoire RESERVE.

Je recherche des "Béta-Testeurs" :geek: , pour pousser BASFILE (la gestion de XMEM) dans ses retranchements.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

franck196569
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 97
Inscription : 27 sept. 2012 09:56
Localisation : Nantes

Re: J'ai retrouvé ma gestion de XMEM sur PC-1500 !!!!!!!!!!!

Message par franck196569 » 18 nov. 2012 21:55

Je serais partant si tu veux bien ...

Où puis-je trouver ce module ?

Franck.

Répondre

Revenir vers « Tous les Pockets »