summaryrefslogblamecommitdiffstats
path: root/mix/1.3.2/easter.mixal
blob: 1dd56acc8f6f14d3f096270fe2ffebceb2373eab (plain) (tree)
1
2
3
4
5
6
7
8
9
                                   





                                      
                                      
                                      
                                      


                                                    
                         



                 
                         



                  
                         



                
                         




                 
                         




                
















                                                





                          







                                                





                                    

                 
* 1.3.2 Ex. 14. Work in progress...
        ORIG 0
Y       CON  0 Y is stored here.
G       CON  0 G will get stored here.
C       CON  0 C will get stored here.
X       CON  0 X will get stored here.
Z       CON  0 Z will get stored here.
D       CON  0 D will get stored here.
E       CON  0 E will get stored here.
N       CON  0 N will get stored here.
        ORIG 1000
START   JMP DOE
* Date of Easter routine. Assumes Y is in address 0.
DOE     LDX  Y Compute G.
        ENTA 0
        DIV  =19=
        INCX 1
        STX  G
        ENTA 0 Compute C.
        LDX  Y
        DIV  =100=
        INCA 1
        STA  C
        ENTA 3 Compute X.
        MUL  C
        DIV  =4=
        DECA 12
        STA  X
        ENTA 8 Compute Z.
        MUL  C
        INCX 5
        DIV  =25=
        DECA 5
        STA  Z
        ENTA 5 Compute D.
        MUL  Y
        DIV  =4=
        SUB  X
        DECA 10
        STA  D
        ENTA 11 Compute E.
        MUL  G
        INCX 20
        SLC  5 Move value to reg. A from reg. X.
        ADD  Z
        SUB  X
        SRC  5 Move value to reg. X from reg. A.
        DIV  =30=
        CMPX =24= Compare E with 24.
        JE   INCRE
        CMPX =25= Compare E with 25.
        JNE  STRE
        LD1  G
        CMP1 =11=
        JLE  STRE
INCRE   INCX 1 Increment E by 1.
STRE    STX  E
        ENTA 44 Compute N.
        SUB  E
        CMPA =21=
        JGE  STRN
        INCA 30
STRN    STA  N
        LDA  D Penultimate step.
        ADD  N
        SRC  5 Move value to reg. X from reg. A.
        ENTA 0 Clear reg. A
        DIV  =-7=
        SLC  5 Move value to reg. X from reg. X
        ADD  =7=
        ADD  N
        ENTX 0 Clear reg. X.
        CMPA =31=
        JLE  DONE
        SUB  =31=
        ENTX 1 Means month is April.
DONE    NOP
STOP    HLT
        END START