-2,3 .MODULE RMONSJ,VERSION=2301,COMMENT=,GLOBAL=.RMNSJ -21 .SBTTL Post-Release Edit History ;+ ; ; SLP patches Copyright (c) 2000 Megan Gentry, All Rights Reserved ; ; This file contains source code modifications which were distributed ; through use of a Source Language Patch (SLP) file. These modifications ; are unofficial changes. They were not developed, reviewed or tested ; by, and have not been approved by Digital Equipment Corporation, Compaq ; Computer Corporation, or Mentec, Ltd, and they are not supported by ; these organizations. ; ; These modifications may only be used with the inclusion of both the ; above copyright notice and the full text of these comments. ; ; The author has used best efforts in the preparation of these ; modifications. These efforts include research, development and ; testing. The author makes no warranty of any kind, expressed or ; implied, with regard to these changes. The author shall not be liable ; in any event for incidental or consequential damages in connection ; with, or arising out of, the use or performance of these changes. Use ; of these modifications constitutes acceptance of these terms. ; ; The author is interested in any comments or reports of problems and ; will make a best effort at determining if a problem is a result of ; these modifications or if it exists in the distributed code. Please ; report any problems to ; ; (01) 11-Jan-2000 Megan Gentry ; o When the system is not built with rollover support, the day ; field of the system date word can become zero, which is ; patently invalid. This has been corrected. ; o The comparison for end of year (examining the month field) ; used too large a field for the month. This has been corrected. ; o Rollover from 2003 would have affected the day field. This has ; been corrected. ; o Code to support epoch rollover has been included. ; o The SDTTM code incorrectly rejected any dates with the high ; order epoch bit set. This has been corrected. A flag of ; "-1" is now required to indicate to the .SDTTM code that the ; system date should not be altered. ; ;- -577,577 CMP R1,#-1 ;Flag to not affect date? BEQ 1$ ;Yes, leave system date alone -2184,2184 25$: ADD #40,$DATE BIT #<31.*40>,$DATE ;Is the day field now zero? BEQ 25$ ;Yes, patently invalid, bump again... -2212,2217 LSTDAY: MOV @SP,-(SP) ;Stack the current date BIC #^C<15.*2000>,@SP ;Isolate the month field CMP (SP)+,#<13.*2000> ;Time for year-end roll-over? BLO 3$ BIC #<15.*2000>,@SP ;Reset the month field ADD #<1*2000>,@SP ; and bump it to January MOV @SP,-(SP) ;Stack the current date INC @SP ;Bump the year BIC #^C<37>,(SP)+ ;Isolate the year field and check it BEQ 29$ ;We're into a new epoch... INC @SP ;Same epoch, new year... BR 3$ 29$: BIC #37,@SP ;Reset the year field ADD #<1*40000>,@SP ; and move us into the next epoch /