EXL100 extension EXELMEM-X


Menu Bricolages


Cette extension permet de d'ajouter :
- RAM 128 Ko (partagée entre 2 zones de l'EXL100)

- Connecteur USB loader

- 1 repport du bus d'extension

- Un BIOS spécifique à cette extension

- Une connexion Telnet (3 serveurs prédéfinis)





ROM & RAM


La carte mémoire (memory map) de cette extension se décompose de la manière suivante:
 - ROM
$D000-$EFFF  : bios de l'extension (menu et diverses fonctions)
$6000-$7FFF   : shadow ROM (uniquement au boot)

 - RAM
$0080-$00FF  : Working RAM
$0200-$7FFF : RAM zone fixe
$8000-$BFFF : RAM paginée (6 pages)

 - Ports I/O
1E0 :   USB_status
1E1 :   USB_Datas
1E2 :   Page RAM (0-5)  0 par defaut.

USB loader

Pour permettre de charger plus rapidement des programmes que par cassette et de manière plus moderne, j'ai développé une interface que j'ai nommée USB loader.

Cela permet depuis un PC d'envoyer un programme vers l'EXL100 par le port USB, à très grande vitesse.

J'ai intégré une commande dans le Basic : USBLOAD ce qui est plus pratique que d'avoir à faire appel à l'assembleur ;)

J'ai converti presque toute la ludothèque (aidé par Jester pour certains programmes Basic) y compris les nouvelles productions, aux formats USB,
je me suis aussi amusé à faire des vidéos streamées par USB :)

De plus j'ai intégré un émulateur 80 colonnes et une connexion Telnet (c'etait fun à faire).

Extension

J'ai reporté le bus d'extension à l'arrière de l'extension pour notamment pouvoir utiliser la souris Exelvision, par contre totalement incompatible avec l'Exeldisk.



Lors du démarrage de l'EXL100 le menu du BIOS apparaît.

Grâce à l'USBloader vous pouvez charger tous les programmes.
Et aussi ouvrir une connexion Telnet (oui c'est plus pour le fun).


Le menu du BIOS:



La connexion Telnet :      


Un menu développeur est également disponible :

Cela permet de visualiser n'importe quel endroit de la RAM (même la ROM pour les plus curieux),
de changer la page CRAM active, de changer l'adresse PC  (exécution d'un programme).
D'initialiser la RAM (zone SRAM ou CRAM).





Comment charger des programmes et comment utiliser le logiciel PC :

Il y a 3 modes de fonctionnement distincts avec l'USBloader Le mode single file, le mode directory et le mode telnet.

Il est nécessaire de sélectionner le mode voulu sur le logiciel PC, le mode peut être modifié au fur et à mesure.

- Le mode single permet de charger 1 seul fichier (jeu, langage, vidéo,..)
- Le mode directory permet de charger plusieurs fichiers d'un répertoire, les fichiers peuvent être chaînés selon les besoins, ou charger individuellement.
- Le mode telnet permet d'ouvrir une connexion telnet et se connecter à un serveur et de naviguer sur les différentes pages et applications.

Dans un premier temps il faut évidemment connecter le câble USB entre l'USBloader et le PC, ensuite démarrer l'EXL100 et ensuite sélectionner le port COM correspondant à l'USBloader
puis cliquer sur connect.

l'interface PC est celle-là au démarrage du logiciel :



Maintenant il faut choisir le mode à utiliser pour commencer, ça peut être le mode "Single File".

SINGLE FILE
Il suffit de cocher Single File et ensuite de choisir le fichier en cliquant sur Select File une fois le fichier choisi avant de cliquer sur Send il faut  sur l'EXL100 taper 1 :



Sur le PC on peut cliquer sur Send, le chargement est instantané au maximum 3 secondes pour un programme de 32 KO.

Sur le PC l'interface en mode Single :


On peut faire un reset pour revenir au menu de l'Exelmem-X et selon le logiciel précédemment chargé il peut y avoir le choix 8 ou 9 qui apparait dans le menu, ce qui permet de relancer logiciel déjà chargé (très pratique pour le Basic).

On peut aussi charger un autre fichier en choisissant sur PC un autre fichier et donc taper 1 sur EXL100 puis cliquer sur send.


