
                     * PAG
                     ************************************************************
                     * DISASSEMBLY BY DYNAMITE OF 1.HORLOGE.CMD                *
                     ************************************************************
                     * OPT PAG
                     *
                     * 'HOLOGE' UTILITY FOR VEGAS 6809 HARDWARE
                     *
                     * BY FLD ON 15-10-2011 FOR VEGAS
                     * DISASSEMBLY BY DYNAMITE OF 1.HORLOGE.CMD
                     
                     * STANDARD PRE-NAMED LABEL EQUATES
                     
               CC0E  SYSMTH  EQU    $CC0E
               CC0F  SYSDAY  EQU    $CC0F
               CC10  SYSYR   EQU    $CC10
               CD03  WARMS   EQU    $CD03
               CD15  GETCHR  EQU    $CD15
               CD18  TCHR    EQU    $CD18
               CD1E  PSTRNG  EQU    $CD1E
               CD24  PCRLF   EQU    $CD24
               CD39  OUTDEC  EQU    $CD39
                     
                     * ASCII CODE EQUATES
                     
               0004  EOT     EQU    $04
                     
                     * EXTERNAL LABEL EQUATES
                     
               F641  HOR10S  EQU    $F641
                     
                     
  C100                       ORG    $C100
                     
  C100 20   12       CMDADR  BRA    HORLO1
  C102 03                    FCB    $03
  C103 00            TEMP1   FCB    $00
  C104 00 8D 71      TEMP2   FCB    $00,$8D,$71
  C107 27            BUF10S  FCB    $27
  C108 36            BUFUSE  FCB    $36
  C109 BD            BUFTSE  FCB    $BD
  C10A CD            BUFUMI  FCB    $CD
  C10B 27            BUFTMI  FCB    $27
  C10C 81            BUFUHO  FCB    $81
  C10D 57            BUFTHO  FCB    $57
  C10E 27            BUFUDA  FCB    $27
  C10F 15            BUFTDA  FCB    $15
  C110 81            BUFWDA  FCB    $81
  C111 77            BUFUMO  FCB    $77
  C112 27            BUFTMO  FCB    $27
  C113 11            BUFYRS  FCB    $11
  C114 8E   F641     HORLO1  LDX    #HOR10S   GET THE FIRST REGISTER OF THE RTC
  C117 108E C107             LDY    #BUF10S   GET THE FIRST BUFFER REGISTER
  C11B C6   0D               LDB    #$0D      INITIALIZE FOR 13 REGISTER COPY
  C11D A6   84               LDA    0,X
  C11F A6   80       HORLO2  LDA    0,X+      COPY THE 13 VALUES INTO THE BUFFER
  C121 84   0F               ANDA   #$0F      CUT THE 4 HIGHEST BITS
  C123 A7   A0               STA    0,Y+
  C125 5A                    DECB             NEXT REGISTER
  C126 26   F7               BNE    HORLO2    LOOP
  C128 B6   C107             LDA    BUF10S    TEST THE FIRST REGISTER
  C12B 81   0F               CMPA   #$0F
  C12D 26   0B               BNE    HORLO3    SKIP IF OK
  C12F B6   C113             LDA    BUFYRS    TEST THE LAST REGISTER
  C132 81   0F               CMPA   #$0F
  C134 1027 0202             LBEQ   ERROR     SKIP IF OK
  C138 20   DA               BRA    HORLO1    RETRY ON ERROR
  C13A B1   C113     HORLO3  CMPA   BUFYRS    TEST THE LAST REGISTER
  C13D 26   D5               BNE    HORLO1    RETRY ON ERROR
  C13F 8E   C107             LDX    #BUF10S
  C142 A6   80               LDA    0,X+      LOAD 10S OF SEC
  C144 81   0A               CMPA   #$0A      TEST > 10
  C146 1024 01F0             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C14A A6   80               LDA    0,X+      LOAD UNIT OS SEC
  C14C 81   0A               CMPA   #$0A      TEST > 10
  C14E 1024 01E8             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C152 A6   80               LDA    0,X+      LOAD TEN OS SEC
  C154 81   07               CMPA   #7        TEST > 7
  C156 1024 01E0             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C15A A6   80               LDA    0,X+      LOAD UNIT OF MIN
  C15C 81   0A               CMPA   #$0A      TEST > 10
  C15E 1024 01D8             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C162 A6   80               LDA    0,X+      LOAD TEN OF MIN
  C164 81   07               CMPA   #7        TEST > 7
  C166 1024 01D0             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C16A A6   80               LDA    0,X+      LOAD UNIT OF HOUR
  C16C 81   0A               CMPA   #$0A      TEST > 10
  C16E 1024 01C8             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C172 A6   80               LDA    0,X+      LOAD TEN OF HOUR
  C174 81   03               CMPA   #3        TEST > 3
  C176 1024 01C0             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C17A A6   80               LDA    0,X+      LOAD UNIT OF DAY
  C17C 81   0A               CMPA   #$0A      TEST > 10
  C17E 1024 01B8             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C182 A6   80               LDA    0,X+      LOAD TEN OF DAY
  C184 81   04               CMPA   #4        TEST > 4
  C186 1024 01B0             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C18A A6   80               LDA    0,X+      LOAD WEEK DAY
  C18C 81   08               CMPA   #8        TES > 8
  C18E 1024 01A8             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C192 A6   80               LDA    0,X+      LOAD UNIT OF MONTH
  C194 E6   80               LDB    0,X+      LOAD TEN OF MONTH
  C196 81   0A               CMPA   #$0A      TEST > 10
  C198 1024 019E             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C19C 12                    NOP
  C19D 12                    NOP
  C19E 1027 0198             LBEQ   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C1A2 C1   02               CMPB   #2        TEST > 2
  C1A4 1024 0192             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C1A8 C1   01               CMPB   #1        TST > 1
 >C1AA 1026 0006             LBNE   HORLO4    ON ERROR GO TO MANUAL TIME SETTING
  C1AE 81   03               CMPA   #3        TEST > 3
  C1B0 1024 0186             LBCC   ERROR     ON ERROR GO TO MANUAL TIME SETTING
  C1B4 B6   C110     HORLO4  LDA    BUFWDA    GET THE WEEK DAY
  C1B7 8E   C1C0             LDX    #WEKDAY-9 PINPOINT TO THE TABLE
  C1BA C6   09               LDB    #9
  C1BC 3D                    MUL
  C1BD 30   8B               LEAX   D,X
  C1BF BD   CD1E             JSR    PSTRNG    PRINT THE WEEK DAY
  C1C2 86   20               LDA    #$20      SPACE
  C1C4 BD   CD18             JSR    TCHR      PRINT SPACE
  C1C7 20   3F               BRA    HORLO5
  C1C9 4C 55 4E 44   WEKDAY  FCC    "LUNDI",EOT
  C1CD 49 04         
  C1CF 20 20 20 4D           FCC    "   MARDI",EOT
  C1D3 41 52 44 49   
  C1D7 04            
  C1D8 20 20 20 4D           FCC    "   MERCREDI",EOT
  C1DC 45 52 43 52   
  C1E0 45 44 49 04   
  C1E4 4A 45 55 44           FCC    "JEUDI",EOT
  C1E8 49 04         
  C1EA 20 20 20 56           FCC    "   VENDREDI",EOT
  C1EE 45 4E 44 52   
  C1F2 45 44 49 04   
  C1F6 53 41 4D 45           FCC    "SAMEDI",EOT
  C1FA 44 49 04      
  C1FD 20 20 44 49           FCC    "  DIMANCHE",EOT
  C201 4D 41 4E 43   
  C205 48 45 04      
  C208 8E   C10E     HORLO5  LDX    #BUFUDA   GET THE DAY
  C20B BD   C324             JSR    FORDAY
  C20E C6   01               LDB    #1
  C210 BD   CD39             JSR    OUTDEC    PRINT THE DAY
  C213 86   20               LDA    #$20
  C215 BD   CD18             JSR    TCHR
  C218 B6   C10F             LDA    BUFTDA
  C21B B7   CC0F             STA    SYSDAY    STORE IN SYSTEM DAY
  C21E 8E   C111             LDX    #BUFUMO   GET HE MONTH 
  C221 BD   C324             JSR    FORDAY
  C224 B6   C112             LDA    BUFTMO    GET THE MONTH
  C227 8E   C230             LDX    #MONTH-10 PINPOINT TO THE TABLE
  C22A C6   0A               LDB    #$0A
  C22C 3D                    MUL
  C22D 30   8B               LEAX   D,X
  C22F A6   80       HORLO6  LDA    0,X+
  C231 81   04               CMPA   #4        CHAR EOT
  C233 27   7D               BEQ    HORLO7
  C235 BD   CD18             JSR    TCHR
  C238 20   F5               BRA    HORLO6
  C23A 4A 41 4E 56   MONTH   FCC    "JANVIER",EOT
  C23E 49 45 52 04   
  C242 20 20 46 45           FCC    "  FEVRIER",EOT
  C246 56 52 49 45   
  C24A 52 04         
  C24C 20 20 4D 41           FCC    "  MARS",EOT
  C250 52 53 04      
  C253 20 20 20 20           FCC    "     AVRIL",EOT
  C257 20 41 56 52   
  C25B 49 4C 04      
  C25E 20 20 20 20           FCC    "    MAI",EOT
  C262 4D 41 49 04   
  C266 20 20 20 20           FCC    "      JUIN",EOT
  C26A 20 20 4A 55   
  C26E 49 4E 04      
  C271 20 20 20 20           FCC    "     JUILLET",EOT
  C275 20 4A 55 49   
  C279 4C 4C 45 54   
  C27D 04            
  C27E 20 20 41 4F           FCC    "  AOUT",EOT
  C282 55 54 04      
  C285 20 20 20 20           FCC    "     SEPTEMBRE",EOT
  C289 20 53 45 50   
  C28D 54 45 4D 42   
  C291 52 45 04      
  C294 4F 43 54 4F           FCC    "OCTOBRE",EOT
  C298 42 52 45 04   
  C29C 20 20 4E 4F           FCC    "  NOVEMBRE",EOT
  C2A0 56 45 4D 42   
  C2A4 52 45 04      
  C2A7 20 44 45 43           FCC    " DECEMBRE",EOT
  C2AB 45 4D 42 52   
  C2AF 45 04         
  C2B1 20                    FCB    $20
  C2B2 B6   C112     HORLO7  LDA    BUFTMO    LOAD MONTH
  C2B5 B7   CC0E             STA    SYSMTH    STORE IN SYSTEM MONTH
  C2B8 86   20               LDA    #$20      SPACE
  C2BA BD   CD18             JSR    TCHR      PRINT SPACE
  C2BD B6   CC10             LDA    SYSYR     LOAD SYSTEM YEAR
  C2C0 B7   C104             STA    TEMP2     STORE lo PART
  C2C3 7F   C103             CLR    TEMP1     CLEAR hi PART
  C2C6 CC   076C             LDD    #$076C    1900
  C2C9 BE   C103             LDX    TEMP1     TAKE THE YEAR
  C2CC 30   8B               LEAX   D,X       ADD 1900
  C2CE BF   C103             STX    TEMP1     STORE IN TEMP1
  C2D1 8E   C103             LDX    #TEMP1
  C2D4 C6   01               LDB    #1
  C2D6 BD   CD39             JSR    OUTDEC    PRINT THE YEAR
  C2D9 86   20               LDA    #$20      SPACE
  C2DB BD   CD18             JSR    TCHR      PRINT 3 SPACES
  C2DE BD   CD18             JSR    TCHR
  C2E1 BD   CD18             JSR    TCHR
  C2E4 B6   C10D             LDA    BUFTHO    GET THE TEN OF HOURS
  C2E7 8A   30               ORA    #$30
  C2E9 BD   CD18             JSR    TCHR      PRINT IT
  C2EC B6   C10C             LDA    BUFUHO    GET THE UNIT OF HOURS
  C2EF 8A   30               ORA    #$30
  C2F1 BD   CD18             JSR    TCHR      PRINT IT 
  C2F4 86   3A               LDA    #$3A      PRINT SEPARATOR
  C2F6 BD   CD18             JSR    TCHR
  C2F9 B6   C10B             LDA    BUFTMI    GET THE TEN OF MINUTES
  C2FC 8A   30               ORA    #$30
  C2FE BD   CD18             JSR    TCHR      PRINT IT
  C301 B6   C10A             LDA    BUFUMI    GET THE UNIT OF MINUTES
  C304 8A   30               ORA    #$30
  C306 BD   CD18             JSR    TCHR      PRINT IT
  C309 86   3A               LDA    #$3A      PRINT SEPARATOR
  C30B BD   CD18             JSR    TCHR
  C30E B6   C109             LDA    BUFTSE    GET THE TEN OF SECONDS
  C311 8A   30               ORA    #$30
  C313 BD   CD18             JSR    TCHR      PRINT IT
  C316 B6   C108             LDA    BUFUSE    GET THE UNIT OF SECONDS
  C319 8A   30               ORA    #$30
  C31B BD   CD18             JSR    TCHR      PRINT IT
  C31E BD   CD24             JSR    PCRLF     PRINT CR & LF
  C321 7E   CD03             JMP    WARMS     RETURNS TO FLEX
  C324 86   0A       FORDAY  LDA    #$0A
  C326 E6   01               LDB    1,X
  C328 3D                    MUL
  C329 EB   84               ADDB   0,X
  C32B 4F                    CLRA
  C32C ED   84               STD    0,X
  C32E 39                    RTS
  C32F 86   0A       MAKBYT  LDA    #$0A
  C331 E6   84               LDB    0,X
  C333 3D                    MUL
  C334 EB   01               ADDB   1,X
  C336 4F                    CLRA
  C337 ED   84               STD    0,X
  C339 39                    RTS
                     
                     * ON ERROR SET THE DATE MANUALLY
  C33A 8E   C3B7     ERROR   LDX    #NORTC    GET ERROR MESSAGE
  C33D BD   CD1E             JSR    PSTRNG    PRINT IT
  C340 8E   C3D9             LDX    #NORTC1   GET ERROR MESSAGE
  C343 BD   CD1E             JSR    PSTRNG    PRINT IT
  C346 8E   C107             LDX    #BUF10S   PINPOINT TO THE BUFFER
  C349 BD   CD15     ERROR1  JSR    GETCHR    GET THE CHARACTER
  C34C 8C   C107             CMPX   #BUF10S
  C34F 27   08               BEQ    ERROR2
  C351 81   08               CMPA   #8        LOOP 8 TIMES
  C353 26   04               BNE    ERROR2
  C355 30   1F               LEAX   -1,X
  C357 20   F0               BRA    ERROR1
  C359 A7   80       ERROR2  STA    0,X+
  C35B 8C   C10F             CMPX   #BUFTDA
  C35E 26   E9               BNE    ERROR1
  C360 B6   C107             LDA    BUF10S
  C363 84   07               ANDA   #7        FILTER 3 LAST BITS
  C365 B7   C107             STA    BUF10S
  C368 B6   C108             LDA    BUFUSE
  C36B 84   0F               ANDA   #$0F      FILTER 4 LAST BITS
  C36D B7   C108             STA    BUFUSE
  C370 8E   C107             LDX    #BUF10S   COMPUTE THE DAY
 >C373 BD   C32F             JSR    MAKBYT
  C376 B6   C108             LDA    BUFUSE
  C379 B7   CC0F             STA    SYSDAY    STORE IN SYSTEM DAY
  C37C B6   C10A             LDA    BUFUMI
  C37F 84   01               ANDA   #1        FILTER LESS THAN 1
  C381 B7   C10A             STA    BUFUMI
  C384 B6   C10B             LDA    BUFTMI
  C387 84   0F               ANDA   #$0F      FILTER 4 LAST BITS
  C389 B7   C10B             STA    BUFTMI
  C38C 8E   C10A             LDX    #BUFUMI   COMPUTE THE MONTH
 >C38F BD   C32F             JSR    MAKBYT
  C392 B6   C10B             LDA    BUFTMI
  C395 B7   CC0E             STA    SYSMTH    STORE IN SYSTEM MONTH
  C398 B6   C10D             LDA    BUFTHO
  C39B 84   0F               ANDA   #$0F      FILTER 4 LAST BITS
  C39D B7   C10D             STA    BUFTHO
  C3A0 B6   C10E             LDA    BUFUDA
  C3A3 84   0F               ANDA   #$0F      FILTER 4 LAST BITS
  C3A5 B7   C10E             STA    BUFUDA
  C3A8 8E   C10D             LDX    #BUFTHO   COMPUTE THE YEAR
 >C3AB BD   C32F             JSR    MAKBYT
  C3AE B6   C10E             LDA    BUFUDA
  C3B1 B7   CC10             STA    SYSYR     STORE IN SYSTEM YEAR
  C3B4 7E   CD03             JMP    WARMS
  C3B7 48 4F 52 4C   NORTC   FCC    "HORLOGE ABSENTE OU HEURE"
  C3BB 4F 47 45 20   
  C3BF 41 42 53 45   
  C3C3 4E 54 45 20   
  C3C7 4F 55 20 48   
  C3CB 45 55 52 45   
  C3CF 20 45 52 52           FCC    " ERRONEE ",EOT
  C3D3 4F 4E 45 45   
  C3D7 20 04         
  C3D9 44 41 54 45   NORTC1  FCC    "DATE (JJ/MM/AA) ? ",EOT
  C3DD 20 28 4A 4A   
  C3E1 2F 4D 4D 2F   
  C3E5 41 41 29 20   
  C3E9 3F 20 04      
                     
                             END    CMDADR

0 ERROR(S) DETECTED

SYMBOL TABLE:

BUF10S C107   BUFTDA C10F   BUFTHO C10D   BUFTMI C10B   BUFTMO C112   
BUFTSE C109   BUFUDA C10E   BUFUHO C10C   BUFUMI C10A   BUFUMO C111   
BUFUSE C108   BUFWDA C110   BUFYRS C113   CMDADR C100   EOT    0004   
ERROR  C33A   ERROR1 C349   ERROR2 C359   FORDAY C324   GETCHR CD15   
HOR10S F641   HORLO1 C114   HORLO2 C11F   HORLO3 C13A   HORLO4 C1B4   
HORLO5 C208   HORLO6 C22F   HORLO7 C2B2   MAKBYT C32F   MONTH  C23A   
NORTC  C3B7   NORTC1 C3D9   OUTDEC CD39   PCRLF  CD24   PSTRNG CD1E   
SYSDAY CC0F   SYSMTH CC0E   SYSYR  CC10   TCHR   CD18   TEMP1  C103   
TEMP2  C104   WARMS  CD03   WEKDAY C1C9   




