Tout système de fichiers ou système d'exploitation dont vous voulez parler me convient. Agréable!
Sur un ZX Spectrum, l'initialisation d'une LOAD
commande mettra le système en boucle serrée, lisant la ligne Audio In.
Le début des données est indiqué par une tonalité constante, et ensuite une séquence d'impulsions longues / courtes suit, où une impulsion courte est pour un binaire 0
et une plus longue pour un binaire 1
( https://en.wikipedia.org/ wiki / ZX_Spectrum_software ). La boucle de charge étroite rassemble des bits jusqu'à ce qu'elle remplisse un octet (8 bits), les stocke en mémoire, augmente le pointeur de mémoire, puis revient en boucle pour rechercher plus de bits.
En règle générale, la première chose qu'un chargeur lirait est un en- tête de format court et fixe , indiquant au moins le nombre d'octets à attendre, et éventuellement des informations supplémentaires telles que le nom de fichier, le type de fichier et l'adresse de chargement. Après avoir lu ce court en-tête, le programme pourrait décider de continuer à charger la majeure partie des données ou de quitter la routine de chargement et d'afficher un message approprié pour l'utilisateur.
Un état de fin de fichier peut être reconnu en recevant autant d'octets que prévu (soit un nombre fixe d'octets, câblé dans le logiciel, soit un nombre variable tel qu'indiqué dans un en-tête). Une erreur s'est produite si la boucle de chargement n'a pas reçu d'impulsion dans la plage de fréquences attendue pendant un certain temps.
Un peu d'histoire sur cette réponse
La procédure décrite charge les données d'une bande audio ordinaire - d'où la nécessité de balayer l'entrée audio (elle est connectée avec une prise standard aux magnétophones). Une LOAD
commande est techniquement identique à open
un fichier - mais il est lié physiquement en fait le chargement du fichier. En effet, le magnétophone n'est pas contrôlé par l'ordinateur et vous ne pouvez pas (avec succès) ouvrir un fichier sans le charger.
La "boucle serrée" est mentionnée car (1) le CPU, un Z80-A (si la mémoire est bonne), était vraiment lent: 3,5 MHz, et (2) le Spectrum n'avait pas d'horloge interne! Cela signifie qu'il devait compter avec précision le nombre d' états T (temps d'instruction) pour chaque. Célibataire. instruction. à l'intérieur de cette boucle, juste pour maintenir le timing précis du bip.
Heureusement, cette faible vitesse du processeur avait l'avantage distinct que vous pouviez calculer le nombre de cycles sur une feuille de papier, et donc le temps réel qu'ils prendraient.
C
et Linux; car ce que font Linux et Windows diffère. Sinon, c'est un peu trop large. De plus, tout langage de niveau supérieur finira par appeler une API C pour le système ou se compilera en C pour s'exécuter, donc laisser au niveau de "C" le place au plus petit dénominateur commun.