vendredi 29 avril 2011

mercredi 1 septembre 2004

CardioSportXS


 
 
 
 
 
 

 

CardioSportXS affichait la fréquence cardiaque avec une précision que, aujourd’hui encore, la plupart des montres connectées n’atteignent pas, ce qui permettait d’anticiper les passages en anaérobie et de maintenir l’effort au point d’équilibre entre performance et aérobie, atout majeur sur CardioSportXS en 2004.

J’avais été contraint de développer un noyau « temps réel » pour compenser la relative lenteur du système, détecter chaque impulsion avec une précision suffisante et afficher instantanément les variations utiles à l’ajustement de l’intensité de l'effort physique.

Palm OS disposait d’un unique timer cadencé au millième de seconde. Même à 200 battements par minute, la fréquence cardiaque présente une variabilité importante, d’où la nécessité de repérer l’instant exact de chaque impulsion avec une précision maximale.

Cette détection en temps réel permettait d’anticiper de 1 à 2 secondes l’entrée en zone anaérobie, afin d’ajuster l’allure avant le dépassement du seuil. 

 

Ce qu'il faut comprendre lors d'effort physique très intense : Plus on se rapproche du seuil anaérobie, plus le gain de performance peut être rapide et efficace, l’organisme mobilisant intensément ses capacités ventilatoires et métaboliques tout en restant sous contrôle.



Ce que l’application faisait

  • Capturait en continu les signaux de ceintures cardio (Polar, Sigma, Suunto, etc.) sur Palm OS (PalmOne, Sony Clie, Treo) et mettait à jour l’écran le plus souvent possible, offrant une lecture instantanée des variations de fréquence cardiaque pendant l’effort.​

  • Calculait et affichait courbes FC en absolu et en % de FCmax, temps et ratios dans 7 zones d’intensité, dépense calorique, VO2max estimée, perte de masse grasse et prédiction du poids, avec profils multiples et historiques exportables vers un tableur.​

Pourquoi c’était utile pour l’anaérobie

  • Les micro‑variations de FC apparaissaient immédiatement à l’écran, aidant à repérer l’approche de la zone anaérobie et à ajuster l’allure avant le dépassement, pour rester au point d’équilibre aérobie/anaérobie visé par l’entraînement.​

  • Le suivi par zones et les pourcentages de FCmax, combinés aux alertes visuelles des courbes en temps réel, facilitaient des transitions fines entre intensités sans attendre un bilan post‑séance.

Données et variables clés

  • 54 variables/formules disponibles: FC instantanée, moyennes/maxima, %FCmax, temps par zone, calories/kJ, hydratation estimée, indices corporels, segments montée/baisse/stable, plus résultats de formules personnalisées via un analyseur lexical.

  • Échantillonnage jusqu’à une mesure par seconde, sauvegardes sur de longues durées, lecture d’historiques de montres Polar, interface bilingue anglais/français.

État du projet et installation

  • Projet non maintenu, dernière version 0.8.2005, distribuée en PRC/PDB et ZIP, utilisable sur PDA Palm ou via émulateur et synchronisable avec Palm Desktop/HotSync pour consulter/exporter les données.

  • Conforme à l’écosystème Palm OS des années 2000, avec avantages de réactivité d’affichage et de simplicité, mais limites modernes liées au matériel et aux stacks réseau d’époque.

 
 
 
 
 
 

 

 
 

 
 

 

 

 

 



 
 
 
 

 
 
 






mercredi 31 décembre 1997

jeudi 4 octobre 1984

Apple IIe


L’Apple IIe a incarné la maturité de la famille Apple II en devenant la machine 8 bits la plus diffuse d’Apple, particulièrement dans l’éducation et les petites entreprises au milieu des années 1980. Héritier direct de l’architecture 6502, il a combiné compatibilité logicielle, extensibilité par slots extraordinaire inovation pour l'éqoque et améliorations pragmatiques comme l’affichage 80 colonnes et la gestion native des minuscules. Cet équilibre en a fait une plateforme durable, au cœur de milliers de salles de classe et de nombreux bureaux pendant plus d’une décennie.

