;-*- Mode: MIDAS -*- TITLE DATSRV ; Net daytime server PORT==13. ; Official TCP port for Daytime Server. A=1 B=2 C=3 D=4 E=5 NOW=6 OC=7 U1=10 U2=11 U3=12 U4=13 P=17 NETO==1 NETI==2 $$OTIM==1 ; include date and time formatting output LOC 42 JSR TSINT LOC 100 PAT: BLOCK 40 PDL: BLOCK 40 DEBUG: 0 .INSRT SYSENG;DATIME .INSRT KSC;MACROS .INSRT KSC;OUT TSINT: 0 ; Interrupt handler - for fatal conditions 0 JSR AUTPSY ; Any interrupt is cause for death. GO: MOVEI P,PDL ; Set up stack SYSCAL TCPOPN,[ MOVEI NETI MOVEI NETO MOVEI PORT [-1] [-1]] JSR AUTPSY ; Failed (should timeout!) MOVEI B,3*30. ; Try for 30 sec RETRY: MOVEI A,10. .SLEEP A, SYSCAL WHYINT,[ MOVEI NETO MOVEM A MOVEM A] .LOSE %LSSYS CAIE A,%NSOPN CAIN A,%NSRFN CAIA SOJG B,RETRY CAIG B, JSR AUTPSY ; Timed out... SERVE: PUSHJ P,OUT"UTMGTS MOVE NOW,U3 OUT(,CH(NETO),OPEN(UC$IOT)) OUT(,TIM(DOW3,NOW),SP,TIM(MON,NOW),SP) MOVE U3,NOW MOVEI U1,OUT"OXTDAY ; %%% should be TIM(DAY) in OUT PUSHJ P,OUT"OXTXS OUT(,SP,TIM(HMS,NOW),SP) MOVE U3,NOW MOVEI U1,OUT"OXTYR ; %%% should be TIM(YEAR) in OUT PUSHJ P,OUT"OXTXS OUT(,CRLF) .NETS NETO, ; Force the output. .CLOSE NETO, ; Disconnect. .CLOSE NETI, ; Disconnect. CAIA AUTPSY: 0 SKIPE DEBUG .VALUE .LOGOUT ; All done END GO