[Apple 2] Faire un disque virtuel sur PC ?
Modérateurs : Papy.G, fneck, Carl
Re: [Apple 2] Faire un disque virtuel sur PC ?
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.
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.
L'obstacle augmente mon ardeur.
Re: [Apple 2] Faire un disque virtuel sur PC ?
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.
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 +++
Frédéric
Forget the C:\ prompt! Real computing starts with +++
Re: [Apple 2] Faire un disque virtuel sur PC ?
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
- Eagle Protect II
- Messages : 353
- Inscription : 22 nov. 2017 22:17
Re: [Apple 2] Faire un disque virtuel sur PC ?
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 ç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 !
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)
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 !
Re: [Apple 2] Faire un disque virtuel sur PC ?
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.
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.
L'obstacle augmente mon ardeur.
Re: [Apple 2] Faire un disque virtuel sur PC ?
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
Et pour lire l'état du port INP(379h) ..
de mémoire il y a trois adresses consécutives pour le port LPT
- Eagle Protect II
- Messages : 353
- Inscription : 22 nov. 2017 22:17
Re: [Apple 2] Faire un disque virtuel sur PC ?
RPerl ininstallable, il fallait s'y attendre (des dizaines de dépendances avec des fichiers d'installations probablement écrits pour linux...), je renonce !a écrit : ...
Donc OK, vous avez gagné. Vous me conseillez quoi comme compilateur C ?
Re: [Apple 2] Faire un disque virtuel sur PC ?
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.
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.
Re: [Apple 2] Faire un disque virtuel sur PC ?
En compilateur léger et performant tu as TinyC
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)
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
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)
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
- Eagle Protect II
- Messages : 353
- Inscription : 22 nov. 2017 22:17
Re: [Apple 2] Faire un disque virtuel sur PC ?
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" ?
Re: [Apple 2] Faire un disque virtuel sur PC ?
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 ?
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 ?
- Eagle Protect II
- Messages : 353
- Inscription : 22 nov. 2017 22:17
Re: [Apple 2] Faire un disque virtuel sur PC ?
C'est du pur XP 32 bits.
Par contre, comment utiliser la dll avec mon programme écrit en C ?
Par contre, comment utiliser la dll avec mon programme écrit en C ?
Re: [Apple 2] Faire un disque virtuel sur PC ?
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
Ca demande 5 lignes au maximum et après tu peux gérer ton port LPT tranquillement
Ca demande 5 lignes au maximum et après tu peux gérer ton port LPT tranquillement
Re: [Apple 2] Faire un disque virtuel sur PC ?
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
Si ca peut servir, c'est brut mais fonctionnel pour la version DOS en tout cas
LPT en C DOS/Win32
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
Si ca peut servir, c'est brut mais fonctionnel pour la version DOS en tout cas
LPT en C DOS/Win32
- Eagle Protect II
- Messages : 353
- Inscription : 22 nov. 2017 22:17
Re: [Apple 2] Faire un disque virtuel sur PC ?
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...
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...
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
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...