Lancé en 1983, le IIe succède au II+ en misant sur la rationalisation matérielle (moins de puces grâce à une intégration plus poussée) tout en conservant l’écosystème des cartes d’extension et des logiciels existants. Il s’inscrit entre un Apple III plus ambitieux mais fragile sur le plan commercial, et un Apple IIc davantage orienté compacité que modularité. Le IIe deviendra la référence par son pragmatisme: même base 8 bits, mais plus de mémoire, un meilleur confort d’affichage et un châssis pensé pour l’évolutivité.

Architecture matérielle

  • processeur: MOS 6502 ou 65C02 à 1 MHz selon révisions, garantissant compatibilité et faible consommation.

  • mémoire: 64 Ko en standard, extensible à 128 Ko (très utile pour le mode 80 colonnes et certains utilitaires).

  • affichage: texte 40 colonnes en natif, 80 colonnes via carte additionnelle puis versions “Enhanced/Platinum” intégrant les améliorations; graphismes haute résolution hérités de la lignée Apple II.

  • son: bip simple intégré, avec possibilité d’extensions sonores via cartes tierces.

  • stockage: lecteur(s) Disk II 5,25 pouces (140 Ko par face) très répandus, puis compatibilité avec d’autres contrôleurs et, plus tard, solutions 3,5 pouces ou mass storage tiers.

  • extensions: plusieurs slots ouverts (bus Apple II) pour cartes série, parallèles, grapheurs, son, accélérateurs, cartes mémoire, interfaces réseau ou SCSI, etc.


Le IIe démarre sur un moniteur simple avec un interpréteur BASIC en ROM, ce qui permet d’être opérationnel immédiatement. Le DOS 3.3 puis ProDOS organisent le stockage sur disquettes et apportent une arborescence de fichiers plus robuste. Côté langages, l’écosystème est riche: AppleSoft BASIC, assembleur 6502, Pascal UCSD, FORTRAN via environnements spécifiques, C et divers outils éducatifs. Cette variété fait du IIe aussi bien un outil d’initiation qu’une machine sérieuse pour la bureautique ou l’ingénierie légère.

Le IIe s’impose dans les écoles nord-américaines grâce à un catalogue pédagogique pléthorique, une maintenance aisée et la stabilité d’une configuration standardisée. En entreprise, il bénéficie de l’héritage VisiCalc (né sur Apple II) et de suites bureautiques adaptées, convainquant les PME par sa simplicité et ses coûts contenus. La longévité du parc, la disponibilité des pièces et l’offre logicielle expliquent sa présence durable dans les salles informatiques jusqu’à la fin des années 1980.

Malgré des capacités graphiques modestes face aux micro-ordinateurs plus orientés loisirs, le IIe bénéficie d’un vaste catalogue de jeux Apple II et d’accessoires (joysticks, cartes son, digitaliseurs). Les genres phares incluent l’aventure textuelle/graphique, les jeux éducatifs, la stratégie et l’arcade adaptée. Les outils de dessin en haute résolution, les éditeurs de musique basiques et les langages accessibles encouragent également la création amateure.
A noter, la première version de Flight Simulator tournait sur Apple II.

révisions: enhanced et platinum

  • enhanced IIe: adoption du 65C02, meilleure compatibilité et microcodes mis à jour, rendant le système plus souple et certaines instructions plus efficaces.

  • platinum IIe (1987): coque révisée, clavier avec pavé numérique intégré, 128 Ko en standard dans de nombreuses configurations, et rationalisations internes.
    Ces révisions prolongent la pertinence du IIe alors que l’Apple IIgs (16 bits) et le Macintosh gagnent en visibilité.

Extensions et accessoires notables

  • carte 80 colonnes et cartes mémoire auxiliaires pour atteindre 128 Ko.

  • contrôleurs Disk II, cartes série (modems, imprimantes), interfaces parallèles et SCSI.

  • accélérateurs (1,5–3 MHz et au-delà) pour compenser la lenteur du 6502 en tâches lourdes.

  • cartes son tierces et numériseurs pour enrichir multimédia et didactique.

  • moniteurs dédiés, imprimantes à aiguilles, traceurs, numériseurs graphiques, et réseaux locaux expérimentaux.

