File: DATE.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text) 


RALF V50A   17-JUL-88    PAGE 1

            /CALL DATE(IM,ID,IY) OS8 DATE FUNCTION
            /
            /
            / VERSION 50B 17-07-2020 WVDM
            /
            /
                    SECT8   DATE
00000 1030          JA      #ST
00001 0066  
                    EXTERN  #DATE
                    EXTERN  #EXIT
            #XR,    ORG     .+10
00012 0401          TEXT    +DATE  +
00013 2405  
00014 4040  
            #RET,
            #BASE,  ORG     .+3
            MONTH,  ORG     .+3
            DAY,    ORG     .+3
            YEAR,   ORG     .+3
            TEMP,   ORG     .+3
00034 0000  DATADR, 0
00035 1037          JA      #DATE-1         /ADDRESS OF FIV DATE WORD
00036 7777  
                    ORG     10*3+#BASE
00045 0040          FNOP
00046 1030          JA      #RET
00047 0015  
00050 0000          0
00051 1030  DRTN,   JA      .
00052 0051  
                    BASE    0
00053 0000  NEWDAT, 0
00054 6201          CDF 0
00055 1664          TAD%    BIPCCL
00056 0265          AND     BITMSK
00057 7112          CLL RTR
00060 7012          RTR
00061 3366          DCA DATEMP
00062 6203          CDF CIF 0
00063 5653          JMP% NEWDAT
00064 7777  BIPCCL, 7777
00065 1600  BITMSK, 1600            /WAS 600
00066 0006  #ST,    STARTD
00067 0210          0210
00070 6400          FSTA    DRTN
00071 0051  
00072 0200          0200
                    BASE    #BASE
00073 1100          SETX    #XR
00074 0002  
00075 1110          SETB    #BASE
00076 0015  
00077 0101          LDX     0,1
00100 0000  
00101 6200          FSTA    #BASE
RALF V50A   17-JUL-88    PAGE 1-1

00102 0710          FLDA%   #BASE,1+
00103 6201          FSTA    MONTH
00104 0710          FLDA%   #BASE,1+
00105 6202          FSTA    DAY
00106 0710          FLDA%   #BASE,1+
00107 6203          FSTA    YEAR
00110 0605          FLDA%   DATADR          /GET THE PS-8 DATE WORD
00111 6204          FSTA    TEMP            /SAVE IT
00112 0002          FCLA
00113 6400          FSTA    TEMP,0          /ZERO EXPONENT AND HIGH HALF OF MANTISSA
00114 0031  
00115 0101          LDX     10,1            /SHIFT COUNT
00116 0010  
00117 0204          FLDA    TEMP            /GET IT BACK
00120 0011          ALN     1               /ISOLATE THE MONTH
00121 0021          ATX     1               /SAVE THE MONTH
00122 0102          LDX     -4,2            /DAY SHIFT COUNT
00123 7774  
00124 0204          FLDA    TEMP            /GET BACK THE DATE
00125 0012          ALN     2               /SHIFT MONTH BITS INTO
                                            /HIGH HALF OF MANTISSA
00126 6204          FSTA    TEMP            /SAVE THIS
00127 0002          FCLA
00130 6400          FSTA    TEMP,0          /ISOLATING DAY/YEAR BITS
00131 0031  
00132 0204          FLDA    TEMP            /GET THEM BACK
00133 0102          LDX     7,2             /NOW ISOLATE DAY
00134 0007  
00135 0012          ALN     2
00136 0022          ATX     2               /AND SAVE IT IN 2
00137 0204          FLDA    TEMP            /GET DAY/YEAR BITS
00140 0103          LDX     -5,3            /PREPARE TO REMOVE DAY BITS
00141 7773  
00142 0013          ALN     3               /BY SHIFTING THEM INTO HIGH HALF OF MANTISSA
00143 6204          FSTA    TEMP            /SAVE THEM
00144 0002          FCLA
00145 6400          FSTA    TEMP,0          /ZERO DAY BITS
00146 0031  
00147 0204          FLDA    TEMP            /RESTORE YEAR BITS
00150 0103          LDX     11,3            /SHIFT BACK
00151 0011  
00152 0013          ALN     3
00153 0023          ATX     3               /PUT THEM INTO XR 3
00154 4000          TRAP4   NEWDAT
00155 0053  
00156 0005          STARTF                  /RE-ENTER F MODE
00157 0031          XTA     1               /GET MONTH
00160 6601          FSTA%   MONTH           /RETURN IN ARG
00161 0032          XTA     2               /NOW DAY
00162 6602          FSTA%   DAY
00163 0113          ADDX    3662,3          /MAKE IT + 1970
00164 3662  
00165 0113          ADDX    0,3
00166 0000  
                    DATEMP=.-1              /*K*
00167 0033          XTA     3               /NOW YEAR
RALF V50A   17-JUL-88    PAGE 1-2

00170 6603          FSTA%   YEAR
00171 1030          JA      DRTN            /RETURN
00172 0051  
RALF V50A   17-JUL-88    PAGE 1-3

NO ERRORS 
17 SYMBOLS, NO ABS REFS 

 #      C 00000   #BASE    00015   #DATE  X 00000   #EXIT  X 00000  
 #MAIN  S 00000   #RET     00015   #ST      00066   #XR      00002  
 BIPCCL   00064   BITMSK   00065   DATADR   00034   DATE   8 00173  
 DATEMP   00166   DAY      00023   DRTN     00051   MONTH    00020  
 NEWDAT   00053   TEMP     00031   YEAR     00026