; ========================================================
; === NX-DOS Misc. 
; === (c) 2008 Chris Evans http://nxdos.sourceforge.net/
; ========================================================

; ===========================================================================
sync proc far
; DX = COM PORT
; ===========================================================================
IF (NETWORK)
   push dx
   call popen
   pop  dx
   jc   syncerror
syncstate:
   xor  cx, cx
initstate:
   cmp  cl, 0
   jne  sharedata
        push cx
        ; doesn't check for time out
        mov  dx, 0
        call c_read
        pop  cx
        cmp  al, 2             ; STX - Start Trans 
        jne  syncx
        inc  cx
sharedata:
   cmp  cl, 1
   jne  termstate
        push cs
        pop  ds
        lea  si, syncblock
        push cx
        mov  cx, 127
        _sh_data:
             push cx
             mov  dx, 0
             call c_read
             pop  cx
             cmp  al, CTRLZ   ; ^Z
             je   termstate
             mov  byte ptr cs:[si], al
             inc  si
             loop _sh_data 
        pop  cx
   inc  cx
   mov  al, RS_
   mov  dx, 0
   call c_write    ; _syncsend 1, SYSINF
termstate:
   ;
   cmp  cl, 2
   jne  syncx
        mov  al, 4
        mov  dx, 0
        call c_write             ; EOT - End of transmission
syncok:
   clc
syncx:
   mov  dx, 0
   call pclose
   ret
syncerror:
   stc
   jmp  short syncx
SYNCBLOCK db 127 dup(0),0
ENDIF  
   ret
sync endp

sendsync proc far
IF (NETWORK)
 ;  call initfossil
 ;  mov  dx, COM1
 ;  call openport
  ; jc   syncerror
  ;; mov  al, 2
  ; mov  dx, COM1
  ; call sendport
  ; mov  cl, 26   
  ; push cs
  ; pop  es
  ; mov  bx, offset SYNCBLOCK
  ; call writeblock
  ; mov  al, 26
  ; mov  dx, COM1
  ; call sendport
  ; jmp  syncok
ENDIF
   ret
sendsync endp
     
; ===========================================================================
corollativeupdate proc far
; Stargate corollative update routine
; ===========================================================================
;   call datachanged
;   jnc  nochange
;        call verifydata
;        jc   baddata
;             call dial_neighbor
;             call xmitdata
;             jmp  dataupdated
;baddata:
;   mov  dl, 0
;   call restore_backup
;verifydata:
;   call verifydata
;   jnc  nochange
;        cmp  dl, 1
;        je   newdataset
;        call dial_neighbor
;        call recvdata
;        mov  dl, 1
;        jmp  verifydata
;newdataset:
;   call newdata
;nochange:
;   call make_backup
;dataupdated:
   ret
corollativeupdate endp


