Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 03 May 2003 04:51:12

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Projet : Xlectron (exe en ram)

Ce projet est de stocker directement des Executables en Ram
en fait, il faudra stocker les exe directement dans la Zone 8 : MCS WORK
C facile maintenant avec l'aide de 2072
en fait, on pourra copier un exec de la flash vers la ram, le supprimer, le renommer...
le nom sera toujours de 8 caracteres (ben le nom du file MemZone)
le fichier exe sera stocke directement et completement dans le file basic
1) Il faudra prendre la methode d'execution des exes de Whyp
2) L'integrer dans le plus d'explo possible
3)lister les exe presents en ram
4)pouvoir els executer
5)pouvoir els envoyer du pc grace a F100 et a Gcom
6)Pouvoir les effacer ou renommer

Donc pour dirxplor, je prendrais en charge le 1) 3) 4) 6)
le 2) je compter sur 2072 et les autres pour le faire
le 5) je compte sur dada

voila et merci

pour plus di'info, posez vos questions ici

=> Xlectron Power !

Hors ligne

 

#2 03 May 2003 04:54:54

tonton1664
Membre
Lieu: Somme (80)
Date d'inscription: 22 Jul 2002
Messages: 217
Site web

Re: Projet : Xlectron (exe en ram)

Ca serait pas plus simple de créer un système de fichier dans cette zone (comme roeoender), comme ca pas besoin de recréer la routine d'execution, ni de nouveaux explorateurs. En plus tu pourrai meme ecrire dans ce fs.

Et on peut s'aider des sources de roedisk

Hors ligne

 

#3 03 May 2003 04:55:11

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Projet : Xlectron (exe en ram)

ok le 2) y'a pas de pb, ça sera intégré dans gx2, mais seulement lors des gdes vacances!!


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#4 03 May 2003 04:57:01

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

non c al merde car le lecteur doit faire 128k et ca boufe tout
au moins, la tt ezst en armonie et en plsu on a besoin de faire cette routine

Pour info : Xlectron = eXecutable Libre Ecriture Copie TRansfert reOmmage Nommage

voila

ps: pour tt ceux qui ont le temps, faites des tests !

Hors ligne

 

#5 03 May 2003 04:59:47

tonton1664
Membre
Lieu: Somme (80)
Date d'inscription: 22 Jul 2002
Messages: 217
Site web

Re: Projet : Xlectron (exe en ram)

nop un fs qui tient dans un fichier basic (ou une zone). comme ca pas besoin de bouffer 128k

Hors ligne

 

#6 03 May 2003 05:01:01

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

bon beh si t pas d'accord...
Je trouve que c'est une bonne idee et je pret a la faire

faut que je cherche la methode dans les sources de Shine

Hors ligne

 

#7 03 May 2003 05:05:01

tonton1664
Membre
Lieu: Somme (80)
Date d'inscription: 22 Jul 2002
Messages: 217
Site web

Re: Projet : Xlectron (exe en ram)

nan je suis d'accord mais je propose une autre idée, c'est tout

Hors ligne

 

#8 03 May 2003 05:10:48

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Projet : Xlectron (exe en ram)

on peut mettre qu'un lecteur de 64Ko en RAM aussi, le lecteur A: ne fait que 64Ko.


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#9 03 May 2003 05:16:41

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

ouais zete chient les gars, c pas grave si vous etes pas motive....

Hors ligne

 

#10 03 May 2003 05:20:01

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Projet : Xlectron (exe en ram)

je suis motivé, mais si c plus facile de mettre un lecteur en RAM, on peut le faire facilement. Tu m'as dit qu'il suffisait juste de modifier dirxplor pour qu'il puisse voir le lecteur U. Je sais pas c une suggestion :?


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#11 03 May 2003 05:30:31

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

non c plus complexe que ca
il faut executer une lib ramdisk.sys au boot de la calttos, ca prends de la mem, ca prends toute la mem basic, ...
c la merde koi
alors qu ela , c beaucoup plus simple, on se servira de la routine de Whyp :

Code:

