Compare commits

...

4 Commits

Author SHA1 Message Date
tTh b1ebd390b4 now you can specifiy the slowdown 2024-01-12 03:43:49 +01:00
tTh 70545d9355 need a lot of work 2024-01-11 02:08:26 +01:00
tTh ca1b226a13 wtf? 2024-01-11 02:07:04 +01:00
tTh 6ad95e84ff fine tuning 2024-01-11 01:49:15 +01:00
4 changed files with 65 additions and 26 deletions

View File

@ -6,6 +6,7 @@
% ====================================================================
% https://www.theregister.com/2023/03/28/nostalgic_for_basic/
% https://retrofun.pl/2023/12/18/was-basic-that-horrible-or-better/
% ====================================================================
% \section{BASIC} \index{BASIC}
@ -13,18 +14,20 @@
C'est probablement un des premiers langages interactifs utilisable par le
peuple et les gens. Déja, à ce titre, dénonce que ce langage
demande un peu de curiosité, il a traversé soixante ans
d'informatique, et il existe enore.
d'informatique, et il existe encore.
Mais pour moi, le véritable intérèt
est dans la multitude et la diversité des implémentations.
Des minis catatoniques des années 60 aux micros-ordinateurs 8 bits,
des dizaines de versions souvent incompatibles ont vues le jour.
Un nom ? « Locomotive », ça ira ?
Un nom pour citer un exemple ? « Locomotive », ça ira ?
Dans un premier temps, je vais les lister sommairement, et
ensuite j'aurais une idée sur lesquels seront les plus funs
à explorer.
à explorer, voire sauront trouver leur place dans un
environnement dédié à la techno-futilité, concept très
tendance dans certains milieux.
Dartmouth Time Sharing System
Pour en savoir plus : \textsc{Dartmouth Time Sharing System}
% ====================================================================
\section{Bywater} \index{bywater}
@ -37,14 +40,14 @@ Full BASIC (X3.113-1987) in C.
\end{quote}
\begin{verbatim}
Bywater BASIC Interpreter/Shell, version 2.10
---------------------------------------------
Copyright (c) 1993, Ted A. Campbell
for bwBASIC version 2.10, 11 October 1993
Bywater BASIC Interpreter/Shell, version 2.10
---------------------------------------------
Copyright (c) 1993, Ted A. Campbell
for bwBASIC version 2.10, 11 October 1993
\end{verbatim}
Le mode interactif me semble un peu rustre, mais utilisable à l'ancienne.
Les messages d'erreur sont du genre \textsc{bdos error on a}.
Les messages d'erreur sont du genre \textsc{bdos error on a, select}.
Je n'ai pas réussi à faire une sauvegarde du programme\footnote{J'ai
renoncé au bout de 30 secondes}, ce qui limite son \textsl{utilisability}.
@ -81,8 +84,6 @@ http://www.sdlbasic.altervista.org/main/
\index{BBC} \index{Acorn}
https://www.bbcbasic.co.uk/index.html
\begin{quote}
Brandy is an interpreter for BBC BASIC V, the dialect of BASIC that
Acorn Computers supplied with their ranges of desktop computers that
@ -90,12 +91,12 @@ use the ARM processor such as the Archimedes and Risc PC, and is still
in use on these and compatibles.
\end{quote}
https://www.bbcbasic.co.uk/index.html
% ====================================================================
\section{FreeBASIC} \index{FreeBASIC}
https://www.freebasic.net/
\begin{quote}
When used in its "QB" language mode, FreeBASIC provides a high level
of support for programs written for QuickBASIC\index{QuickBASIC}.
@ -103,12 +104,12 @@ Many programs written for QuickBASIC will compile and run in this mode
with no changes needed.
\end{quote}
https://www.freebasic.net/
% ====================================================================
\section{BASIC-256} \index{BASIC-256}
https://basic256.org/
\begin{quote}
BASIC-256 is an easy to use version of BASIC designed to teach anybody
(especially middle and high-school students) the basics of computer
@ -120,9 +121,16 @@ on screen in minutes, and a set of detailed, easy-to-follow tutorials
that introduce programming concepts through fun exercises.
\end{quote}
https://basic256.org/
% ====================================================================
\section{Benchmark}
Nous avons une liste de Basics, il faut maintenant les comparer.
Il y a le très classique (et très ancien) crible d'Eratostène, mais
nous pouvons trouver mieux en fouillant dans les archives.
% ====================================================================
\section{Et ailleurs ?}
@ -131,5 +139,4 @@ L'interpréteur \texttt{Qbasic} de Microsoft fonctionne très bien
dans Dosbox~: à lire en page \pageref{Qbasic}. Son prédécesseur,
\texttt{GWBASIC} marche très bien aussi.
% -------------------------------------------
% ====================================================================