DIRECTORY
Maintenant le mode directory le fonctionnement est similaire mais il peut y avoir plusieurs fichiers à charger dans le répertoire (cela se fait de manière autonome par l'EXL100), la seul opération humaine c'est de choisir le répertoire.

Il suffit de cocher Select Directoryune fenêtre s'ouvre pour choisir le répertoire une fois choisi on revient à l'interface, c'est tout ce qu'il y a à faire côté PC.



Sur l'exl100 si le programme n'est pas en Basic on peut taper 2 directement.



Le cas des programmes BASIC :

Il faut dans un premier temps charger le basic en mode single (choisir le basic avec USBLOAD).
une fois le Basic executé, il faut sélectionner sur le PC le mode directory en choisissant un répertoire avec le programme Basic voulu.
Et ensuite sous Basic taper la commande USBLOAD le programme va se charger automatiquement (il peut y avoir plusieurs parties).
une fois chargé, il faut impérativement taper la commande RUN (pas d'autorun).

Par la suite on peut revenir au menu Exelmem-X avec le bouton reset et taper 8 pour revenir au Basic, si besoin choisir un autre répertoire sur le PC
et sous Basic taper la commande USBLOAD pour charger un autre programme.

A savoir que la commande basic USBLOAD peut avoir en paramètre un numéro qui correspond au fichier que l'on veut charger.


TELNET
Le dernier mode est le mode telnet, pour cela il suffit sur le PC de cocher Telnet Mode.

Ensuite sur EXL100 taper T et choisir le serveur (3 serveurs possibles), ensuite la ligne de commande apparait en haut de l'écran,
vous pouvez taper les commandes pour naviguer dans le serveur.

Les touches fléchées fonctionnent dans les serveurs quand elles sont gérées.

Pour revenir au menu Exelmem-X et fermer proprement la connexion Telnet il suffit d'appuyer sur la touche ESC de l'EXL100.






Le format d'entête des fichiers à charger par l'USBloader sur EXL100, est défini comme suit :

octet

1 X
1= CPURAM, 2=VRAM
2 X Type  ( 1 executable,  2 datas, 3 vidéo,..) 
3 X page pour la ram paginée
4,5 X,X adresse load (MSB,LSB)
6,7 X,X adresse exec (MSB,LSB)
8,9 X,X longueurUsb_loader_EXL100
10 X
chainage (chargement automatique d'un fichier à la suite)
11 à12 00 Libre — réservé pour usage futur




Conclusion:
Je me suis bien amusé à créer cette extension pour cette machine.
J'ai utilisé un CPLD pour toute la partie logique de décodage d'adresse et activation des différents éléments de cette extension
et pour limiter le nombre de composants, et comme ce CPLD se trouve encore facilement et pas trop cher c'était un choix logique.
Ça m'a permis aussi de reprogrammer sur cette machine.

Quelques vidéos du fonctionnement de cette interface :


 










Documentation pour l'utilisation de l'USBloader pour EXELMEM-X



USBloader pour EXELMEM-X  (Windows)



Liste des softs disponibles à charger par USB :



Single Mode :
albertville descente
albertville slalom geant
burgertime
capitaine menkar
casse briques puissance 5
DEMO_6502man (exeldrums)
exelbasic plus
exelbasic [ USBLOAD ]
exelbasic
exeldrums
exelmax-1.6
exelnoid_v099-17
exelnoid_v099-17 (ViesInfinies)
exelogo
exelpaint
exeltexte
EXELVOX
guppy
imagix
kamicar
kong
le-sphinx-d-or
les-aigles
pindo
pindo
pyrox
quizzy
sokoban
tennis
virus
wizord
Vidéo:
Bad apple
Simon's Cat Box
Simon's Cat Snow
Video Test

Directory Mode :
basic programmes
Compil
DOD (prototype)
Slideshow
TOUTHANKAMON_part1
TOUTHANKAMON_part2

Programmes basic:
10000
Affaire en or
algenubi
anaconda
ati42
barman
bombardier
boulderdash
bugbuster
carcrash
chenille
chevaux
coloric
crapette
diamant vert
diamond thief
donkey kong
exelabyrinthe
exelblitz
exelchateau
exeljack
exelmanoir
exelpoker
exelstar
exlfrog
exlduel
haltero
jump_n166
kungfu
labypyramide
mabool
manoir
mario+
meurtre a grande vitesse
midway
millespattes
monkey
musicorgue
myams
natacha
neurone
nimbus
nocturnes
or ou mort
otho
pinball
rallye
roboman
stress
superbad
third world war
tourhanoi
vegax4
zombie