préserver et restaurer un Apple IIe aujourd’hui

  • alimentation: vérifier condensateurs et régulation; remplacer préventivement les composants vieillissants.

  • lecteurs 5,25": alignement de têtes, courroies/poulies, nettoyage et disquettes en bon état; envisager des émulateurs de disquettes modernes (SD/USB) pour fiabilité.

  • cartes: tester slot par slot, nettoyer connecteurs, recapper si nécessaire.

  • écran: privilégier un moniteur composite compatible; vérifier géométrie et synchronisation.

  • logiciels: images disques disponibles dans les communautés; utiliser des interfaces modernes pour transférer des disquettes virtuelles.

héritage
L’Apple IIe résume l’approche “plateforme avant tout”: stabilité, documentation, compatibilité et modularité. Il a formé une génération d’élèves, soutenu des PME et montré qu’un design 8 bits bien exploité pouvait rester utile longtemps. Sa longévité commerciale et son empreinte dans l’éducation en font l’un des micro-ordinateurs les plus influents de l’ère pré-Macintosh.

 



 
 

 

 

 

 

 

dimanche 17 juin 1984

"Histo 3D" for Sharp PC-1500 + CE-150

 

 


 

 
 

"Histo 3D" for Sharp PC-1500 + CE-150
� Hebdogiciel, Shift editions.
Author : Thierry DOMBLIDES
Published in Hebdogiciel #23, March 1984.
BASIC program - 3328 bytes.

CLOAD "HISTO 3D"
RUN

