;DEBUG equ 1 TimePort equ 13 ;Port of the "daytime" service include "SSMac.h" dbuf Date,dat_SIZEOF dbuf DateStr,10 dbuf TimeStr,9 start get.l Arg_Host,a0 call bsdsocket,GetHostByName moveq #2,d2 tst.l d0 beq NetErrorVar move.l d0,a1 addq #8,a1 ;h_(name|aliases) move.l (a1)+,d0 ;h_addrtype subq.l #2,d0 ;PF_INET dtl ,a0 bne.s ErrorSSNE1 move.l (a1)+,d0 ;h_length subq.l #4,d0 ErrorSSNE1 bne ErrorSS move.l (a1),a1 ;h_addr_list move.l (a1),a1 move.l (a1),d3 ;Address moveq #2,d0 ;AF_INET moveq #1,d1 ;SOCK_STREAM moveq #0,d2 ;?Why??? call bsdsocket,Socket move.l d0,d4 bmi.s NetErrorNE clr.l -(sp) ;sin_zero clr.l -(sp) ;sin_zero push d3 ;sin_addr.s_addr move.l #(4<<24)!(2<<16)!TimePort,-(sp) ;sin_(len|family|port) move.l sp,a0 ;sockaddr_in moveq #16,d1 ;sizeof(sockaddr_in) call Connect tst.l d0 NetErrorNE bne NetError lea -24(sp),sp move.l sp,a0 moveq #24,d1 moveq #0,d2 move.l d4,d0 call Recv move.l d0,d2 addq.l #1,d0 beq NetError moveq #24,d1 dtl ,a0 cmp.l d1,d0 bcs.s ErrorSSNE1 lea 8(sp),a2 geta DateStr,a1 put.l a1,Date+dat_StrDate move.w (a2),(a1)+ move.l -(a2),d0 moveq #'-',d1 move.b d1,d0 ror.l #8,d0 move.l d0,(a1)+ move.b d1,(a1)+ lea 18(a2),a2 move.b (a2)+,(a1)+ move.b (a2),(a1) addq #2,a1 put.l a1,Date+dat_StrTime lea 11(sp),a2 moveq #7,d0 CopyTime move.b (a2)+,(a1)+ dbra d0,CopyTime geta Date,a2 move.l a2,d1 call dos,StrToDate tst.l d0 bne.s ConvOkay dtl ,a0 geta Date+dat_StrDate,a1 jump ss,DosError ConvOkay move.l (a2)+,d0 ;ds_Days move.l #1440>>3,d1 lsl.l #3,d1 call utility,UMult32 add.l (a2)+,d0 ;ds_Minute moveq #60,d1 call UMult32 move.l (a2),d1 ;ds_Tick divu #50,d1 ext.l d1 add.l d1,d0 move.l d0,d2 dtl ,a0 move.w #IOTV_SIZE,a1 moveq #UNIT_VBLANK,d0 moveq #0,d1 sub.l a2,a2 call ss,TrackDevice move.w #TR_SETSYSTIME,IO_COMMAND(a1) move.l d2,IOTV_TIME+TV_SECS(a1) move.l a1,a0 move.l d1,a1 call ChkDoIO tstv.l Arg_Save beq.s EXIT dtl ,a1 push a1 call exec,OpenResource move.l sp,a1 dtl <%s not found>,a0 tst.l d0 beq.s ErrorSS move.l d0,a6 move.l d2,d0 call WriteBattClock EXIT jump ss,ExitCleanup NetError moveq #0,d2 NetErrorVar clr.l -(sp) call bsdsocket,Errno push d0 push #$8000001C add.l d2,(sp) move.l sp,a0 call SocketBaseTagList addq #4,sp pop a0 tst.l d0 beq.s ErrorSS ErrorUnknown dtl ,a0 ErrorSS jump ss,ExitError tags template dv.l Arg_Host dv.l Arg_Save library bsdsocket,3 finish end