/*************************************************************************************************************************************/ /* */ /* E N V O I D ' U N E C O M M A N D E A U D I S Q U E V I D E O B E T A - P A L : */ /* */ /* */ /* Author of '$xci/video_P.04$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1994??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* V A L I D A T I O N D U R A L E N T I D E M A N D E : */ /* */ /*************************************************************************************************************************************/ Test(IFEXff(ralenti_courant,RALENTI_FAIBLE_PAL_BETA,RALENTI_FORT_PAL_BETA)) Bblock PRINT_ERREUR("le ralenti demande est incompatible avec cette machine"); CAL1(Prer1("ralenti demande.=%d\n",ralenti_courant)); CAL1(Prer1("ralenti effectue=%d\n",RALENTI_PAL_BETA(ralenti_courant))); Eblock ATes Bblock Eblock ETes /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* E N V O I D ' U N E C O M M A N D E A U D I S Q U E V I D E O B E T A - P A L : */ /* */ /*************************************************************************************************************************************/ TEST_COMMANDE(COMMANDE_VIDE ,BLOC(VIDE;) ); /* Commande vide, il n'y a rien a faire... */ TEST_COMMANDE(COMMANDE_VERSION ,BLOC(EDITION_DU_TYPE_DE_MACHINE_PAL_BETA;) ); /* Commande d'edition de la version. */ TEST_COMMANDE(COMMANDE_D_INITIALISATION_MINIMALE ,BLOC(INITIALISATION_MINIMALE_PAL_BETA(affichage_sur_le_moniteur);) ); /* Tentative de "initialisation minimale". */ TEST_COMMANDE(COMMANDE_D_INITIALISATION_MAXIMALE ,BLOC(INITIALISATION_MAXIMALE_PAL_BETA(affichage_sur_le_moniteur);) ); /* Tentative de "initialisation maximale". */ TEST_COMMANDE(COMMANDE_D_ETAT ,BLOC(ETAT_PAL_BETA;) ); /* Tentative d'acces a l'etat du disque. */ TEST_COMMANDE(COMMANDE_D_ADRESSE ,BLOC(ADRESSE_COURANTE_PAL_BETA;) ); /* Tentative d'acces a l'adresse courante du disque. */ TEST_COMMANDE(COMMANDE_D_EJECTION ,BLOC(EJECTION_PAL_BETA;) ); /* Tentative d'ejection du disque. */ TEST_COMMANDE(COMMANDE_D_ARRET ,BLOC(ARRET_PAL_BETA;) ); /* Tentative d'arret de la commande en cours. */ TEST_COMMANDE(COMMANDE_DE_REPRISE ,BLOC(REPRISE_PAL_BETA;) ); /* Tentative de reprise d'une commande arretee par 'COMMANDE_D_ARRET'. */ TEST_COMMANDE(COMMANDE_DE_SAUVEGARDE ,BLOC(SAUVEGARDE_POSITION_PAL_BETA;) ); /* Tentative de sauvegarde de la position courante du disque. */ TEST_COMMANDE(COMMANDE_DE_RESTAURATION ,BLOC(RESTAURE_POSITION_PAL_BETA;) ); /* Tentative de retour a la position memorisee du disque. */ TEST_COMMANDE(COMMANDE_DE_RECHERCHE_D_UNE_IMAGE ,BLOC(RECHERCHE_D_UNE_IMAGE_PAL_BETA(adresse_courante);) ); /* Tentative de "recherche" d'une image de numero donne. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_D_UNE_SEQUENCE ,BLOC(LECTURE_D_UNE_SEQUENCE_PAL_BETA(adresse_de_debut ,adresse_de_fin ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_F_SCAN_D_UNE_SEQUENCE ,BLOC(LECTURE_QUELCONQUE_D_UNE_SEQUENCE_PAL_BETA(PAL_BETA_F_SCAN ,ralenti_courant ,nombre_de_repetitions ,adresse_de_debut ,adresse_de_fin ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees en avance ultra-rapide. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_F_FAST_D_UNE_SEQUENCE ,BLOC(LECTURE_QUELCONQUE_D_UNE_SEQUENCE_PAL_BETA(PAL_BETA_F_FAST ,ralenti_courant ,nombre_de_repetitions ,adresse_de_debut ,adresse_de_fin ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees en avance rapide. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_F_PLAY_D_UNE_SEQUENCE ,BLOC(LECTURE_QUELCONQUE_D_UNE_SEQUENCE_PAL_BETA(PAL_BETA_F_PLAY ,ralenti_courant ,nombre_de_repetitions ,adresse_de_debut ,adresse_de_fin ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees en avance normale. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_F_SLOW_D_UNE_SEQUENCE ,BLOC(LECTURE_QUELCONQUE_D_UNE_SEQUENCE_PAL_BETA(PAL_BETA_F_SLOW ,ralenti_courant ,nombre_de_repetitions ,adresse_de_debut ,adresse_de_fin ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees en avance lente. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_F_STEP_D_UNE_SEQUENCE ,BLOC(LECTURE_QUELCONQUE_D_UNE_SEQUENCE_PAL_BETA(PAL_BETA_F_STEP ,ralenti_courant ,nombre_de_repetitions ,adresse_de_debut ,adresse_de_fin ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees en avance pas a pas. */ TEST_COMMANDE(COMMANDE_DE_LECTURE_R_PLAY_D_UNE_SEQUENCE ,BLOC(LECTURE_QUELCONQUE_D_UNE_SEQUENCE_PAL_BETA(PAL_BETA_R_PLAY ,ralenti_courant ,nombre_de_repetitions ,adresse_de_fin ,adresse_de_debut ); ) ); /* Tentative de lecture d'une "sequence" d'images d'adresses donnees en avance normale */ /* en marche arriere (introduite le 20030204133222). */ TEST_COMMANDE(COMMANDE_DE_RECHERCHE_D_UN_BLOC_DE_DONNEES ,BLOC(RECHERCHE_D_UN_BLOC_DE_DONNEES_PAL_BETA(adresse_courante);) ); /* Tentative de "recherche" d'un bloc de donnees numeriques de numero donne. */ #define COMMANDE_disk_video_P \ chain_Aconcaten5(GENERATION_NOM_D_UNE_COMMANDE_X(Direct_xci,"disk_video_P") \ ,chain_Aconcaten2(" commande=",commande_courante) \ ,chain_Aconcaten2(" permuter=",ETAT_LOGIQUE(NOTL(permuter_les_octets_d_un_bloc_de_donnees))) \ ,chain_Aconcaten2(" adresse=",chain_Aentier(adresse_courante)) \ ,chain_Aconcaten2(" valeur=",chain_Aentier(donnees)) \ ) #define COMMANDE_car_controle \ chain_Aconcaten3(GENERATION_NOM_D_UNE_COMMANDE_X(Direct_xcp,"car_controle") \ ,chain_Aconcaten2(" eliminer=",C_VRAI____) \ ,chain_Aconcaten2(" eliminer_non_alpha_numerique=",C_VRAI____) \ ) #define COMMANDE_SwapBytes_01 \ chain_Aconcaten3(GENERATION_NOM_D_UNE_COMMANDE_X(Direct_xcg,"SwapBytes.01") \ ,chain_Aconcaten2(" K_LF=",C_FAUX____) \ ,chain_Aconcaten2(" groupes=",chain_Aentier(SIZE(vrai_Int_de_base))) \ ) TEST_COMMANDE(COMMANDE_DE_LECTURE_D_UN_BLOC_DE_DONNEES ,BLOC( Test(IL_NE_FAUT_PAS(permuter_les_octets_d_un_bloc_de_donnees)) Bblock LECTURE_D_UN_BLOC_DE_DONNEES_PAL_BETA(adresse_courante,donnees); Eblock ATes Bblock EXECUTION_D_UNE_SUITE_DE_COMMANDES_SOUS_SH(chain_Aconcaten5(COMMANDE_disk_video_P ,C_SH__REDIRECTION_PROGRAMME ,COMMANDE_car_controle ,C_SH__REDIRECTION_PROGRAMME ,COMMANDE_SwapBytes_01 ) ); Eblock ETes ) ); /* Tentative de "recherche" d'un bloc de donnees numeriques de numero donne et lecture. */ /* */ /* Le 20041221115815, a ete introduite la possibilite de permuter les octets d'un bloc de */ /* donnees numeriques pour permettre aux 'SYSTEME_APC's de recuperer les blocs de donnees */ /* ecrits il y a bien longtemps sur 'SYSTEME_SGIND'... */ /* */ /* Passage de 'C_REDIRECTION_PROGRAMME' a 'C_SH__REDIRECTION_PROGRAMME' le 20111117082006... */ TEST_COMMANDE(COMMANDE_AVANT_UN_PAS ,BLOC(AVANT_UN_PAS_PAL_BETA;) ); /* Tentative d'avance d'une image, */ TEST_COMMANDE(COMMANDE_ARRIERE_UN_PAS ,BLOC(ARRIERE_UN_PAS_PAL_BETA;) ); /* Tentative de recul d'une image. */ TEST_COMMANDE(COMMANDE_AVANT_LENT ,BLOC(AVANT_LENT_PAL_BETA(ralenti_courant);) ); /* Tentative de mise en pas a pas "avant" (avec ralenti='ralenti_courant'), */ TEST_COMMANDE(COMMANDE_ARRIERE_LENT ,BLOC(ARRIERE_LENT_PAL_BETA(ralenti_courant);) ); /* Tentative de mise en pas a pas "arriere" (avec ralenti='ralenti_courant'). */ TEST_COMMANDE(COMMANDE_AVANT_NORMAL ,BLOC(AVANT_NORMAL_PAL_BETA;) ); /* Tentative de "play" en marche avant normal, */ TEST_COMMANDE(COMMANDE_ARRIERE_NORMAL ,BLOC(ARRIERE_NORMAL_PAL_BETA;) ); /* Tentative de "play" en marche arriere normal. */ TEST_COMMANDE(COMMANDE_AVANT_RAPIDE ,BLOC(AVANT_RAPIDE_PAL_BETA;) ); /* Tentative de "play" en marche avant rapide, */ TEST_COMMANDE(COMMANDE_ARRIERE_RAPIDE ,BLOC(ARRIERE_RAPIDE_PAL_BETA;) ); /* Tentative de "play" en marche arriere rapide. */ TEST_COMMANDE(COMMANDE_AVANT_ULTRA_RAPIDE ,BLOC(AVANT_EXPLORATION_PAL_BETA;) ); /* Tentative de "play" en marche avant ultra-rapide ("exploration"). */ TEST_COMMANDE(COMMANDE_ARRIERE_ULTRA_RAPIDE ,BLOC(ARRIERE_EXPLORATION_PAL_BETA;) ); /* Tentative de "play" en marche arriere ultra-rapide ("exploration"). */ TEST_COMMANDE(COMMANDE_D_ENREGISTREMENT_D_UNE_IMAGE ,BLOC(ENREGISTREMENT_D_UNE_IMAGE_PAL_BETA(adresse_courante);) ); /* Tentative d'"enregistrement" d'une image de numero donne. */ TEST_COMMANDE(COMMANDE_D_ENREGISTREMENT_EN_CONTINU_D_UNE_SEQUENCE ,BLOC(ENREGISTREMENT_EN_CONTINU_D_UNE_SEQUENCE_PAL_BETA;) ); /* Tentative d'"enregistrement" d'une sequence d'images en continu. */ TEST_COMMANDE(COMMANDE_D_ENREGISTREMENT_D_UN_BLOC_DE_DONNEES ,BLOC(ENREGISTREMENT_D_UN_BLOC_DE_DONNEES_PAL_BETA(adresse_courante,donnees);) ); /* Tentative d'"enregistrement" d'un bloc de donnees numeriques de numero donne. */