[Apple 2] Faire un disque virtuel sur PC ?

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Daniel »

Pour ce genre de développement le C est certainement le langage le mieux adapté.
Sur PC la programmation en assembleur est un peu compliquée. Au contraire le C est simple, c'est un excellent compromis entre le langage machine et les langages de plus haut niveau, il ne génère pas beaucoup d'instructions inutiles.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
leduigou
Messages : 542
Inscription : 08 mai 2011 21:00
Localisation : Paris, 6ème

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par leduigou »

Bonjour,

Bien que je ne sois pas un grand développeur, je pense comme Daniel. Le C est un bon compromis.
Sur le conseil de mon fils, je me suis mis à Qt, il y a de nombreuses bibliothèques (y compris pour la communication USB, les ports // sont surement supportés) et faire une interface graphique est enfantin. Enfin, c'est portable Mac et PC.
C'est une option pour permettre un usage sur PC moderne.
Cordialement
Frédéric

Forget the C:\ prompt! Real computing starts with +++
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par 6502man »

Après il y a le problème d’accéder au port LPT sur les OS récents (64 bits) je suis pas sûr que ça soit encore possible :?: :?: :?:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Eagle Protect II
Messages : 353
Inscription : 22 nov. 2017 22:17

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Eagle Protect II »

Vous avez raison, le C est un excellent candidat, c'est juste que j'ai un peu de mal avec les void(+-:=){#@}. Ça me fait penser à linux : "ah, tu voulais la liste des fichiers dans le répertoire ? Très simple : ls -wxcvbn, tu ne savais pas cela ?".

Je suis un peu mauvaise langue, hein, mais quand j'ai découvert qu'avec PERL, pour charger un fichier dans un tableau, il suffisait de

Code : Tout sélectionner

@mon_tableau = READ (mon_descripteur_de_fichier)
ça m'a un peu changé la vie. La même chose en Pascal, c'est 15 lignes de code avec deux boucles imbriquées. Les boucles, justement, avoir un "foreach $ligne (@tableau) { ... }" qui vous évite d'avoir à connaître la taille du tableau et de gérer l'indice, c'est un vrai plaisir de programmer. Peut-être que Pascal et C ont évolué depuis que j'en faisais, mais pour le peu de programmation que je fais de nos jours, PERL est parfait.

Quoi qu'il en soit, je crois avoir trouvé la solution : RPERL. Qui est un vrai compilateur, enfin du moins un vrai traducteur de code perl en C. Je vais essayer cela. Par ailleurs, comme le dit pertinemment 6502man, il faut encore que le langage ait les outils pour accéder au port parallèle. PERL en est capable avec le module que j'ai trouvé ; les autres langages, je ne sais pas. Si ce traducteur fonctionne, je suis le roi du pétrole !
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Daniel »

Un programme en C est plus ou moins lisible, mais ça dépend du programmeur, pas du langage.

Je crois que c'est pareil dans tous les langages. En Basic, du temps d'hebdogiciel, on écrivait des programmes en deux lignes. Croyez moi, ils n'étaient pas évidents à comprendre, pourtant le Basic n'a pas une syntaxe bien compliquée.

Il y a des concours pour écrire le programme C le plus incompréhensible possible : https://www.ioccc.org/
Ceux-là, tu ne risques pas de les comprendre.
Par contre les programmes que tu écriras toi-même seront parfaitement clairs, puisque tu n'utiliseras que des syntaxes que tu connais bien.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par 6502man »

En C pour accéder au port LPT c'est pas compliqué il suffit d'un OUTP (378h,data) par contre l'adresse n'est pas toujours la même selon le PC ;)

Et pour lire l'état du port INP(379h) ..


de mémoire il y a trois adresses consécutives pour le port LPT ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Eagle Protect II
Messages : 353
Inscription : 22 nov. 2017 22:17

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Eagle Protect II »

a écrit : ...
RPerl ininstallable, il fallait s'y attendre (des dizaines de dépendances avec des fichiers d'installations probablement écrits pour linux...), je renonce !

Donc OK, vous avez gagné. Vous me conseillez quoi comme compilateur C ?
Xavier_AL

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Xavier_AL »

Salut tous,

Le GCC peut être une bonne alternative, en complément de WinDev.