.Continue mov si,OpenExecutable ; Affiche un message
    call AfficheText
    call Getkey            ; Attend une touche

    call OldInt
    
    ;; ES pointe vers le segment de debut de l'executable

    mov dx,ds        ; Stocke ds dans dx, plus simple a suivre dans l'evolution du programme qu'un push
    
    mov ax,es
    mov ds,ax
    mov ax,0x2000
    mov es,ax
    ;; Maintenant ES pointe vers 0x2000, la zone ou on va ecrire, et DS pointe vers le debut de l'exe
    ;; On lit donc dans son entete les informations concernant sa taille
    
    mov cx,0x80
    mov ax,0
    mov di,0
    rep stosw        ; La zone remplie ici, de 256 octets, fera office de PSP

    ;; PSP
    mov word [es:    0],0x20CD    ; Appel de l'int 20h
    mov word [es:    2],0x2000    ; Adresse de chargement du programme en mémoire
    
    mov word [es:    5],0xF09A    ; Appel de l'int 21h
    mov word [es:    0x2C],0x2003 ; Place le bloc d'environnement en 2003h:0h
    
    mov word [es:    0x50],0x21CD ; Appel de l'int 21h
    mov word [es:    0x51],0xCB

    push ds
    mov ax,0
    mov ds,ax
    mov ax,[ds:    0x84]    ; Vecteur int21h
    mov [es:9],ax
    mov ax,[ds:    0x86]
    mov [es:7],ax
    mov ax,[ds:    0x88]    ; Vecteur int22h
    mov [es:0x0A],ax
    mov ax,[ds:    0x8A]
    mov [es:0x0C],ax
    mov ax,[ds:    0x8C]    ; Vecteur int23h
    mov [es:0x0E],ax
    mov ax,[ds:    0x8E]
    mov [es:0x10],ax
    mov ax,[ds:    0x90]    ; Vecteur int24h
    mov [es:0x12],ax
    mov ax,[ds:    0x92]
    mov [es:0x14],ax    
    pop ds

    mov word [es:    0x40],6    ; N° de version du dos

    ;; Copie de la ligne de commande et du bloc d'environnement
    push di            ; On en aura besoin après
    push ds

    mov ds,dx
    mov si,command        ; SI pointe sur la ligne de commande
    mov cl,[ds:si]        ; CL contient la taille de la ligne de commande
    mov [es:0x80],cl
    add byte [es:0x80],2    ; La chaine est plus longue car on rajoute le $:
    mov ch,0        ; CX egalement
    mov di,0x83        ; Fait pointer DI vers la zone a ecrire dans le PSP
    rep movsb        ; Copie la ligne de commande et sa taille en 0x80 du PSP

    mov bl,[CrtDrive]    ; BL contient la lettre courante de lecteur
    mov [es:0x81],bl
    mov word [es:0x82],0x5C3A ; :
    

    mov si,envir        ; SI pointe sur le bloc d'environnement
    mov cl,[ds:si]        ; CL contient la taille du bloc
    mov ch,0        ; CX egalement
    inc si            ; SI pointe sur le debut du bloc
    mov di,0x30        ; Fait pointer DI vers la zone a ecrire dans le PSP
    rep movsb        ; Copie la ligne de commande et sa taille en 0x80 du PSP

    pop ds
    pop di            ; On recupère DI

    push ds
    
    push word [ds:    0x4]    ; On lit le mot contenant la taille prise en § par le fichier. 1§ = 512 octets
    mov bx,ds
    mov ax,[ds:    0x8]    ; Taille de l'entete en secteurs de 16 octets
    add bx,ax
    mov ds,bx        ; ds pointe vers le debut du binaire
    
    shr ax,5        ; ax contient la taille de l'entete en paragraphes
    dec ax            ; ax contient la taille de l'entete en paragraphes -1
    mov bx,ax
    pop ax            ; ax contient la taille du fichier en §
    sub ax,bx        ; ax contient la taille du binaire en §
    xor si,si

    ;; On va copier le binaire en memoire après le PSP. On va le copier 512 octets par 512, et incrementé à chaque fois les pointeurs de segments
Copie:    
    push si        ; Si doit valoir 0, pour que [ds:si] soit correcte    
    push di            ; On aura besoin de ces deux valeurs a chaque passage de la boucle
    
    mov cx,0x200
    rep movsw
    
    mov bx,es
    add bx,0x20
    mov es,bx        ; es = es + 20
    
    mov bx,ds
    add bx,0x20
    mov ds,bx        ; ds = ds + 20

    pop di
    pop si
    
    dec ax
    jnz Copie

    pop ds
    mov cx,[ds:    0x6]
    cmp cx,0
    jz Execution
    
    mov si,[ds:    0x18]
    
