home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 16
/
CD_ASCQ_16_0994.iso
/
maj
/
2242
/
cur.asm
next >
Wrap
Assembly Source File
|
1994-06-05
|
2KB
|
163 lines
; Entrée: Une date
; Sortie: La date dans JMA et le calendrier affiché
PROL_PROGRAM
<$1010> ; Valeurs sans importances obligatoires
XDUP ; pour la création des varaibles locales.
XDUP
{
@'' ; Noms vides pour la création de variables
@'' ; anonymes.
@''
} ; Création de 3 variables locales
XCREATEVL ; anonymes.
XDUP
XNOEVAL
'JMA' ; décomposition de la date en JJ MM AAAA
STO ; dans les 3 variables locales (1,2 at 3)
XDUP
XRIP
XR2SB
XSTOVL1 ; JJ
XRFP
%100
XR*
XDUP
XRIP
XR2SB
XSTOVL2 ; MM
XRFP
%10000
XR*
XSTOVL3 ; AAAA
'CAL' ; Objet graphique de base
NEWOB
'LMM' ; Détermination du jour de la semaine
%1.0119 ; En fonction du nombre de jours écoulés
'JMA' ; depuis le 1/1/1900
XRFP
XR++
DDAYS
XR2SB
<7>
XSB/
XDROP
XSB++
XCOMPGETN ; Choix de la semaine
XDROP
XOVER
<46>
<9>
XGROBREPL ; Incrustation de la semaine
'MOIS'
XRCLVL2
XCOMPGETN
XDROP
XSTR2GROB2
XOVER
<$2F>
<0>
XGROBREPL ; Incrustation du nom du mois
XRCLVL3
X2STR
XSTR2GROB2
XOVER
<$6B>
<0>
XGROBREPL ; Incrustation de l'année
<31> ; Détermination du nombre de jours
'JMA' ; du mois
XRFP
XR++
XDUP
%31
DATE+
XRFP
XR++
DDAYS
XR2SB
XSB-
<12>
XSB*
XDUP
<36>
XSB=
XNOEVAL
XSB++
XIFT
XDUP
<8>
XSWAP
XGROBCREAT ; Graphique pour effacer les jours
XPICK3 ; en trop sur le graphique de base
XROT
<83>
XSWAP
XSB-
<48>
XGROBREPL ; Effacement des jours en trop
XFALSE ; Préparation GXOR
XSWAP
GROB_BEGIN
XXXXXXXXXXX ; Graphique du curseur de jour
X_________X ; Graphic 11x7 tout noir
X_________X
X_________X
X_________X
X_________X
XXXXXXXXXXX
GROB_END
XRCLVL1 ; Calcul des coordonnées du curseur de
XSB-- ; jour
XDUP
<7>
XSB/
XDROP
<12>
XSB*
<47>
XSB+
XSWAP
<7>
XSB/
XSWAP
XDROP
<8>
XSB*
<16>
XSB+
XGOR ; Appel interne de GOR/GXOR
->LCD ; Affichage du tout
%3
FREEZE
XPURGEVL ; Effacement des variables locales.
EPILOG
; Rappels:
; Graphic REPL interne: (5:GROB1, 4:GROB2, 3:GROB1, 2:<x>, 1:<y>)
; GOR/GXOR interne: (5:TRUE/FALSE, 4:GROB2, 3:GROB1, 2:<x>, 1:<y>)
; Les calculs se font de préférences sur des System Binaries
; Les calculs sur les dates se font en réels (pour pouvoir utiliser
; les fonctions DDAYS et DATE+)