Mais, il faut bien prendre en compte l'avertissement de Philippe.

Déjà sous XP, il te sera impossible d'utiliser les "OUT" classiques, sans faire des mises à jour de drivers!
Sous des compilateurs purement Windows VB ou Delphi (même le CPP je crois) tout le problème est de réveiller le port LPT.(ou com, d'ailleurs)

Je te conseille donc de compiler en console, avec GCC... et de le tester avec "DOSbox" ou apparenté.
Les émulateurs réorientent les vecteurs d'interruption IO vers les sorties réelles et non softs.

Tu as aussi la solution de créer une disquette/clé usb bootable en dos 5, puis de lancer ton programme console, sans l'interface Windows, en direct et sans filtre.

Dans ce cas, il est aussi possible d'utiliser un bon vieux QB ou QB64, avec ses fonctions OUT dédiées.
infos:
http://www.petesqbsite.com/phpBB3/viewtopic.php?t=2496
https://www.aaroncake.net/electronics/qblpt.htm

Pour les exemples de code, tu as un choix plutôt grand dans le domaine du transfert de données PC/PC ou toutes autres machines ZX81/CPC/... qui te seront proposé.

Cherche aussi au niveau des applis en électronique, où de nombreux programmes (prog. eprom, etc...) ont été déjà réalisés.

Mais, avant tout, fait un test d'entée/sortie sur ta machine avec un logiciel d'exemple, que tu auras compilé toi même. Ca t'évitera une mauvaise surprise lors de tes tests avec le matériel sur la LPT.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par 6502man »

En compilateur léger et performant tu as TinyC :D

Il y en a plein sous windows ou linux ....

Et comme le fait remarquer Xavier vaut mieux dans un premier temps le compiler en mode console et tester sous DOS ou émulation dos (avec redirection des ports LPT) :roll:

Concernant le port parallèle sous Windows, il faudrait rechercher si des librairies windows 32/64 bits existent en C ????


EDIT: en faisant une recherche vite fait sur le net j'ai trouvé ça (pas essayé, à prendre avec précaution) :
INOUT X64
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Eagle Protect II
Messages : 353
Inscription : 22 nov. 2017 22:17

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Eagle Protect II »

Xavier_AL a écrit : 20 mars 2018 04:30
Déjà sous XP, il te sera impossible d'utiliser les "OUT" classiques, sans faire des mises à jour de drivers!
Sous des compilateurs purement Windows VB ou Delphi (même le CPP je crois) tout le problème est de réveiller le port LPT.(ou com, d'ailleurs)
C'était déjà une bonne raison d'utiliser PERL + le module-qui-va-bien, parce que j'arrivais à faire marcher le port LPT avec.

Cela dit, le module-qui-va-bien ne fonctionne pas tant qu'on n'a pas installé la dll-qui-va-bien, et qui s'appelle INPOUT32.DLL. Donc, pour un novice en C, y a-t-il un moyen simple de remplacer le classique "OUT" par un "je-veux-utiliser-ta-fonction-out, dll-chérie" ?
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par 6502man »

Si tu es sous un windows 32bits tu peux utiliser le inpout32.DLL, par contre c'est sous Windows 64bits qu'il faut installer des alternatives comme le lien que je te donnais :)

Le problème est que les ports LPT sont plus du tout utilisés (ou dans des cas très spécifique) et donc plus supportés par les outils récents par défaut :(

Le PC sur lequel tu à connecté l'Apple à un DOS ou uniquement Windows XP ou plus ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Eagle Protect II
Messages : 353
Inscription : 22 nov. 2017 22:17

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Eagle Protect II »

C'est du pur XP 32 bits.

Par contre, comment utiliser la dll avec mon programme écrit en C ?
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par 6502man »

Il faut rechercher, mais il faut charger la DLL en tant que librairie et après tu peux utiliser OUT32 et INP32 il me semble :roll:

Ca demande 5 lignes au maximum et après tu peux gérer ton port LPT tranquillement :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par 6502man »

J'avais fait un programme pour DOS pour commander le robotarm sur port parallèle, ca peut être un début, mais ca ne fonctionneras pas sous XP (il me semble), je le recherche dans mes archives ...

EDIT:
Tu as de la chance je croyais pas l'avoir accessible, mais j'avais une sauvegarde sur mon serveur :)
Et du coup il y aussi un code pour windows 32bits que j'avais du récupéré quand je m'étais intéressé au Robotarm sur port parallèle :roll:
Si ca peut servir, c'est brut mais fonctionnel pour la version DOS en tout cas ;)
LPT en C DOS/Win32
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Eagle Protect II
Messages : 353
Inscription : 22 nov. 2017 22:17

Re: [Apple 2] Faire un disque virtuel sur PC ?

Message par Eagle Protect II »

Hmmm, bonjour !


Après m'être fait violence et avoir décidé de faire des efforts héroïques pour goûter des légumes, oups, pardon, pour installer le langage C (je me demande d'ailleurs si je ne préfèrerais pas les légumes au C, mais bon...), je tente d'installer MinGW, et bien évidemment, c'est comme Linux : ça ne marche que chez les autres...