Relocation:
    mov di,[ds:    si]
    mov ax,[ds:    si+2]
    add ax,0x2010
    mov es,ax
    add word [es:    di],0x2010
    add si,4
    loop Relocation
    
Execution:    
    mov ax,0x3000
    mov ss,ax
    
    push word 0xFFFE    ; SP d'execution
    
    mov ax,[ds:    0x16]
    add ax,0x2010
    push ax            ; CS d'execution
    
    push word [ds:    0x14]    ; IP d'execution
    
    mov ax,0x2000
    mov ds,ax
    mov es,ax
    xor ax,ax
    xor bx,bx
    xor cx,cx
    xor dx,dx
    retf            ; Charge depuis la pile IP,CS et PS

voila, faut faire pointer cs sur le debut du prog en ram
le seul proc c'est qu'il faut se demerder que l'exe soit sur un segment (cad une adresse multiple de 16 depuis le debut de la ram)
ce ne sont qu edes broutilles
il suffirais d'ajouter des octets nulles jusqua l'adresse correcte
le prob serais si on supprime un basic avant ca foirerais tout
donc il faudrais modifier la methode pour lancer un exe avec une adresse sur 21bits, et ca faut se pencher dessus

voili voila

Hors ligne

 

#12 03 May 2003 05:34:13

dada66
Membre Communauté Graph100
Lieu: Perpignan
Date d'inscription: 09 Oct 2002
Messages: 1033

Re: Projet : Xlectron (exe en ram)

on a ka copier le contenu du fichier BASIC sur le segment 0x5000, celui qui me sert de mappage. C pas une solution ?


Flash100, F100Console, GComm, ... : http://flash100.free.fr/xoops

Hors ligne

 

#13 03 May 2003 05:35:46

tonton1664
Membre
Lieu: Somme (80)
Date d'inscription: 22 Jul 2002
Messages: 217
Site web

Re: Projet : Xlectron (exe en ram)

L'autre truc c'est que vu que l'exe ne sera pas copié en ram, les données modifiées lors de l'execution seront rechargées a la prochaine execution

Hors ligne

 

#14 03 May 2003 05:40:28

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

non, on copierais l'exe dans le basic dans la rom allouee par dos comme un vulgaire exe en flash
tu ne peut pas lancer un exe dans l'etat, il faut le modifier
l'idee serait de transposer la methode en c pour y voir plus clair et avoir de l'aide de whyp !
je vias l'imprimer et voir ce que ej peut faire

Hors ligne

 

#15 03 May 2003 05:42:05

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

ah oui , c pas con ca dada, copier l'exe sur un zone ou l'adresse est multiple de 16, c vrai, c une bonne idee, comme ca ou aurait pas besoin de modifier la routine !

bravo dada !

Hors ligne

 

#16 03 May 2003 05:46:44

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

bon, voila, on a toute les cartes en main !
- Gcomm pour el transfert (ou pourais meme les transferer avec fa123)
- La routine pour executer + la technique pour le reloquer
- les routine de 2072 pour gerer les exe come des vulgaires fichiers !

voila, bon au travail !
il faut :
- faire la receptionn de fichiers basic (envoi de Xlectron depuis F100, a priori pas complike puisque Gcomm est fait)
- faire un code pour lister les Xlectron dans la ram (a priori facile avec Memzones)
- faire le code pour l'executer (un peu plus complexe mais abordable)
- faire le code pour supprimer et renommer les Xlectron (a priori facile avec Memzones)

Hors ligne

 

#17 03 May 2003 05:54:44

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Projet : Xlectron (exe en ram)

(c mon idée, au fait, alors tu me mettras ds les crédits pour ca wink et pour les futures tests par moi !)


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#18 03 May 2003 05:56:32

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

pour le credits, tu va un peu vite mon gars !

Hors ligne

 

#19 03 May 2003 06:43:39

C@siomax
Programmeur Graph100
Lieu: Grenoble, au QG de fmw-product
Date d'inscription: 03 Feb 2002
Messages: 3042
Site web

Re: Projet : Xlectron (exe en ram)

