**************************************************************** *                                                              * *   MODUL: GETUHR                   FILE: MEGACLKA             **                                                              * *   AUTOR: J.VOGEL, PLANKSTADT                                 * *                                                              ***************************************************************** *                                                              * *  HISTORIE                                                    * *                                                              * *  DATUM       INDEX   BEMERKUNGEN                             * *  ---------------------------------------------------------   * *  21-04-88    ---     URSCHLEIM                               * *                                                              * **************************************************************** *                                                              * *  ZWECK:                                                      * *  AUSLESEN DER HW-UHR DES MEGA-ST UND UEBERGABE ALS STRINGS   * *                                                              * **************************************************************** *                                                              * * AUFRUF UND DEKLARATION AUF PEARLSEITE:                       * *                                                              * * DCL GETUHR ENTRY (CHAR(8)  IDENT,/* UHRZEIT  */              * *                   CHAR(10) IDENT)/* DATUM    */;             * *                                                              * * CALL GETUHR(ZEIT,DATUM);                                     * *                                                              * **************************************************************** * MODULKOPF            DC.L    0           * RTOS-LINKS            DC.L    0            DC      $0010       * TYP 'MODULE'            DC.B    'GETUHR' * SYMBOLKRAM (SOLL LAUT HANDBUCH DIE LESBARKEIT ERHOEHEN!) RETN       OPD     $4E4C       * TRAP 12..ZURUECK INS PEARL OFF        OPD     $4E4F       * DISPATCHER OFF->SUPERMODE QDPC       OPD     $4E43       * QUICK DISPATCHER CALL ENTR       OPD.V   29          * PROC ENTRY MPXF       OPD.V   139         * FUER STRINGS UND SON ZEUGS EPAR       OPD.V   19          * ENDE DER FAHNENSTANGE * ADRESSEN UHR        EQU     $FFFC21     * BASISADRESSE UHR * OFFSETS IM PROCEDURE-WORKSPACE UHRADR     EQU     0           * ADRESSE UHRZEIT DATADR     EQU     UHRADR+4    * ADRESSE DATUM WSPSIZ     EQU     DATADR+4    * MEHR BRAUCHEN WIR NICHT * TYP DER ERWARTETEN PARAMETER UHRTYP     DC.B    8,8         * STRING MIT 8 ZEICHEN DATTYP     DC.B    10,8        * STRING MIT 10 ZEICHEN * JETZT GEHT'S ENDLICH LOS >GETUHR    ENTR    WSPSIZ.L    * PLATZ RESERVIEREN            MPXF    UHRTYP,UHRADR.Z * PARAMETERBEREICH            MPXF    DATTYP,DATADR.Z * PARAMETERBEREICH            EPAR            OFF                 * SUPERVISORMODE EIN            MOVEA.L DATADR.X,A0 * ADRESSE DATUM FUER PEARL           MOVEA.L =UHR+$10,A1 * HW-ADRESSE TAGE 10ER            BSR.S   GETDIG      * TAGE 10ER HOLEN            BSR.S   GETDIG      * TAGE EINER            MOVE.B  =$2D,(A0)+  * BINDESTRICH            MOVEA.L =UHR+$14,A1 * HW-ADRESSE MONAT 10ER            BSR.S   GETDIG      * MONAT 10ER HOLEN            BSR.S   GETDIG      * MONAT EINER            MOVE.B  =$2D,(A0)+  * BINDESTRICH           MOVE.B  =$31,(A0)+  * JAHRTAUSEND = '1'            MOVE.B  =$39,(A0)+  * JAHRHUNDERT = '9'           MOVE.B  =$38,(A0)+  * JAHRZEHNT NICHT IN UHR?!?           MOVEA.L =UHR+$16,A1 * HW-ADRESSE JAHR 1ER            BSR.S   GETDIG      * HOLEN            MOVEA.L UHRADR.X,A0 * ADRESSE UHRZEIT FUER PEARL            MOVEA.L =UHR+$0A,A1 * HW-ADRESSE STUNDEN 10ER            BSR.S   GETDIG      * STUNDEN 10ER HOLEN           BSR.S   GETDIG      * STUNDEN 1ER HOLEN           MOVE.B  =$3A,(A0)+  * DOPPELPUNKT           BSR.S   GETDIG      * MINUTEN 10ER HOLEN           BSR.S   GETDIG      * MINUTEN 1ER HOLEN           MOVE.B  =$3A,(A0)+  * NOCH'N DOPPELPUNKT           BSR.S   GETDIG      * SEKUNDEN 10ER           BSR.S   GETDIG      * UND SEKUNDEN 1ER           ANDI    =$D8FF,SR            QDPC                * DISPATCHER START            RETN                * FERTIG UND WEG * HOLT EIN BYTE VON DER ADRESSE (A1), MACHT ASCII, LEGT * IN (A0) AB, INKREMENTIERT A0, DEKREMENTIERT A1 UM 2 GETDIG     MOVE.B  (A1),D0     * HW-ADRESSE AUSLESEN           SUBQ.L  =2,A1       * FUER NAECHSTEN ZUGRIFF           AND.B   =$0F,D0     * NUR L-NIBBLE INTERESSIERT           ADD.B   =$30,D0     * ASCII-BASIS (NUR '0..'9!)           MOVE.B  D0,(A0)+    * UND IM STRING ABLEGEN           RTS            END 