View File

@ -104,9 +104,7 @@ Code & Signification \\
\end{tabular}
Pour avoir la liste des couleurs disponibles : \texttt{convert -list color}
et celles des fontes : \texttt{convert -list font}.
\subsubsection{Questions...}
et celles des polices de caractère : \texttt{convert -list font}.
\begin{itemize}
\item{Comment mettre une couleur de fond à ce texte ?}
@ -214,6 +212,10 @@ Et ces données peuvent être utilisé pour rajouter une simili
% ------------------------------------------
%
% http://al.howardknight.net/?ID=170228531600
%
\subsection{Configuration}
La configuration est dans le répertoire \texttt{/etc/ImageMagick-6/}, et
@ -237,8 +239,8 @@ Resource limits:
Time: unlimited
\end{verbatim}
Vous pouvez aussi essayer de comprendre le contenu du fichier
\texttt{thresholds.xml} et venir me l'expliquer juste après
Vous pouvez aussi tenter de comprendre le contenu du fichier
\texttt{thresholds.xml} puis revenir me l'expliquer juste après
ma sieste, je pense que ça permet de jouer sur différentes méthodes
de \textsl{dithering}, par exemple pour faire du Bayer.
@ -248,19 +250,21 @@ de \textsl{dithering}, par exemple pour faire du Bayer.
\begin{itemize}
\item{convert -average frame*.png output.png}
\item{convert -brightness-contrast 20\% foo.png bar.png}
\end{itemize}
Il y en plein d'autres, des tricks \textsl{àlc} à découvrir.
Ce sera, pour vous amis lecteurs, une dure mission à assumer.
% ------------------------------------------
\subsection{Ressources}
Le futur livre de Brunus.
Réclamez les prmiers drafts dans
Réclamez les premiers drafts dans
l'IRC\index{IRC} \texttt{libera.chat\#paulla} \textit{:)}
\texttt{http://www.fmwconcepts.com/imagemagick/index.php}

View File

@ -53,9 +53,16 @@ avec d'ignobles logiciels~:
\texttt{ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-\%03d.jpeg}
J'avoue ne pas avoir tout saisi : l'option\texttt{-r N} qui fixe le
\textsl{frame rate} sert à quoi ???
Il existe bien une alternative, mais je n'ai pas encore essayé~:
\texttt{mplayer -vo png -ss 3:46 -frames 20 stairs.mp4}
\# Write out 20 png format frames from a video starting at 3 minutes, 46 seconds.
Tu peux générer les images de transition avec
ImageMagick\index{ImageMagick} :
\texttt{convert a.png b.png -alpha set -channel A

View File

@ -1,14 +1,35 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int c;
struct timespec ts;
int c, sec, nano;
struct timespec ts;
int slowdown = 300; /* set a default value */
float delay;
/*
* get the desired slowdown from command-line
*/
if (2 == argc) {
if (1 != sscanf(argv[1], "%d", &slowdown)) {
fprintf(stderr, "%s: bad arg, sorry\n", argv[0]);
exit(1);
}
if (slowdown < 1) {
fprintf(stderr, "%d is invalid\n", slowdown);
exit(1);
}
}
ts.tv_sec = 0;
ts.tv_nsec = 115 * 1000 * 1000;
/* convert the slowdown value to delay */
delay = 1.0 / (float)slowdown;
sec = (int)delay;
nano = (int)(1000*1000*1000*(delay - (int)delay));
ts.tv_sec = sec;
ts.tv_nsec = nano;
while ( EOF != (c=getchar()) )
{
putchar(c);