.GLOBL IGETD ;SUBROUTINE TO CONVERT DATE WORD OF DIRECTORY TO 3 WORDS ;EACH CONTAINING ONE NUMBER ONLY DAY,MONTH(1,12),YEAR IGETD: TST (R5)+ ;REMOVE NUMBER OF ARGUMENTS MOV @(R5)+,R1 ;DATE WORD MOV (R5)+,R2 ;ADDRESS OF OUTPUT ARRAY MOV R1,STORED ;STORE DATE WORD BIC #177740,R1 ;CLEAR WORD EXCEPT FOR YEAR ADD #110,R1 ;ADD ON OFFSET TO CORRECT DATE MOV R1,-(SP) ;STACK CORRECT YEAR MOV STORED,R1 ;GET DATE WORD ASR R1 ASR R1 SWAB R1 ; BIC #177740,R1 ;CLEAR ALL BUT THE MONTH BITS MOV R1,-(SP) ;STACK MONTH MOV STORED,R1 ;GET DATE WORD AGAIN ASL R1 ASL R1 ASL R1 BIC #160377,R1 ;CLEAR ALL BUT SIGNIFICANT BITS SWAB R1 ;DAY IN LEAST SIG BYTE OF R1 MOV R1,(R2)+ ;OUTPUT DAY MOV (SP)+,(R2)+ ;OUTPUT MONTH MOV (SP)+,(R2)+ ;OUTPUT YEAR RTS PC STORED: .WORD 0 .END