Code : Tout sélectionner

mingw-get: *** ERROR *** http://prdownloads.sourceforge.net/mingw/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.tar.xz?download:cannot open URL
mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.tar.xz?download: download failed
mingw-get: *** ERROR *** http://prdownloads.sourceforge.net/mingw/mingw-get-0.6.2-mingw32-beta-20131004-1-gui.tar.xz?download:cannot open URL
mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/mingw-get-0.6.2-mingw32-beta-20131004-1-gui.tar.xz?download: download failed
mingw-get: *** ERROR *** http://prdownloads.sourceforge.net/mingw/mingw-get-0.6.2-mingw32-beta-20131004-1-lic.tar.xz?download:cannot open URL
mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/mingw-get-0.6.2-mingw32-beta-20131004-1-lic.tar.xz?download: download failed
mingw-get: *** ERROR *** http://prdownloads.sourceforge.net/mingw/mingw-get-setup-0.6.2-mingw32-beta-20131004-1-dll.tar.xz?download:cannot open URL
mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/mingw-get-setup-0.6.2-mingw32-beta-20131004-1-dll.tar.xz?download: download failed
mingw-get: *** ERROR *** http://prdownloads.sourceforge.net/mingw/mingw-get-setup-0.6.2-mingw32-beta-20131004-1-xml.tar.xz?download:cannot open URL
mingw-get: *** ERROR *** Get package: http://prdownloads.sourceforge.net/mingw/mingw-get-setup-0.6.2-mingw32-beta-20131004-1-xml.tar.xz?download: download failed
mingw-get: *** INFO *** setup: unpacking mingw-get-0.6.2-mingw32-beta-20131004-1-bin.tar.xz
mingw-get: *** ERROR *** unpack: required archive file is not available
mingw-get: *** ERROR *** unpack: aborted due to previous download failure
mingw-get: *** INFO *** setup: unpacking mingw-get-0.6.2-mingw32-beta-20131004-1-gui.tar.xz
mingw-get: *** ERROR *** unpack: required archive file is not available
mingw-get: *** ERROR *** unpack: aborted due to previous download failure
mingw-get: *** INFO *** setup: unpacking mingw-get-0.6.2-mingw32-beta-20131004-1-lic.tar.xz
mingw-get: *** ERROR *** unpack: required archive file is not available
mingw-get: *** ERROR *** unpack: aborted due to previous download failure
mingw-get: *** INFO *** setup: unpacking mingw-get-setup-0.6.2-mingw32-beta-20131004-1-dll.tar.xz
mingw-get: *** ERROR *** unpack: required archive file is not available
mingw-get: *** ERROR *** unpack: aborted due to previous download failure
mingw-get: *** INFO *** setup: unpacking mingw-get-setup-0.6.2-mingw32-beta-20131004-1-xml.tar.xz
mingw-get: *** ERROR *** unpack: required archive file is not available
mingw-get: *** ERROR *** unpack: aborted due to previous download failure
mingw-get: *** ERROR *** setup: unable to continue
Là, franchement, il se fiche de moi, non ?

Alors quelqu'un aurait-il un truc simple, je veux dire, simple comme Windows, où on va sur un site, on clique sur "Download", après on lance le fichier téléchargé, il dit des trucs rassurants, il pond une icône au milieu de l'écran, et quand on clique dessus, on a un compilateur C qui marche ?

Merci...
Répondre