比較提交

..

沒有共同的提交。「6c2d6476b844a5ed256f8ea6ade6ec63fd9e844c」和「43202ab62e02f9554b613d4eba6973b7268dceb5」的歷史完全不同。

共有 17 個檔案被更改,包括 23 行新增185 行删除

查看文件

@ -1,65 +0,0 @@
% ----------------------------------------------------------
\chapter{Basic}
\index{dosbox}\label{chap:Basic}
% -------------------------------------------
\section{BASIC} \index{BASIC}
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.
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 ?
Dans un premier temps, je vais les lister sommairement, et
ensuite j'aurais une idée sur lesquels seront les plus funs
à explorer.
% -------------------------------------------
\section{Bywater} \index{bywater}
\begin{verbatim}
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}.
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}.
Heureusement, on peut utiliser son éditeur de texte favori pour écrire
le code source, et le lancer en mode batch. Voici un exemple rudimentaire
mais canonique~:
\lstinputlisting{code/Basic/bywater-1.bas}
Première conclusion : affaire à suivre.
% -------------------------------------------
\section{Yabasic} \index{yabasic}
Première innovation, les numéros de ligne ne sont plus obligatoires.
\lstinputlisting{code/Basic/yabasic-1.bas}
Et on peut faire des images qui clignotent :)
\lstinputlisting{code/Basic/yabasic-2.bas}
% -------------------------------------------
\section{Et ailleurs ?}
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.
% -------------------------------------------
% -------------------------------------------

查看文件

@ -252,12 +252,12 @@ int fprintf(FILE *stream, const char *format, ...);
Ce qu'on appelle un "filtre" est un logiciel destiné à transformer
les données qui le traversent. Pour bien comprendre, le mieux,
comme d'habitude, est un exemple. Il est un peu artificiel,
car il s'agit d'éliminer les lettres \textsc{o} et \textsc{p},
sans raison valable. Le voici~:
il s'agit d'éliminer les lettres \textsc{o} et \textsc{p}.
Le voici~:
\lstinputlisting[language=c]{code/C/no-op.c}
\lstinputlisting[language=c]{code/no-op.c}
Démonstration immédiate~:
Démonstration~:
\begin{verbatim}
$ echo apopoz | ./no-op
@ -271,16 +271,6 @@ $ ./no-op < no-op.c | head -5
$
\end{verbatim}
Vous voulez un autre exemple ? En voici un, parfois utile pour des
simulations de terminal de \textsl{h4ck3rZ}\footnote{texte vert ou
orange sur fond noir de rigueur.} sur une ligne en boucle de
courant à 300 Bauds, le tout pour un film que l'on souhaite classable
en série Z.
\lstinputlisting[language=c]{code/C/slowprint.c}
\vspace{2em}
Pour une explication plus détaillée sur les mécanismes
utilisés et les usages possibles d'un tel filtre,
il faut voir le concept de pipeline du shell en

查看文件

@ -224,9 +224,9 @@ D'accord, mais dessiner quoi ?
\end{itemize}
% --------------------------------------------------------
\section{Réponses}
\section{Reponses}
\textsl{<Pas de réponse>}
\textsl{<none>}

查看文件

@ -31,9 +31,7 @@ keyb fr
\section{In an Out}
\textbf{Q:} J'ai téléchargé un warez de Qbasic\footnote{%
cf. page \pageref{chap:Basic}}
pour jouer avec,
\textbf{Q:} J'ai téléchargé un warez de Qbasic pour jouer avec,
le l'archive 7z ne contient qu'un fichier \texttt{.img}.
Que puis-je faire pour jouer enfin à snake ?
@ -77,9 +75,6 @@ juste pour constater que c'est un peu technique.
merveilles de l'ancien temps.
% ----------------------------------------------------------
\section{Qbasic} \index{Qbasic} \label{Qbasic}
% ----------------------------------------------------------

查看文件

@ -86,15 +86,3 @@ indoor.gif: $(DEPS)
% ==================================================================
\section{gifsicle}
'Gifsicle' manipulates GIF images. Its most common uses include combining
single images into animations, adding transparency, optimizing animations for
space, and printing information about GIFs.
% ==================================================================