----- BASIC program -----------------------------------------
1 "HISTO 3D"
2 "Hebdogiciel No 23"
7 GOTO 150
10 "INIT"GRAPH :SORGN :COLOR 0
20 DATA -1,0,0,-100,150,-100,200,-180,50,-180,0,-100,-1,0,50,-180,50,-260
30 DATA -1,0,0,-100,0,-260
80 RESTORE 
90 ON ERROR GOTO 125
100 READ X,Y
105 IF X<0READ X,Y:GLCURSOR (X,Y):GOTO 120
110 LINE -(X,Y)
120 GOTO 90
125 COLOR 3:A=15,B=65
130 FOR I=1TO 9
135 LINE (A,-100)-(B,-180)
136 A=A+15,B=B+15
140 NEXT I
145 RETURN 
150 "A"CLEAR :WAIT 64:PRINT "*******HISTO.3D*******"
160 BEEP 3,100,64:DIM HA(6),HA$(6)*16:DR=0
170 INPUT "TITRE DU GRAPHE:";A$
175 COLOR 3
180 LPRINT "******************"
190 LO=LEN A$,PL=INT ((18-LO)/2)
200 COLOR 2:LCURSOR PL:LPRINT A$
210 TEXT :COLOR 3:LPRINT "******************"
220 BEEP 2,50,64
230 CLS :WAIT 0:PRINT "VALEUR Max :":CURSOR 12:INPUT MAX
235 IF MAX<0GOTO 230
240 GOSUB "INIT"
250 COLOR 1:CSIZE 1
260 ROTATE 1:X=0,VA=0,PAS=MAX/10
270 FOR I=0TO 10
275 GLCURSOR (X,-55):LPRINT USING "#####.#";VA
280 X=X+15,VA=VA+PAS
290 NEXT I
295 CLS :BEEP 3,55,64:WAIT 0
300 PRINT "Nbre Matieres (<7):":CURSOR 19:INPUT NO
310 IF NO>6GOTO 295
311 CLS :INPUT "Nbr de rangees:";RA
312 GOSUB "LEGENDE"
315 FOR TY=1TO RA
320 E=150/MAX,N=1,DX=50/NO,DY=DX/.625
330 GOSUB "VAL"
340 COLOR 1
345 HA(1)=V*E
350 LINE (0,-260)-(HA(1),-260)
360 LINE (0,-280)-(HA(1),-280)
365 D1=0,D2=-280
370 D1=D1+DX,D2=D2-DY
380 LINE (D1,D2)-(D1+HA(1),D2)
390 LINE (HA(1),-260)-(HA(1),-280)
400 LINE -(HA(1)+D1,D2)
410 LINE -(HA(1)+D1,D2+20)
420 LINE -(HA(1),-260)
425 LINE (0,-260)-(0,-280)
430 LINE -(DX,-280-DY)
435 GLCURSOR (D1-5,D2-15):LPRINT HA$(1)
437 GLCURSOR (D1+90,D2+DY+40):CSIZE 2:LPRINT STR$ TY
440 G=1
450 FOR I=2TO NO
455 N=I
460 GOSUB "VAL"
470 G=G+1:IF G>3LET G=0
480 COLOR G
490 HA(I)=V*E
491 LINE (D1,D2)-(D1+DX,D2-DY)
492 D1=D1+DX,D2=D2-DY
493 LINE -(D1+HA(I),D2):LINE -(D1+HA(I)-DX,D2+DY)
495 GLCURSOR (D1-2*DX/3,D2-15):CSIZE 1:LPRINT HA$(I)
500 IF HA(I)<HA(I-1)GOSUB "INF"
510 IF HA(I)>HA(I-1)GOSUB "SUP"
520 IF HA(I)=HA(I-1)GOSUB "="
600 NEXT I
610 COLOR 0:LINE (D1,D2)-(D1,D2-160)
615 DR=1
620 LINE (0,D2-160)-(0,D2+20+NO*DY):SORGN 
900 NEXT TY
910 TEXT :LF 17:END
1000 "VAL"CLS 
1005 IF TY>1GOTO 11000
1010 BEEP 3,55:WAIT 0:PRINT "Valeur colonne No"+STR$ N+":"
1020 CURSOR 20:INPUT V
1030 IF V>MAXOR V<0CLS :GOTO 1005
1031 IF TY>1GOTO 1040
1035 CLS :INPUT "Libelle colonne:";HA$(N)
1040 RETURN 
2000 "INF"
2005 KL=20*.625
2007 IF HA(I-1)-HA(I)>=KLGOTO 2010
2008 GOTO "INF+"
2010 IF 20<=DYLINE (D1+HA(I),D2)-(D1+HA(I),D2+20):GOTO 2030
2020 LINE (D1+HA(I),D2)-(D1+HA(I),D2+DY):GOTO 2060
2030 LINE (D1+HA(I),D2+20)-(D1-DX+HA(I)+20*0.625,D2+DY)
2060 RETURN 
3000 "="
3005 IF NO>4AND HA(I-2)>HA(I-1)GOTO "=SUP"
3010 LINE (D1+HA(I),D2)-(D1+HA(I),D2+20)
3020 LINE -(D1-DX+HA(I),D2+DY+20)
3030 RETURN 
4000 "SUP"
4010 IF NO>4GOTO 6000
4020 LINE (D1+HA(I),D2)-(D1+HA(I),D2+20)
4021 LINE -(D1-DX+HA(I),D2+DY+20)
4022 LINE -(D1-DX+HA(I),D2+DY)
4023 LINE -(D1-DX+HA(I-1),D2+DY)
4024 LINE (D1-DX+HA(I),D2+DY+20)-(D1-DX+HA(I-1),D2+DY+20)
4060 RETURN 
5000 "INF+"
5010 LINE (D1+HA(I),D2)-(D1+HA(I),D2+20)
5020 LINE -(D1-DX+HA(I-1),D2+DY+20-(HA(I-1)-HA(I))/0.625)
5030 GOTO 2060
6000 IF HA(I-1)>=HA(I-2)GOTO 4020
6010 IF HA(I)>=HA(I-2)GOSUB "S"
6020 IF HA(I)<HA(I-2)GOSUB "SS"
6030 GOTO 4060
7000 "S"
7010 LINE (D1+HA(I),D2)-(D1+HA(I),D2+20)
7020 LINE -(D1-DX+HA(I),D2+DY+20)
7030 LINE -(D1-DX+HA(I),D2+DY)
7040 LINE -(D1-DX+HA(I),D2+DY)
7050 LINE (D1-DX+HA(I),D2+DY+20)-(D1-2*DX+HA(I-2),D2+DY+20)
7060 RETURN 
8000 "SS"
8010 LINE (D1+HA(I),D2)-(D1+HA(I),D2+20)
8020 LINE (D1-DX+HA(I),D2+DY)-(D1-DX+HA(I),D2+DY)
8025 IF OP=1GOTO 8040
8030 LINE (D1-DX+HA(I),D2+DY)-(D1-DX+HA(I),D2+2*DY)
8040 LINE (D1+HA(I),D2+20)-(D1-DX+HA(I)+5,D2+2*DY)
8045 IF OP=1LET OP=0:RETURN 
8050 RETURN 
9000 "LEGENDE"
9010 CSIZE 1:COLOR 2:ROTATE 1
9020 GLCURSOR (200,-20):LPRINT "LEGENDE"
9030 COLOR 3:LINE (195,-15)-(195,-65)
9035 DD=170
9040 FOR P=1TO RA
9045 BEEP 2,64
9050 CLS :WAIT 0:PRINT "LEGENDE No"+STR$ P+":":CURSOR 12:INPUT LE$
9060 COLOR 1:GLCURSOR (DD,15):CSIZE 2:LPRINT STR$ P
9070 COLOR 3:GLCURSOR (DD,0):CSIZE 1:LPRINT LE$
9080 DD=DD-25
9090 NEXT P
9200 RETURN 
10000 "=SUP":OP=1
10010 GOSUB 8010
10020 GOTO 3030
11000 CLS :WAIT 0
11001 BEEP 2,100
11002 IF LEN HA$(N)>6LET PO$=LEFT$ (HA$(N),6)+".":GOTO 11010
11005 PO$=HA$(N)
11010 PRINT "Ran.:"+STR$ TY+" /Col:"+PO$+":"
11020 CURSOR 20:INPUT V
11030 GOTO 1030
 


 



