.TITLE TCUSET ;PROGRAM TO SET TIME INTO TCU100 CLOCK ; .MCALL DIR$,GTIM$,EXIT$S,MRKT$,WTSE$ ; ; DEFINE FIRST REGISTER ADDRESS OF TCU100 TCUADR=160770 ; ; START: DIR$ #GETTIM ;GET SYSTEM TIME MOV TIMBUF+G.TIMO,R0 ;PUT MONTH IN R0 SWAB R0 ;NOW IN UPPER BYTE BISB TIMBUF+G.TIDA,R0 ;PUT DAYS IN LOWER BYTE BIS #100,R0 ;SET BIT THAT ENABLES CHANGING TCU100 DATE MOV R0,TCUADR ;SET THE DATE 1$: DIR$ #MARK DIR$ #WAIT BIT #200,TCUADR+6 ;IS HE DONE SETTING ? BEQ 1$ ;BR IF NOT 11$: DIR$ #GETTIM ;GET TIME AGAIN TST TIMBUF+G.TISC ;IS IT 0 SECONDS BEQ 12$ ;MUST RESET TIME AT 0 SECONDS DIR$ #MARK ;DO 1 SECOND WAIT DIR$ #WAIT BR 11$ ;AND TRY AGAIN 12$: MOV TIMBUF+G.TIHR,R0 ;DO SAME FOR HOURS & MINUTES SWAB R0 BISB TIMBUF+G.TIMI,R0 BIS #40100,R0 MOV R0,TCUADR+2 2$: DIR$ #MARK ;DO ONE SECOND WAIT AGAIN DIR$ #WAIT BIT #200,TCUADR+6 BEQ 2$ EXIT$S ; ; ;DATA AREAS GETTIM: GTIM$ TIMBUF TIMBUF: .BLKW 8. MARK: MRKT$ 1,1,2 ;WAIT ONE SECONDS FOR HIM TO SET WAIT: WTSE$ 1 .END START