RDTIME: ;READS COMPUPRO SYSTEM SUPPORT CLOCK IF CLOCK ;SUPPLY YOUR OWN ROUTINE CLKCP EQU 50H+10 ;CLOCK COMMAND PORT ;DATESTR DB 'DD/MM/YY HH:MM:SS' ;DATE STRING FORMAT MOV BX,OFFSET DATESTR ;POINT TO DATE STRING MOV SI,OFFSET DIGTAB ;POINT TO DIGIT TABLE MOV CL,6 ;READ TWO COUNTER RTWO: MOV CH,2 ;READ ONE COUNTER ; ; READ A DIGIT FROM CLOCK CHIP ; ENTRY: SI => DIGIT TABLE DATA ENTRY ; BX => STRING POSITION ; EXIT: ASCII DIGIT LOADED IN STRING ; SI & BX INCREMENTED ; RONE: MOV AL,[SI] ;GET DIGIT TABLE DATA INC SI ;BUMP TO NEXT ENTRY ADD AL,10H ;SET READ BIT OUT CLKCP,AL ;OUTPUT DIGIT DATA CMP AL,15H ;CHECK FOR HOURS 10 DIGIT IN AL,CLKCP+1 ;READ BCD DIGIT FROM CLOCK JNE NOHOUR SUB AL,8 NOHOUR: ADD AL,'0' ;MAKE ASCII MOV [BX],AL INC BX ;POINT TO NEXT STR POSITION DEC CH JNZ RONE ;GET SECOND DIGIT INC BX ;BUMP OVER SEPERATOR CMP CL,4 JNE NOBUMP INC BX ;BIG BUMP OVER WHITE SPACE NOBUMP: DEC CL JNZ RTWO ;READ TWO MORE DIGITS RET ;RETURN TO CALLER DIGTAB DB 10,9,8,7,12,11,5,4,3,2,1,0 ;CLOCK DIGIT TABLE ENDIF ;CLOCK RET