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.7-desktop
Page créée en 021 millisecondes et consultée 1607 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.