
      include ccsdef.h

      public isccdos,chkos

datas segment para public 'datas'
      isccdos   db   ?
datas ends

code  segment para public 'code'
      assume cs:code,ds:datas

; chkos --- check which operating system is running, MS-DOS or CC-DOS. [zqf]
;       Return: 0 --- MS-DOS
;               1 --- CC-DOS
;       All registers are reserved.             June 19,1990 
chkos proc  near
      push      ax
      push      bx
      push      ds
      push      es
      mov  ax,datas
      mov  ds,ax
      mov  ax ,0000h
      mov  es, ax

      mov  bx, 43h
      mov  al, es:[bx]
      cmp  al, 0a0h             ;check if Segment of vector of INT10H >=0Axxxh?
      jae  next                 ; ae = Yes (non CCDOS)

      mov  bx, 5bh
      mov  al, es:[bx]
      cmp  al, 0a0h             ;check if Segment of vector of INT16H >=0Axxxh?
      jae  next                 ; ae = Yes (non CCDOS)

      mov  isccdos ,01h         ; current state is CCDOS
      jmp  next1
next: 
      mov  isccdos ,00h         ; current state is MSDOS
next1:pop       es
      pop       ds
      pop       bx
      pop       ax
      ret
chkos endp

code  ends
      end  

