Nostalgie … un taptempo en basic pour Amstrad CPC. Au départ j'avais voulu faire un portage en basic pour TO7 mais je n'ai pas trouvé les fonctions qui me convenaient donc je l'ai fait en basic pour Amstrad CPC.
Pas de gestion de l'internationalisation, il manque des options à paramétrer, mais cette version donne l'essentiel : le tempo (en bpms) par rapport à la dernière frappe, et la moyenne sur 10 échantillons.
J'ai codé/testé sur http://www.cpcbox.com/ et via l'émulateur xcpc sous freebsd.
Le code que j'ai retapé à la main pour vous :
10 cls
20 rem initialisation
30 gosub 200
40 x$=""
50 gosub 2000
60 end
100 bpm=(60*50)/count
110 bpms(counterech)=bpm
120 gosub 300
130 gosub 400
140 print "Bpms: ";bpm
150 count=0
199 return
200 count=0
210 nbech=10
220 dim bpms(nbech)
230 x$=""
240 print "Hit enter key for each beat (q to quit)"
250 countereach=0
260 a$=inkeys:if a$="" then 260
299 return
300 nb1=0
310 z=0
320 for i=0 to nbech-1
330 if bpms(i) <> 0 then z=z+bpms(i):nb1=nb1+1
340 next i
350 print "Moy bpms: "; z/nb1
399 return
400 if counterech <> nbech then counterech = counterech+1 else counterech=0
499 return
2000 while x$ <> "q"
2010 x$=inkey$
2020 if x$ <> "" then gosub 100 else count=count+1
2030 wend
2099 return
une copies d'écran du listing avec le programme qui fonctionne :
page 1:
page 2:
L'exécution :
Pour info, la fonction inkey$ scrute le clavier tous les 1/50 de secondes, ce qui permet de calculer approximativement le tempo. Je suis certain qu'il est possible de faire mieux en optimisant le code, mais comme il est tard je laisse faire ceux qui en auraient envie.
# J'oubliais : Revue de code
Posté par totof2000 . Évalué à 8.
Comme j'ai recopié à la main le code de l'émulateur vers linuxfr, et qu'il est tard, est-ce que quelqu'un pourrait relire et signaler les fautes de copie s'il y en a ? J'ai essayé de faire attention mais je commence à avoir du mal à focaliser avec les yeux … Merci d'avance pour votre aide.
[^] # Re: J'oubliais : Revue de code
Posté par Thomas Douillard . Évalué à 8.
Mouarf, tu me replonge dans cette époque ou les (des) codes des programmes étaient distribués sur papier et ou il fallait les taper à la main avant de les lancer :)
[^] # Re: J'oubliais : Revue de code
Posté par totof2000 . Évalué à 3.
;) J'ai voulu garder l'esprit de cette époque …
[^] # Re: J'oubliais : Revue de code
Posté par gouttegd . Évalué à 5.
Idem. Pour jouer à un jeu vidéo, à l’époque sur mon VG5000, il y avait deux options :
Souvenirs…
[^] # Re: J'oubliais : Revue de code
Posté par Funix (site web personnel, Mastodon) . Évalué à 5.
hebdogiciel !
Je m'en souviens comme si c'était hier, à passer des heures à taper des lignes de code sur mon amstrad cpc 664 (celui avec la disquette) et passer autant de temps à déboguer les erreurs de saisie.
c'est également sur cette machine que j'ai codé mes premiers programmes en assembleur, d'ailleurs il manque encore le post du portage de taptempo en assembleur!
https://www.funix.org mettez un manchot dans votre PC
[^] # Re: J'oubliais : Revue de code
Posté par totof2000 . Évalué à 3.
Si j'ai le temps et que je ne me fais pas griller, j'essaierai de faire un truc en assembleur ( mais pas sur Amstrad, je maitrise pas le z80)
[^] # Re: me too
Posté par ComputingFroggy (site web personnel) . Évalué à 1.
Ah, hebdogiciel !
Moi, j'étais sur CBM64 !
[^] # Re: J'oubliais : Revue de code
Posté par HL . Évalué à 2. Dernière modification le 14 mars 2018 à 10:38.
Il est aussi possible de le sauvegarder au format ASCII :
Puis de le récupérer par exemple avec cpcfs si il est sauvegardé dans un fichier dsk (image disque CPC).SAVE "fichdisc.xyz",A
[^] # Re: J'oubliais : Revue de code
Posté par totof2000 . Évalué à 2.
J'ai pas eu le temps de m'intéresser à cette méthode vu l'heure ou j'ai fait la copie, mais merci pour l'info. Ca pourrait peut-être me resservir.
# TIME
Posté par Arthur Accroc . Évalué à 10. Dernière modification le 13 mars 2018 à 07:14.
Mince, je comptais la faire, celle-là ! Évidemment, je ne me suis pas pressé, mais je ne pensais pas que quelqu’un aurait la même idée saugrenue (bon, je t’ai pertinenté quand même)…
Pour ma part, j’aurais simplement utilisé INPUT pour attendre la frappe de la touche Return et TIME pour récupérer le temps (le BASIC de l’Amstrad est l’un des plus complet de l’époque, il a notamment une fonction TIME). TIME est en 1/300 de secondes, mais INPUT est probablement tributaire aussi de la fréquence de scan clavier.
Ma version de base (test de faisabilité avant de regarder de plus près les fonctionnalités de l’originale) donnait ça :
Enfin comme quoi des machines farcies de GHz et de Go et des langages super sophistiqués sont extrêmement surdimensionnés pour un tel besoin.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: TIME
Posté par totof2000 . Évalué à 5.
Si tu savais quelles idées saugrenues me passent par la tête … j'avais pensé le faire en basic sous Linux (yabasic), en adoptant un style vintage, mais la version VBA me paraissait un peu trop proche. J'ai tenté de me tourner vers le TO7 (plus familier avec cette machine car je fais partie des gens qui ont bénéficié du plan Informatique pour tous") mais je n'ai pas trouvé de fonction de gestion de temps adéquate, donc je me suis tourné vers l'amstrad CPC.
J'avais vu la fonction time, la fonction after il me semble, mais comme j'avais commencé à développer un truc qui ressemblait plus à ça en yabasic, j'ai fais plus ou moins la même chose.
Exactement.
[^] # Re: TIME
Posté par Cheuteumi . Évalué à 1.
Vive le retour du ouaib en mode texte ! Bon par contre on a droit à l’UTF-8 pour les caractères drawbox etc ?
[^] # Re: TIME
Posté par totof2000 . Évalué à 2.
Je militerais plutôt pour le retour du minitel.
[^] # Re: TIME
Posté par Tonton Th (Mastodon) . Évalué à 3.
Vu le débit du clavier de cet engin, je pense que TapTempo sera très imprécis…
[^] # Re: TIME
Posté par totof2000 . Évalué à 2.
Aparamment, la précision devrait être du même ordre que celle du zx81.
# et toujours pas de version WinDev
Posté par palm123 (site web personnel) . Évalué à 6.
Comment ça on n'est pas vendredi ?
Pas taper, je suis déjà dehors []
ウィズコロナ
# Listing testé et approuvé sur une vraie machine
Posté par cpc6128 (site web personnel) . Évalué à 8.
Excellent, ça m'a rappelé de bons souvenirs : taper des listings pendant des heures et ensuite passer des heures à corriger les fautes de frappe !!
Et voilà le résultat :
[^] # Re: Listing testé et approuvé sur une vraie machine
Posté par totof2000 . Évalué à 5.
Cool, merci pour cette validation.
Ca signifie donc que mon journal a atteint son but: raviver les souvenirs et un certain plaisir que seuls ceux qui ont vécu ça peuvent comprendre. A mon avis ceux qui râlent contre les diverses implémentation de taptempo n'ont pas connu cette époque ou ne l'ont pas réellement appréciée.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.