.TITLE DTSTOR -- STORE DATE AND TIME FOR ACCOUNTING ; ; SUBROUTINE TO STORE THE DATE AND TIME IN TWO CONSECUTIVE WORDS ; FOR ACCOUNTING PURPOSES. DATE IS STORED IN THE FIRST WORD PACKED ; AS FOLLOWS: ; BITS 15-9 - YEAR SINCE 1900 ; 8-5 - MONTH ; 4-0 - DAY ; ; TIME IS STORED IN THE NEXT WORD AS MINUTE OF THE DAY. ; ; ARGUMENTS: ; R1 - ADDRESS OF 8 WORD "GTIM$" BUFFER ; R2 - ADDRESS OF 2 WORD BUFFER TO STORE PACKED ; DATE AND TIME (RETURNED INCREMENTED BY 1) ; ; CALLER MUST CALL "GTIM$" BEFORE CALLING ; ; "TISTOR" IS AN ENTRY TO STORE JUST TIME. ; ; ARGUMENTS: ; R1 - ADDRESS OF 8 WORD "GTIM$" BUFFER ; R2 - ADDRESS OF WORD TO STORE TIME ; DTSTOR:: MOV R3,-(SP) ; SAVE REGISTERS MOV R4,-(SP) ; ; P A C K D A T E ; MOV G.TIYR(R1),R4 ; YEAR TO R4 ASH #11,R4 ; SHIFT YEARR TO HIGH ORDER BITS MOV G.TIMO(R1),R3 ; MONTH TO R3 ASH #5,R3 ; SHIFT MONTH TO BITS 8-5 BIS R3,R4 ; LOGICALLY ADD MONTH TO R4 BIS G.TIDA(R1),R4 ; LOGICALLY ADD DAY TO R4 MOV R4,(R2)+ ; STORE PACKED DATE MOV (SP)+,R4 ; RESTORE R4 BR STOTI ; GO STORE TIME ; ; P A C K T I M E ; TISTOR:: MOV R3,-(SP) ; SAVE R3 STOTI: MOV G.TIHR(R1),R3 ; GET HOURS MUL #60.,R3 ; COMPUTE MINUTES ADD G.TIMI(R1),R3 ; ADD MINUTES MOV R3,(R2) ; STORE TIME ; MOV (SP)+,R3 ; RESTORE R3 RETURN ; .END