oui, ce n'est qu'un projet!
Maintenant il faut que je regarde un peu cette routine et que je lise ça à tete reposée! ça serait impossible pour moi d'intégrer un truc autant important ds mon explo sans savoir comment ça marche lol


:mrd: :mrd:
.·´¯`·.¸.-> Casiomax <-·´¯`·.¸.·

Statut: indéfini

Hors ligne

 

#20 05 May 2003 04:37:28

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

bon j'ai lu la routine, elle peut etre convertie en C mais ca sera complexe

j'hesite :
- Soit je refais la routine et je copie directement l'exe en binaire dans la ram et je fais la relocation en "live", ce qui me permet de surpasser l'histoire d'adresse dans le segment
- Soit je copie l'exe dans la flash (second 64ko du secteur des langues) et je lance la fonction de whyp, mais faut que je l'inclue au link et ca seul tonton1664 sais le faire et c aussi complike

un probleme se pose :
Whyp  copie l'exe a l'adresse 2000:0000 , ce qui appartient aux zones ram casio
donc soit :
- je cree une zone d'execution dans la ram casio (donc il faudra que le prog lance n'utilise pas les fonction qui trifouille la zone basic)
- je me demerde pour faire executer la fonction de whyp ailleur dans la ram pour copier l'exe sur le binaire en ram de dirxplor

voila les points qui me posent probleme

WHYP HELP

yikes

Hors ligne

 

#21 05 May 2003 16:15:31

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Projet : Xlectron (exe en ram)

Pourquoi on ne peut pas utiliser la même partie de la RAM que celle utilisé par les progs qu'on exécute depuis un lecteur flash ? Comme ça ça remplace le programme en cour d'exécution... En fait il faut faire la même chose que ce que fait la fonction C exec.

Quand on lance un programme depuis le menu de la g100 ou depuis un explorer le programme est entièrement copié dans la RAM a une adresse (0x0B6E:0x0)

En tout cas il ne faut pas utiliser de segment de la flash pour ce system sinon ça perd tout intérêt...


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#22 06 May 2003 02:35:03

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

attends, si tu execute un prog a cette adresse (par ex ton code de copie) et que tu copie un autre prog dessus, ca va foirer !
donc il va falloir que je place le code d'execution , ailleur dans la ram pour Overwriter l'exe deja present en ram

voial le probleme

en fait , la ft EXEC est placee dans la rom (car c du code romdos) donc on peut alors remplacer en toute trankilite le prog deja en route
la seconde solution serait de pouvoir trouver ce code et executer un exe juste en donnant le segment d'ou se trouve le prog, le probleme est que je n'ai pas la doc DOS de Ibm/Microsoft et je sais pas ou la trouver ...

Hors ligne

 

#23 06 May 2003 06:09:35

Whyp
Programmeur Graph100
Date d'inscription: 05 Feb 2002
Messages: 319
Site web

Re: Projet : Xlectron (exe en ram)

Slt,
C difficile de suivre vu que je vient pas souvent. Cependant, je veut bien aider si possible (mais g pas trop de temps)
J'ai vraiment galerer pour mettre en place la routine d'execution, ça fait plaisir de voir qu'elle pourrait être utile :-)
Le fait de charger la routine a l'endroit habituel des exe me semble une bonne idée. La routine de chargement peut s'ecrire en asm juste avant. En asm, elle prendrait pas bcp de places.
Sans trop se faire chier, il doit y avoir moyen de crée une routine simple qui receptionne un fichier, l'ecrit en memoire, et l'execute. Les fonction de conversion de l'exe se ferait alors sur le PC, le programme client n'aurait plus qu'a sauté a l'emplacement ou ce prog a été copié (juste après lui dans la ram).


http://shine.sourceforge.net tout programmer votre graph100 smile

Hors ligne

 

#24 06 May 2003 06:20:35

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Projet : Xlectron (exe en ram)

smile ca fait plaisir de voir que vous vous attelez a cette tache  smile


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#25 06 May 2003 08:39:27

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Projet : Xlectron (exe en ram)

traduction :
je fais un binaire contenant la routine et je le met dans la zone basic
de dirxplor par exemple, je saute au binaire avec l'adresse de l'exe, ce bianire va charger l'exe et l'executer
bon, je veut bien, mais faut faire le binaire koi !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr