CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 2.05.09 Cassette manager (CAS)

Soyez sans crainte, nous n'avons pas oublié que votre ordinateur dispose d'un lecteur de disquette intégré, ce qui rend pour vous l'utilisation de cassettes pratiquement ou même tout à fait inutile. Nous ne vous en présentons pas moins le CASSETTE MANAGER qui dispose d'un certain nombre de routines qu'il est bon de connaître.

24BC ************************************** CAS INITIALISE

initialisation complète du pack cassette

24BC CAS IN ABANDON 24C3  CAS NOISY

24CE ************************************** CAS SET SPEED

fixer vitesse d'écriture.

24D9 (Cass. Speed)

24E1 ******************************************* CAS NOISY

messages cassette activés/désactivés, les messages d'erreur restent activés.

24E1  (Cass. Message Flag)

24E5 ***************************************** CAS IN OPEN

CAS IN OPEN ouvre un fichier d'entrée. Il faut pour cela placer en b la longueur du nom de fichier, en hl l'adresse de début du nom de fichier et en de l'adresse de début d'une zone de la Ram de 2 K qui sera utilisée comme buffer d'entrée.

Au retour de la routine, hl contient l'adresse de début de la tête de fichier (header).
a, bc et de contiennent d'autres valeurs tirées du header que vous pouvez cependant retirer vous-même directement du header, puisque vous disposez de l'adresse à laquelle il se trouve.

Les flags carry et zéro vous informent sur le succès de
l'opération:

Carry=1.et zéro=0 signifient que tout a bien marché.
Carry=0 et zéro=0 signifient qu'il y a déjà un autre fichier d'ouvert.
Si la touche ESC a été enfoncée, carry=0 et zéro= 1.

24E5  Input Buffer Status
24E9  Cass. Open
24ED lire File Header

24FE ************************************** CAS OUT OPEN

CAS OUT OPEN ouvre un fichier en sortie. Les paramètres à transmettre et la signification des flags sont les mêmes que ci-dessus. Naturellement, de doit ici contenire l'adresse du buffer de sortie.

24FE Output Buffer Status

2502 ******************************************** Cass Open

2550 **************************************** CAS IN CLOSE

fermeture correcte du fichier d'entrée.

2550  (Input Buffer Status)

2557 ************************************ CAS IN ABANDON

interrompre immédiatement la lecture et fermer le fichier d'entrée (en cas d'erreur).

2557  Input Buffer Status

257F ************************************* CAS OUT CLOSE

fermeture correcte du fichier de sortie.

257F  (Output Buffer Status)

2599 ********************************** CAS OUT ABANDON

fermer immédiatement fichier de sortie et marquer le périphérique de sortie comme 'fermé', les données non encore écrites sont détruites.

2599  Output Buffer Status

25A0 **************************************** CAS IN CHAR

CAS IN CHAR va chercher un caractère dans le buffer d'entrée et le transmet à travers a. Si c'était le dernier caractère du buffer, un nouveau bloc est automatiquement lu sur la cassette. Si carry=0 et zéro=0, c'est que la fin du fichier (EOF) a été atteinte ou que le fichier n'était pas ouvert. Les autres combinaisons ont le même sens que ci-dessus.

25A5  Check Input Buffer Status
25B0  lire File Header
25BC (Pointer Input Buffer)
25BF  ld a,(hl)
25C1  (Pointer Input Buffer)

25C6 ************************************** CAS OUT CHAR

CAS OUT CHAR écrit le caractère qui se trouve dans a dans le buffer de sortie. Si celui-ci est plein, le contenu du buffer est automatiquement écrit sur la cassette. La signification des flags est la même que ci-dessus.

25CA Output Buffer Status
25CF Check Buffer Status
25EA (Pointer Output Buffer)
25EF (Pointer Output Buffer)

25F6 ****************************** check Input Buffer Status

25F6  Input Buffer Status

25F9 ************************************ Check Buffer Status

2603 **************************************** CAS TEST EOF

tester si fin de fichier atteinte.

2603  CAS IN CHAR

2607 ***************************************** CAS RETURN

renvoyer dernier caractère lu dans le buffer.

260F  (Pointer Input Buffer)
2613  (Pointer Input Buffer)

2618 *************************************** CAS IN DIRECT

transférer fichier d'entrée entier dans la mémoire, pas de lecture caractère par caractère.

261B  (Check Input Buffer Status)
2631   lire File Header
263C  (Adr. Start Input Buffer)
2647   KL LDIR CONT'D
2650  KL LDDR CONT'D

2653 ************************************ CAS OUT DIRECT

écrire zone mémoire définie sur cassette (pas à travers le buffer).

2656  Output Buffer Status
265B  Check Buffer Status
266 E  (Adr. Start Output Buffer)
2685  (Adr. Start Output Buffer)

2692 *************************************** CAS CATALOG

sortie du catalogue d'une cassette sur l'écran.

2692  Input Buffer Status
269C  (Adr. Start Input Buffer)
26Al  CAS NOISY
26A9 CAS IN ABANDON

26AC ************************************** lire file Header

26C3  CAS READ
26E0  (Input Buffer Status)
26EF  (Adr. Start Input Buffer)
26F2  (Pointer Input Buffer)
26F7  CAS READ
271B  Input Buffer Status
2743  (File Header Input)
274E  File Header Input
2760  File Header Input
277B  CAS OUT CLOSE
2781   CAS MOTOR STOP
2790  File Header Output
279E  (Adr. Start Output Buffer)
27Al  (Pointer Output Buffer)
27A8  File Header Output
27B0  CAS WRITE
27BC CAS WRITE
27D9 Output Buffer Status
27F5  CAS START MOTOR
2807  (Cass. Message Flag)
2846  TXT WR CHAR
2871   sortir message CAS (1 caractère)
2886  sortir message CAS (# in b)
288C  sortir message CAS (1 caractère)

289] ************************ sortir message CAS (# in b)

2891   TXT GET CURSOR
289D  messages cassette
28C9  sortir message CAS (1 caractère)
28D0  sortir message CAS (1 caractère)
28D2  (Cass. Message Flag)
28D8  sortir message CAS (# in b)
28DB KM READ CHAR
28DE TXT CUR ON
28E1  KM WAIT KEY
28E4  TXT CUR OFF

28F0 ********************* sortir message CAS (1 caractère)

28F0  TXT OUTPUT
28F7  TXT SET COLUMN
28FE  TXT GET WINDOW
2902  TXT GET CURSOR
2924  sortir message CAS (1 caractère)
292F  (Input Buffer Status)

2935 *********************************** messages cassette

2935  Press
293B  PLAY 293F  then
2943  any
2946  key
294B  error
2955  REC
2958  and
295D Read
2963  Write
296A  Rewind
2970  tape
2975  Found
297D Loading
2985  Saving
298D ok
2990  block
2996  Unnamed
299D file

29A6 ******************************************* CAS READ

lire un bloc de la cassette, cette routine est appelée par des routines de plus haut rang.

29A6 moteur activé & ouvrir clavier

29AF ****************************************** CAS WRITE

écrire un bloc sur cassette, est appelé, comme CAS READ, par des routines de plus haut rang.

29AF moteur activé & ouvrir clavier

29C1 ****************************************** CAS CHECK

comparer bloc sur la bande avec contenu de la mémoire.

29C1  moteur activé & ouvrir clavier
29D2  Port A=Out
29D7  moteur activé
29DE CAS RESTORE MOTOR

29E3 ***************************** moteur activé & ouvrir clavier

29EA SOUND RESET
29F0  CAS START MOTOR
29F4  Sound I/O Port sélect
29 F9  Strobe activé
29FE  Strobe désactivé
2A02  Port A=In
2A07  ouvrir clavier Y9 (ESC)
2A0A & Sound I/O sur port A
2A3C RAM LAM (IX)
2A67  RAM LAM (IX)
2A95  Cass. Input RD DATA & Test ESC
2A9D Cass. Input RD DATA & Test ESC
2AB2 Cass. Input RD DATA & Test ESC

2B3D ********************* Cass. Input RD DATA & Test ESC

2B3D Port A
2B3F  Keyb. X
2B41  ESC?
2B43  si oui retour
2B4D Port B
2B55  Input RD DATA
2B8E  WR DATA désactivé
2B90  Cass. Output WR DATA
2B9F  WR DATA activé
2BA1  Cass. Output WR DATA

2BA7 ******************************* Cass. Output WR DATA

2BB1  Port Control 2BB3  WR DATA

2BBB ********************************* CAS START MOTOR

moteur cassette activé

2BBD CAS RESTORE MOTOR

2BBF *********************************** CAS STOP MOTOR

arrêter moteur cassette.

2BC1 ******************************* CAS RESTORE MOTOR

rétablit l'ancien état du moteur, après mise en marche du moteur on attend que le nombre de rotations requis soit atteint.

2BC2  Port C
2BCE moteur activé/désactivé
2BE9  KM TEST KEY

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 2.05.08 Sound manager (SOUND)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.73-desktop
Page créée en 374 millisecondes et consultée 1659 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.