Trailing-Edge
-
PDP-10 Archives
-
BB-R595B-SM_11-9-85
-
mcb/utilities/eddat.lst
There is 1 other file named eddat.lst in the archive. Click here to see a list.
12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 1
30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (1)
; 0001 0
; 0002 0 MODULE EDDAT ( !Date and time conversion
; 0003 0 IDENT = '001000',
; 0004 0 LANGUAGE (BLISS16, BLISS36) %BLISS36 (, ENTRY ($DAT, $TIM))
; 0005 0 ) =
; 0006 1 BEGIN
; 0007 1 !
; 0008 1 ! COPYRIGHT (c) 1980, 1981, 1982
; 0009 1 ! DIGITAL EQUIPMENT CORPORATION
; 0010 1 ! Maynard, Massachusetts
; 0011 1 !
; 0012 1 ! This software is furnished under a license and may be used
; 0013 1 ! and copied only in accordance with the terms of such license
; 0014 1 ! and with the inclusion of the above copyright notice. This
; 0015 1 ! software or any other copies thereof may not be provided or
; 0016 1 ! otherwise made available to any other person. No title to
; 0017 1 ! and ownership of the software is hereby transferred.
; 0018 1 !
; 0019 1 ! The information in this software is subject to change
; 0020 1 ! without notice and should not be construed as a commitment
; 0021 1 ! by DIGITAL EQUIPMENT CORPORATION.
; 0022 1 !
; 0023 1 ! DIGITAL assumes no responsibility for the use or reliability
; 0024 1 ! of its software on equipment which is not supplied by
; 0025 1 ! DIGITAL.
; 0026 1 !
; 0027 1
; 0028 1 !++
; 0029 1 ! FACILITY: SYSTEM LIBRARY
; 0030 1 !
; 0031 1 ! ABSTRACT:
; 0032 1 !
; 0033 1 ! This module contains conversion routines to take RSX11M - form
; 0034 1 ! time and date blocks and output ASCII representations.
; 0035 1 !
; 0036 1 ! ENVIRONMENT: ANY
; 0037 1 !
; 0038 1 ! AUTHOR: ALAN D. PECKHAM , CREATION DATE: 8-SEP-78
; 0039 1 !
; 0040 1 ! MODIFIED BY:
; 0041 1 !
; 0042 1 ! , : VERSION
; 0043 1 ! 01 -
; 0044 1 !--
; 0045 1
; 0046 1 !<BLF/PAGE>
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 2
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (2)
; 0047 1 !
; 0048 1 ! TABLE OF CONTENTS:
; 0049 1 !
; 0050 1
; 0051 1 FORWARD ROUTINE
; 0052 1 $DAT, !Convert date into ASCII.
; 0053 1 $TIM; !Convert time into ASCII.
; 0054 1
; 0055 1 !
; 0056 1 ! INCLUDE FILES:
; 0057 1 !
; 0058 1 !
; 0059 1 ! MACROS:
; 0060 1 !
; 0061 1 !
; 0062 1 ! EQUATED SYMBOLS:
; 0063 1 !
; 0064 1 !
; 0065 1 ! OWN STORAGE:
; 0066 1 !
; 0067 1 !
; 0068 1 ! EXTERNAL REFERENCES:
; 0069 1 !
; 0070 1
; 0071 1 EXTERNAL ROUTINE
; 0072 1 $CBDAT; !Convert binary to decimal.
; 0073 1
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 3
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (3)
; 0074 1 GLOBAL ROUTINE $DAT (BUF_PTR_ADR, DATE_BLOCK) =
; 0075 1
; 0076 1 !++
; 0077 1 ! FUNCTIONAL DESCRIPTION:
; 0078 1 !
; 0079 1 !
; 0080 1 ! FORMAL PARAMETERS:
; 0081 1 !
; 0082 1 ! ..BUF_PTR_ADR !Pointer to buffer to receive text.
; 0083 1 ! .DATE_BLOCK[0] !Year
; 0084 1 ! .DATE_BLOCK[1] !Month (1-12)
; 0085 1 ! .DATE_BLOCK[2] !Day (1-31)
; 0086 1 !
; 0087 1 ! IMPLICIT INPUTS:
; 0088 1 !
; 0089 1 ! NONE
; 0090 1 !
; 0091 1 ! IMPLICIT OUTPUTS:
; 0092 1 !
; 0093 1 ! The buffer pointer ..BUF_PTR_ADR is updated to point past
; 0094 1 ! the information inserted.
; 0095 1 !
; 0096 1 ! ROUTINE VALUE:
; 0097 1 !
; 0098 1 ! A count of the number of characters inserted is returned.
; 0099 1 !
; 0100 1 ! SIDE EFFECTS:
; 0101 1 !
; 0102 1 ! NONE
; 0103 1 !
; 0104 1 !--
; 0105 1
; 0106 2 BEGIN
; 0107 2
; 0108 2 MAP
; 0109 2 DATE_BLOCK : REF VECTOR [3];
; 0110 2
; 0111 2 LOCAL
; 0112 2 BUF_PTR_INI;
; 0113 2
; 0114 2 BIND
; 0115 2 MONTH = UPLIT (CH$PTR (UPLIT ('JAN')), CH$PTR (UPLIT ('FEB')),
; 0116 2 CH$PTR(UPLIT('MAR')),CH$PTR(UPLIT('APR')),CH$PTR(UPLIT('MAY')),
; 0117 2 CH$PTR(UPLIT('JUN')),CH$PTR(UPLIT('JUL')),CH$PTR(UPLIT('AUG')),
; 0118 2 CH$PTR(UPLIT('SEP')),CH$PTR(UPLIT('OCT')),CH$PTR(UPLIT('NOV')),
; 0119 2 CH$PTR(UPLIT('DEC')) ) : VECTOR [12];
; 0120 2
; 0121 2 BUF_PTR_INI = ..BUF_PTR_ADR;
; 0122 2 $CBDAT (.BUF_PTR_ADR, .DATE_BLOCK [2], 0);
; 0123 2 CH$WCHAR_A (%C'-', .BUF_PTR_ADR);
; 0124 2 .BUF_PTR_ADR = CH$MOVE (3, .MONTH [.DATE_BLOCK [1] - 1], ..BUF_PTR_ADR);
; 0125 2 CH$WCHAR_A (%C'-', .BUF_PTR_ADR);
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 4
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (3)
; 0126 2 $CBDAT (.BUF_PTR_ADR, .DATE_BLOCK [0], 0);
; 0127 2 CH$DIFF (..BUF_PTR_ADR, .BUF_PTR_INI)
; 0128 1 END; !End of $DAT
TITLE EDDAT
TWOSEG
ENTRY $DAT, $TIM
.REQUEST SYS:B362LB.REL
RELOC 400000 ; 400000'
P.AAB: BYTE (7)"J","A","N",000,000 ; JAN 400000' 112 101 116 000 000
P.AAC: BYTE (7)"F","E","B",000,000 ; FEB 400001' 106 105 102 000 000
P.AAD: BYTE (7)"M","A","R",000,000 ; MAR 400002' 115 101 122 000 000
P.AAE: BYTE (7)"A","P","R",000,000 ; APR 400003' 101 120 122 000 000
P.AAF: BYTE (7)"M","A","Y",000,000 ; MAY 400004' 115 101 131 000 000
P.AAG: BYTE (7)"J","U","N",000,000 ; JUN 400005' 112 125 116 000 000
P.AAH: BYTE (7)"J","U","L",000,000 ; JUL 400006' 112 125 114 000 000
P.AAI: BYTE (7)"A","U","G",000,000 ; AUG 400007' 101 125 107 000 000
P.AAJ: BYTE (7)"S","E","P",000,000 ; SEP 400010' 123 105 120 000 000
P.AAK: BYTE (7)"O","C","T",000,000 ; OCT 400011' 117 103 124 000 000
P.AAL: BYTE (7)"N","O","V",000,000 ; NOV 400012' 116 117 126 000 000
P.AAM: BYTE (7)"D","E","C",000,000 ; DEC 400013' 104 105 103 000 000
P.AAA: POINT 7,P.AAB-1,34 ; 400014' 01 07 0 00 377777'
POINT 7,P.AAC-1,34 ; 400015' 01 07 0 00 400000'
POINT 7,P.AAD-1,34 ; 400016' 01 07 0 00 400001'
POINT 7,P.AAE-1,34 ; 400017' 01 07 0 00 400002'
POINT 7,P.AAF-1,34 ; 400020' 01 07 0 00 400003'
POINT 7,P.AAG-1,34 ; 400021' 01 07 0 00 400004'
POINT 7,P.AAH-1,34 ; 400022' 01 07 0 00 400005'
POINT 7,P.AAI-1,34 ; 400023' 01 07 0 00 400006'
POINT 7,P.AAJ-1,34 ; 400024' 01 07 0 00 400007'
POINT 7,P.AAK-1,34 ; 400025' 01 07 0 00 400010'
POINT 7,P.AAL-1,34 ; 400026' 01 07 0 00 400011'
POINT 7,P.AAM-1,34 ; 400027' 01 07 0 00 400012'
EXTERN $CBDAT
MONTH= P.AAA ; 000000 400014'
AC0= 0
AC1= 1
AC2= 2
AC3= 3
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 5
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (3)
AC4= 4
AC5= 5
AC6= 6
AC7= 7
AC10= 10
AC11= 11
AC12= 12
AC13= 13
AC14= 14
FP= 15
AC16= 16
SP= 17
$DAT:: PUSH SP,AC14 ; SP,AC14 400030' 261 17 0 00 000014 0074
PUSH SP,AC16 ; SP,AC16 400031' 261 17 0 00 000016
MOVE AC16,-4(SP) ; AC16,BUF_PTR_ADR 400032' 200 16 0 17 777774 0121
MOVE AC14,0(AC16) ; BUF_PTR_INI,0(AC16) 400033' 200 14 0 16 000000
PUSH SP,AC16 ; SP,AC16 400034' 261 17 0 00 000016 0122
MOVE AC1,-4(SP) ; AC1,DATE_BLOCK 400035' 200 01 0 17 777774
PUSH SP,2(AC1) ; SP,2(AC1) 400036' 261 17 0 01 000002
PUSH SP,C.2 ; SP,[0] 400037' 261 17 0 00 400075'
PUSHJ SP,$CBDAT ; SP,$CBDAT 400040' 260 17 0 00 000000*
MOVEI AC1,55 ; AC1,55 400041' 201 01 0 00 000055 0123
IDPB AC1,0(AC16) ; AC1,0(AC16) 400042' 136 01 0 16 000000
MOVE AC16,-7(SP) ; AC16,BUF_PTR_ADR 400043' 200 16 0 17 777771 0124
MOVE AC1,-6(SP) ; AC1,DATE_BLOCK 400044' 200 01 0 17 777772
MOVE AC3,1(AC1) ; AC3,1(AC1) 400045' 200 03 0 01 000001
MOVEI AC1,3 ; AC1,3 400046' 201 01 0 00 000003
MOVE AC2,MONTH-1(AC3) ; AC2,MONTH-1(AC3) 400047' 200 02 0 03 400013'
MOVEI AC4,3 ; AC4,3 400050' 201 04 0 00 000003
MOVE AC5,0(AC16) ; AC5,0(AC16) 400051' 200 05 0 16 000000
EXTEND AC1,C.1 ; AC1,[MOVSLJ ] 400052' 123 01 0 00 400074'
JFCL ; 400053' 255 00 0 00 000000
MOVEM AC5,0(AC16) ; AC5,0(AC16) 400054' 202 05 0 16 000000
MOVEI AC1,55 ; AC1,55 400055' 201 01 0 00 000055 0125
IDPB AC1,0(AC16) ; AC1,0(AC16) 400056' 136 01 0 16 000000
MOVE AC16,-7(SP) ; AC16,BUF_PTR_ADR 400057' 200 16 0 17 777771 0126
PUSH SP,AC16 ; SP,AC16 400060' 261 17 0 00 000016
MOVE AC1,-7(SP) ; AC1,DATE_BLOCK 400061' 200 01 0 17 777771
PUSH SP,0(AC1) ; SP,0(AC1) 400062' 261 17 0 01 000000
PUSH SP,C.2 ; SP,[0] 400063' 261 17 0 00 400075'
PUSHJ SP,$CBDAT ; SP,$CBDAT 400064' 260 17 0 00 000000*
PUSH SP,0(AC16) ; SP,0(AC16) 400065' 261 17 0 16 000000 0127
PUSH SP,AC14 ; SP,BUF_PTR_INI 400066' 261 17 0 00 000014
PUSHJ SP,CHDIF% ; SP,CHDIF% 400067' 260 17 0 00 000000*
ADJSP SP,-10 ; SP,-10 400070' 105 17 0 00 777770
POP SP,AC16 ; SP,AC16 400071' 262 17 0 00 000016 0074
POP SP,AC14 ; SP,AC14 400072' 262 17 0 00 000014
POPJ SP, ; SP, 400073' 263 17 0 00 000000
C.1: MOVSLJ ; 400074' 016 00 0 00 000000
C.2: EXP 0 ; 0 400075' 000000 000000
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 6
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (3)
; Routine Size: 38 words
; 0129 1
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 7
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (4)
; 0130 1 GLOBAL ROUTINE $TIM (BUF_PTR_ADR, TIME_BLOCK, COUNT) =
; 0131 1
; 0132 1 !++
; 0133 1 ! FUNCTIONAL DESCRIPTION:
; 0134 1 !
; 0135 1 !
; 0136 1 ! FORMAL PARAMETERS:
; 0137 1 !
; 0138 1 ! ..BUF_PTR_ADR !Pointer to buffer to receive text.
; 0139 1 ! .TIME_BLOCK[0] !Hour in day
; 0140 1 ! .TIME_BLOCK[1] !Minute in hour
; 0141 1 ! .TIME_BLOCK[2] !Second in minute
; 0142 1 ! .TIME_BLOCK[3] !Tick in second
; 0143 1 ! .TIME_BLOCK[4] !Number of ticks in a second
; 0144 1 ! .COUNT !Indicates the format to use:
; 0145 1 ! !0 or 1 - HH
; 0146 1 ! ! 2 - HH:MM
; 0147 1 ! ! 3 - HH:MM:SS
; 0148 1 ! !4 or 5 - HH:MM:SS.S
; 0149 1 !
; 0150 1 ! IMPLICIT INPUTS:
; 0151 1 !
; 0152 1 ! NONE
; 0153 1 !
; 0154 1 ! IMPLICIT OUTPUTS:
; 0155 1 !
; 0156 1 ! The buffer pointer ..BUF_PTR_ADR is updated to point past
; 0157 1 ! the information inserted.
; 0158 1 !
; 0159 1 ! ROUTINE VALUE:
; 0160 1 !
; 0161 1 ! A count of the number of characters inserted is returned.
; 0162 1 !
; 0163 1 ! SIDE EFFECTS:
; 0164 1 !
; 0165 1 ! NONE
; 0166 1 !
; 0167 1 !--
; 0168 1
; 0169 2 BEGIN
; 0170 2
; 0171 2 MAP
; 0172 2 TIME_BLOCK : REF VECTOR [5];
; 0173 2
; 0174 2 LOCAL
; 0175 2 BUF_PTR_INI;
; 0176 2
; 0177 2 BUF_PTR_INI = ...BUF_PTR_ADR;
; 0178 2
; 0179 2 SELECT .COUNT OF
; 0180 2 SET
; 0181 2
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 8
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (4)
; 0182 2 [0 TO 5] :
; 0183 2 $CBDAT (.BUF_PTR_ADR, .TIME_BLOCK [0], 1);
; 0184 2
; 0185 2 [2 TO 5] :
; 0186 3 BEGIN
; 0187 3 CH$WCHAR_A (%C':', .BUF_PTR_ADR);
; 0188 3 $CBDAT (.BUF_PTR_ADR, .TIME_BLOCK [1], 1)
; 0189 2 END;
; 0190 2
; 0191 2 [3 TO 5] :
; 0192 3 BEGIN
; 0193 3 CH$WCHAR_A (%C':', .BUF_PTR_ADR);
; 0194 3 $CBDAT (.BUF_PTR_ADR, .TIME_BLOCK [2], 1)
; 0195 2 END;
; 0196 2
; 0197 2 [4 TO 5] :
; 0198 3 BEGIN
; 0199 3 CH$WCHAR_A (%C'.', .BUF_PTR_ADR);
; 0200 3 CH$WCHAR_A (%C'0', .BUF_PTR_ADR)
; 0201 2 END;
; 0202 2 TES;
; 0203 2
; 0204 2 CH$DIFF (..BUF_PTR_ADR, .BUF_PTR_INI)
; 0205 1 END; !End of $TIM
$TIM:: PUSH SP,AC13 ; SP,AC13 400076' 261 17 0 00 000013 0130
PUSH SP,AC14 ; SP,AC14 400077' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400100' 261 17 0 00 000016
MOVE AC16,-6(SP) ; AC16,BUF_PTR_ADR 400101' 200 16 0 17 777772 0177
MOVE AC1,0(AC16) ; AC1,0(AC16) 400102' 200 01 0 16 000000
MOVE AC13,0(AC1) ; BUF_PTR_INI,0(AC1) 400103' 200 13 0 01 000000
MOVE AC14,-4(SP) ; AC14,COUNT 400104' 200 14 0 17 777774 0179
JUMPL AC14,L.1 ; AC14,L.1 400105' 321 14 0 00 400116' 0182
CAILE AC14,5 ; AC14,5 400106' 303 14 0 00 000005
JRST L.1 ; L.1 400107' 254 00 0 00 400116'
PUSH SP,AC16 ; SP,AC16 400110' 261 17 0 00 000016 0183
MOVE AC1,-6(SP) ; AC1,TIME_BLOCK 400111' 200 01 0 17 777772
PUSH SP,0(AC1) ; SP,0(AC1) 400112' 261 17 0 01 000000
PUSH SP,C.3 ; SP,[1] 400113' 261 17 0 00 400167'
PUSHJ SP,$CBDAT ; SP,$CBDAT 400114' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 400115' 105 17 0 00 777775
L.1: CAIL AC14,2 ; AC14,2 400116' 301 14 0 00 000002 0185
CAILE AC14,5 ; AC14,5 400117' 303 14 0 00 000005
JRST L.2 ; L.2 400120' 254 00 0 00 400131'
MOVEI AC1,72 ; AC1,72 400121' 201 01 0 00 000072 0187
IDPB AC1,0(AC16) ; AC1,0(AC16) 400122' 136 01 0 16 000000
PUSH SP,-6(SP) ; SP,BUF_PTR_ADR 400123' 261 17 0 17 777772 0188
MOVE AC1,-6(SP) ; AC1,TIME_BLOCK 400124' 200 01 0 17 777772
PUSH SP,1(AC1) ; SP,1(AC1) 400125' 261 17 0 01 000001
PUSH SP,C.3 ; SP,[1] 400126' 261 17 0 00 400167'
PUSHJ SP,$CBDAT ; SP,$CBDAT 400127' 260 17 0 00 000000*
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 9
001000 30-Dec-1982 17:29:23 DNET61:<DECNET.UTILITIES>EDDAT.BLI.1 (4)
ADJSP SP,-3 ; SP,-3 400130' 105 17 0 00 777775 0186
L.2: CAIL AC14,3 ; AC14,3 400131' 301 14 0 00 000003 0191
CAILE AC14,5 ; AC14,5 400132' 303 14 0 00 000005
JRST L.3 ; L.3 400133' 254 00 0 00 400145'
MOVEI AC2,72 ; AC2,72 400134' 201 02 0 00 000072 0193
MOVE AC1,-6(SP) ; AC1,BUF_PTR_ADR 400135' 200 01 0 17 777772
IDPB AC2,0(AC1) ; AC2,0(AC1) 400136' 136 02 0 01 000000
PUSH SP,-6(SP) ; SP,BUF_PTR_ADR 400137' 261 17 0 17 777772 0194
MOVE AC1,-6(SP) ; AC1,TIME_BLOCK 400140' 200 01 0 17 777772
PUSH SP,2(AC1) ; SP,2(AC1) 400141' 261 17 0 01 000002
PUSH SP,C.3 ; SP,[1] 400142' 261 17 0 00 400167'
PUSHJ SP,$CBDAT ; SP,$CBDAT 400143' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 400144' 105 17 0 00 777775 0192
L.3: CAIL AC14,4 ; AC14,4 400145' 301 14 0 00 000004 0197
CAILE AC14,5 ; AC14,5 400146' 303 14 0 00 000005
JRST L.4 ; L.4 400147' 254 00 0 00 400156'
MOVEI AC2,56 ; AC2,56 400150' 201 02 0 00 000056 0199
MOVE AC1,-6(SP) ; AC1,BUF_PTR_ADR 400151' 200 01 0 17 777772
IDPB AC2,0(AC1) ; AC2,0(AC1) 400152' 136 02 0 01 000000
MOVEI AC2,60 ; AC2,60 400153' 201 02 0 00 000060 0200
MOVE AC1,-6(SP) ; AC1,BUF_PTR_ADR 400154' 200 01 0 17 777772
IDPB AC2,0(AC1) ; AC2,0(AC1) 400155' 136 02 0 01 000000
L.4: MOVE AC1,-6(SP) ; AC1,BUF_PTR_ADR 400156' 200 01 0 17 777772 0204
PUSH SP,0(AC1) ; SP,0(AC1) 400157' 261 17 0 01 000000
PUSH SP,AC13 ; SP,BUF_PTR_INI 400160' 261 17 0 00 000013
PUSHJ SP,CHDIF% ; SP,CHDIF% 400161' 260 17 0 00 000000*
ADJSP SP,-2 ; SP,-2 400162' 105 17 0 00 777776
POP SP,AC16 ; SP,AC16 400163' 262 17 0 00 000016 0130
POP SP,AC14 ; SP,AC14 400164' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400165' 262 17 0 00 000013
POPJ SP, ; SP, 400166' 263 17 0 00 000000
C.3: EXP 1 ; 1 400167' 000000 000001
; Routine Size: 58 words
; 0206 1
; 0207 1 END !End of module
; 0208 1
; 0209 0 ELUDOM
; Low segment length: 0 words
; High segment length: 120 words
; Size: 96 code + 24 data words
EDDAT 12-Apr-1985 07:09:17 TOPS-20 Bliss-36 4A(225) Page 10
001000
; Run Time: 00:01.6
; Elapsed Time: 00:02.0
; Lines/CPU Min: 7702
; Lexemes/CPU-Min: 25208
; Memory Used: 8 pages
; Compilation Complete