home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / maj / 2242 / cur.asm next >
Assembly Source File  |  1994-06-05  |  2KB  |  163 lines

  1. ; Entrée: Une date
  2. ; Sortie: La date dans JMA et le calendrier affiché
  3.  
  4.     PROL_PROGRAM
  5.     
  6.     <$1010>            ; Valeurs sans importances obligatoires
  7.     XDUP            ; pour la création des varaibles locales.
  8.     XDUP
  9.     {
  10.     @''            ; Noms vides pour la création de variables
  11.     @''            ; anonymes.
  12.     @''
  13.     }            ; Création de 3 variables locales
  14.     XCREATEVL        ; anonymes.
  15.  
  16.     XDUP
  17.     
  18.     XNOEVAL
  19.     'JMA'            ; décomposition de la date en JJ MM AAAA
  20.     STO            ; dans les 3 variables locales (1,2 at 3)
  21.     XDUP
  22.     XRIP
  23.     XR2SB
  24.     XSTOVL1            ; JJ
  25.     
  26.     XRFP
  27.     %100
  28.     XR*
  29.     XDUP
  30.     XRIP
  31.     XR2SB
  32.     XSTOVL2            ; MM
  33.         
  34.     XRFP
  35.     %10000    
  36.     XR*
  37.     XSTOVL3            ; AAAA
  38.     
  39.     'CAL'            ; Objet graphique de base
  40.     NEWOB
  41.     
  42.     'LMM'            ; Détermination du jour de la semaine
  43.     
  44.     %1.0119            ; En fonction du nombre de jours écoulés
  45.     'JMA'            ; depuis le 1/1/1900
  46.     XRFP
  47.     XR++
  48.     DDAYS
  49.     XR2SB
  50.     <7>
  51.     XSB/
  52.     XDROP
  53.     XSB++
  54.     
  55.     XCOMPGETN        ; Choix de la semaine
  56.     XDROP
  57.     XOVER
  58.     <46>
  59.     <9>
  60.     XGROBREPL        ; Incrustation de la semaine
  61.  
  62.     'MOIS'
  63.     XRCLVL2
  64.     XCOMPGETN
  65.     XDROP
  66.     XSTR2GROB2
  67.     XOVER
  68.     <$2F>
  69.     <0>
  70.     XGROBREPL        ; Incrustation du nom du mois
  71.  
  72.     XRCLVL3
  73.     X2STR
  74.     XSTR2GROB2
  75.     XOVER
  76.     <$6B>
  77.     <0>
  78.     XGROBREPL        ; Incrustation de l'année
  79.     
  80.     <31>            ; Détermination du nombre de jours
  81.     'JMA'            ; du mois
  82.     XRFP
  83.     XR++
  84.     XDUP
  85.     %31
  86.     DATE+
  87.     XRFP
  88.     XR++
  89.     DDAYS
  90.     XR2SB
  91.     XSB-
  92.     <12>
  93.     XSB*
  94.     XDUP
  95.     <36>
  96.     XSB=
  97.  
  98.     XNOEVAL
  99.     XSB++
  100.     XIFT
  101.         
  102.     XDUP
  103.     <8>
  104.     XSWAP
  105.     XGROBCREAT        ; Graphique pour effacer les jours
  106.     XPICK3            ; en trop sur le graphique de base
  107.     XROT
  108.     <83>
  109.     XSWAP
  110.     XSB-
  111.     <48>
  112.     XGROBREPL        ; Effacement des jours en trop
  113.  
  114.     XFALSE            ; Préparation GXOR
  115.     XSWAP
  116.  
  117.     GROB_BEGIN
  118.     XXXXXXXXXXX        ; Graphique du curseur de jour
  119.     X_________X        ; Graphic 11x7 tout noir
  120.     X_________X
  121.     X_________X
  122.     X_________X
  123.     X_________X
  124.     XXXXXXXXXXX
  125.     GROB_END
  126.  
  127.     XRCLVL1            ; Calcul des coordonnées du curseur de
  128.     XSB--            ; jour
  129.     XDUP
  130.     <7>
  131.     XSB/
  132.     XDROP
  133.     <12>
  134.     XSB*
  135.     <47>
  136.     XSB+
  137.     XSWAP
  138.     <7>
  139.     XSB/
  140.     XSWAP
  141.     XDROP
  142.     <8>
  143.     XSB*
  144.     <16>
  145.     XSB+
  146.     
  147.     XGOR            ; Appel interne de GOR/GXOR
  148.     
  149.     ->LCD            ; Affichage du tout
  150.     %3
  151.     FREEZE
  152.     
  153.     XPURGEVL        ; Effacement des variables locales.
  154.     
  155.     EPILOG
  156.  
  157. ; Rappels:
  158. ; Graphic REPL interne: (5:GROB1, 4:GROB2, 3:GROB1, 2:<x>, 1:<y>)
  159. ; GOR/GXOR interne:    (5:TRUE/FALSE, 4:GROB2, 3:GROB1, 2:<x>, 1:<y>)
  160. ; Les calculs se font de préférences sur des System Binaries
  161. ; Les calculs sur les dates se font en réels (pour pouvoir utiliser
  162. ; les fonctions DDAYS et DATE+)
  163.