dimanche 4 octobre 1981

Micro ordinateur Sinclair ZX81

Photo Wikipédia.
 

Au début des années 1980, une petite boîte noire a révolutionné l'accès à l'informatique domestique. Le Sinclair ZX81, lancé en mars 1981, n'avait rien d'impressionnant au premier regard : avec ses 17 centimètres de côté et ses 350 grammes, il tenait dans une main. Pourtant, cette machine modeste allait permettre à plus d'1,5 million de personnes don votre serviteur de découvrir l'informatique à domicile.

L'histoire du ZX81 commence avec une philosophie révolutionnaire : rendre l'ordinateur accessible au grand public. Conçu par Sinclair Research comme successeur du ZX80, cet ordinateur personnel 8 bits avait un objectif clair - produire une machine aux performances certes modestes, mais à un coût défiant toute concurrence. En France, il était proposé en kit à monter pour 490 francs (environ 200 euros aujourd'hui), un prix imbattable pour l'époque.

La genèse technique tient à des choix d'ingénierie audacieux. Au cœur de la machine bat un microprocesseur Zilog Z80A cadencé à 3,25 MHz, accompagné de seulement 1 ko de mémoire vive et 8 ko de ROM contenant un interpréteur BASIC plus que spartiate. Cette fréquence particulière n'était pas choisie au hasard : elle permettait au processeur d'être parfaitement compatible avec la fréquence de balayage horizontal des téléviseurs, car l'affichage se faisait directement sur un poste de télévision standard.

L'astuce la plus remarquable résidait dans la conception du contrôle vidéo, entièrement géré par le microprocesseur lui-même. Cette approche innovante permettait d'économiser des composants coûteux, mais au prix d'une limitation significative : la moitié du temps machine était consacrée à tracer les caractères à l'écran. Heureusement, les concepteurs avaient prévu une commande **FAST** qui libérait le processeur du contrôle vidéo, doublant les performances au prix d'un écran couvert de "neige" jusqu'au retour en mode **SLOW**.

La réduction drastique du nombre de composants passait également par l'utilisation d'un circuit intégré spécialisé, l'ULA (Uncommitted Logic Array). Conçu spécifiquement pour le ZX81, ce composant remplaçait à lui seul dix-huit circuits TTL du ZX80 d'origine, contribuant significativement à la baisse des coûts.

L'apparence singulière de la machine venait du travail du designer industriel Rick Dickinson, qui lui valut même un Design Council award. Le boîtier noir était surmonté d'un clavier à membrane révolutionnaire pour l'époque, mais peu pratique à l'usage. Les touches plates et sensibles à la pression rendaient la frappe difficile, si bien que de nombreux utilisateurs optaient rapidement pour des claviers de remplacement proposés par des fabricants tiers.

L'affichage du ZX81 se limitait au noir et blanc, avec une résolution de 24 lignes de 32 caractères sur téléviseur. L'utilisation astucieuse de caractères semi-graphiques permettait néanmoins d'atteindre une résolution effective de 64×48 pixels. Les programmeurs les plus doués parvenaient même, en assembleur, à créer des jeux en 256×192 pixels, exploitant le fait que le Z80A gérait directement la sortie vidéo.

La programmation se faisait en Sinclair BASIC, un langage simplifié dont les instructions étaient imprimées directement sur les touches du clavier. Cette approche pédagogique, combinée à un manuel d'une qualité exceptionnelle, permettait d'apprendre les bases de la programmation de façon très accessible. Le BASIC offrait même la possibilité de programmer indirectement en langage machine via les commandes **PEEK** et **POKE**.

Malgré ses limitations évidentes - pas de sortie son, BASIC incomplet, faible résolution, absence de couleur - le ZX81 connut un succès phénoménal. Surnommé "l'Initiateur", il permit à de nombreux futurs informaticiens de faire leurs premiers pas dans le domaine à moindre frais et sans grand risque. Sa démocratisation de l'informatique domestique marqua le point où l'informatique en Grande-Bretagne devint une activité pour le grand public plutôt que pour les seuls professionnels et passionnés d'électronique.

L'écosystème autour du ZX81 était particulièrement riche. De nombreux périphériques étaient disponibles : extension de mémoire de 16 ko, imprimante thermique compacte, et même des modules apportant la couleur ou le son. Ces extensions, bien que coûteuses (600 à 800 francs chacune), transformaient radicalement les capacités de la machine. Le module couleur offrait une palette de seize couleurs, tandis que l'extension sonore proposait trois voies audio avec diverses possibilités de synthèse.

Le marché du logiciel, bien que limité par les contraintes techniques, proposait néanmoins des titres intéressants. Des simulateurs de vol aux adaptations de **Space Invaders**, en passant par des jeux originaux comme **Cobalt Simulator** ou **Mazzog**, l'offre se développait principalement à travers des magazines spécialisés comme **Hebdogiciel** et des conventions d'utilisateurs. La sauvegarde se faisait sur cassettes audio, une solution économique mais peu fiable.

Outre-Atlantique, le ZX81 fut commercialisé sous le nom de **Timex Sinclair 1000**, avec une différence notable : 2 ko de mémoire vive au lieu d'1 ko. Cette version américaine contribua à l'expansion internationale du concept d'ordinateur domestique abordable.

L'héritage du ZX81 dépasse largement ses modestes performances techniques. Il créa une communauté d'enthousiastes, dont certains fondèrent par la suite des entreprises développant logiciels et matériels. Beaucoup de ces pionniers jouèrent des rôles importants dans l'industrie informatique britannique naissante. Le succès commercial de la machine fit de Sinclair Research l'un des principaux constructeurs informatiques britanniques et valut à son fondateur, Clive Sinclair, une fortune considérable et un titre de chevalier.

Le ZX81 fut finalement remplacé par le ZX Spectrum en 1982, qui apportait la couleur et un clavier à touches mobiles, puis par le Sinclair QL, plus perfectionné mais moins populaire. La production s'arrêta en 1984, mais l'impact culturel de cette petite machine noire perdure. Elle demeure le symbole d'une époque où l'informatique basculait de l'univers professionnel vers le foyer familial, ouvrant la voie à la révolution numérique que nous connaissons aujourd'hui.

Quelques lignes de code : 

10 FAST
20 CLS
30 LET A=0
40 FOR Y=0 TO 21
50 LET X=10+INT 9SIN (A+Y/3)
60 PRINT AT Y,X;""
70 NEXT Y
80 LET A=A+.3
90 IF A>6.28 THEN LET A=0
100 GOTO 20

Calcul d'une Sinuzoide : 

20 CLS (éffacement de l'écran)
30 LET A=0 (Variable A = 0)
40 FOR Y=0 TO 21 (Boucle la variable Y ira de 0 à 21 par incrément de 1)
50 LET X=8+INT 7SIN (A+Y/3) (La variable X = 8 + valeur entiere de 7*SIN(A+Y/3) 
60 PRINT AT Y,X;"" (On affiche un caractère Ligne Y, colone X)
70 NEXT Y (Boucle sur la variable Y jusqu'a 21)
80 LET A=A+.3 ( la variable A est incrémenté de 3)
90 IF A>6.28 THEN LET A=0 (Si A vaut plus de 6.28 alors A sera égal à 0)
100 GOTO 20 (Le programme repart en ligne 20 pour recommencer).



IA SONAR &  JLF 2025