Retour sur ACME

OUT &FA7E/FB7F : Tester la présence d'une disquette

Auteur: Fredisland (Admin)
5.00
5 sur 1 votes

OUT &FA7E/FB7F : Tester la présence d'une disquette

Pouvoir détecter la présence d'une disquette permet d'éviter la corruption de l'affichage par l'AMSDOS du CPC avec l'horriplant :

Drive A: disc missing

Retry, Ignore or Cancel?

La routine BASIC

Dans le cœur de votre programme, avant tout accès à la disquette, il suffira d'appeler la routine BASIC ici construite des lignes 10000 à 10100. À l'appel de la routine, deux cas se présenteront :

  • Si la disquette est absente, un message vous en informera puis vous redonnera la main
  • Si la disquette est présente mais protégée contre l'écriture, là aussi un message vous en informera puis vous redonnera la main
100 'TEST PRESENCE D'UNE DISQUETTE
110 GOSUB 10000
120 END 'Suite traitement du programme
130 '
10000 ' DEBUT ROUTINE DE TEST DE PRESENCE DISQUETTE
10010 OUT(&FA7E),1:FOR i=1 TO 999:NEXT
10020 OUT(&FB7F),4:OUT(&FB7F),2-PEEK(&A700)
10030 DK=INP(&FB7F):OUT(&FA7E),0
10040 IF(DK AND 32)=0 THEN PRINT"Inserer une disquette !":RETURN
10050 IF(DK AND 64)THEN PRINT"Disquette protegee !":RETURN
10100 ' FIN ROUTINE DE TEST DE PRESENCE DISQUETTE

Attention : pour une raison que j'ignore, cette routine fonctionne sur vrai CPC, ainsi que sur l'émulateur CAPRICE Forever, mais pas sur l'émulateur JavaCPC. Donc si vous utilisez exclusivement un émulateur, faites des tests avant.

OUT &FA7E/FB7F : Tester la présence d'une disquette

OUT &FA7E/FB7F : Tester la présence d'une disquette

Pouvoir détecter la présence d'une disquette permet d'éviter la corruption de l'affichage par l'AMSDOS du CPC avec l'horriplant :

Drive A: disc missing

Retry, Ignore or Cancel?

La routine BASIC

Dans le cœur de votre programme, avant tout accès à la disquette, il suffira d'appeler la routine BASIC ici construite des lignes 10000 à 10100. À l'appel de la routine, deux cas se présenteront :

  • Si la disquette est absente, un message vous en informera puis vous redonnera la main
  • Si la disquette est présente mais protégée contre l'écriture, là aussi un message vous en informera puis vous redonnera la main
100 'TEST PRESENCE D'UNE DISQUETTE
110 GOSUB 10000
120 END 'Suite traitement du programme
130 '
10000 ' DEBUT ROUTINE DE TEST DE PRESENCE DISQUETTE
10010 OUT(&FA7E),1:FOR i=1 TO 999:NEXT
10020 OUT(&FB7F),4:OUT(&FB7F),2-PEEK(&A700)
10030 DK=INP(&FB7F):OUT(&FA7E),0
10040 IF(DK AND 32)=0 THEN PRINT"Inserer une disquette !":RETURN
10050 IF(DK AND 64)THEN PRINT"Disquette protegee !":RETURN
10100 ' FIN ROUTINE DE TEST DE PRESENCE DISQUETTE

Attention : pour une raison que j'ignore, cette routine fonctionne sur vrai CPC, ainsi que sur l'émulateur CAPRICE Forever, mais pas sur l'émulateur JavaCPC. Donc si vous utilisez exclusivement un émulateur, faites des tests avant.