查看文件

@ -16,33 +16,19 @@ une idée du langage\dots
wc -l END { print NR }
\end{verbatim}
Vous pouvez déja constater une certaine élégance portée par une
grande simplicité logique, une sorte d'axiome de base, de
méthologie très \textsc{kiss} :
on va procéder en quelque sorte « demi-dalle par demi-dalle ».
% ===============================================================
\subsection{Un exemple simple}
À partir d'un jeu de données structurées, nous allons générer un
fichier \texttt{.inc} contenant un objet pour Povray\index{Povray}.
Un cas d'école : un élément par ligne, les valeurs sont séparées par
Un cas d'école : un élément par ligne, les valeurs séparées par
des espaces.
\lstinputlisting[]{code/awk/dataset}
Ces données sont les coordonnées \textsc{x,y,z} et le rayon d'une
Ces données sont les coordonnées \textsc{xyz} et le rayon d'une
petite collection de bubulles. Pratiquement, une représentation
sommaire d'une sphère de povray\footnote{SDL keyword: \texttt{Sphere}}.
Le fichier à générer est en trois partie : l'en-tête, la liste
des bubulles\index{bubulle} et l'en-pied, ce qui est bien raccord
avec la structure de déroulement d'un script Awk, comme nous allons
le voir ici-même~:
\lstinputlisting[]{code/awk/mkunion.awk}
% XXX to be continued XXX
sommaire d'une sphère de povray.
% ===============================================================

3
code/.gitignore vendored
查看文件

@ -12,8 +12,7 @@ foo
get-signal
hello
listen-osc
C/no-op
C/slowprint
no-op
*.o
plugiciel.so
send-osc

查看文件

@ -1,4 +0,0 @@
10 CLEAR
20 FOR I=1 TO 10
30 PRINT I, I*I
40 NEXT I

查看文件

@ -1,3 +0,0 @@
for i=1 to 10
print i, i*i
next

查看文件

@ -1,5 +0,0 @@
open window 511,511
for x=10 to 495 step 5:for y=10 to 495 step 5
colour x/2,y/2,0
fill rectangle x,y,x+5,y+5
next y:next x

查看文件

@ -1,10 +0,0 @@
# exemples pour le chapitre sur le C
# new Sat Feb 11 12:06:34 CET 2023
no-op: no-op.c Makefile
gcc -Wall $< -o $@
slowprint: slowprint.c Makefile
gcc -Wall $< -o $@

查看文件

@ -1,20 +0,0 @@
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int c;
struct timespec ts;
ts.tv_sec = 0;
ts.tv_nsec = 115 * 1000 * 1000;
while ( EOF != (c=getchar()) )
{
putchar(c);
fflush(stdout);
nanosleep(&ts, NULL);
}
return 0;
}

查看文件

@ -16,6 +16,9 @@ hello: hello.c Makefile
arguments: arguments.c Makefile
gcc -Wall $< -o $@
no-op: no-op.c Makefile
gcc -Wall $< -o $@
voirenv: voirenv.c Makefile
gcc -Wall $< -o $@

15
code/awk/mkunion.awk Executable file → Normal file
查看文件

@ -1,15 +0,0 @@
#!/usr/bin/awk -f
BEGIN {
print "#declare Bubules = object"
print "{ \nunion { "
}
{
printf(" sphere { <%f, %f, %f>, %f }\n", \
$1, $2, $3, $4 )
}
END {
}

查看文件

@ -26,7 +26,7 @@
%------ reglages des 'listings'
\lstset{frame=single} % dessin d'un cadre autour du listing
\lstset{basicstyle=\ttfamily\small}
\lstset{aboveskip=1.2em,belowskip=1.2em}
\lstset{aboveskip=0.8em,belowskip=0.5em}
\setcounter{tocdepth}{1}
\pagestyle{plain}
@ -130,7 +130,6 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
\input{chap/Fortran}
\input{chap/scripting}
\input{chap/Arduino}
\input{chap/Basic}
% \input{chap/GMP}
\input{chap/Python}