'from: Martin Kiewitz PRINT DOS_GetOSSystemName FUNCTION DOS_GetOSSystemName() as STRING local Version?,Release? Version?=0 Release?=0 'OS/2 ------------- ! PUSH AX ! PUSH BX ! PUSH CX ! PUSH DX ! MOV AX, &h4010 ! INT &h2F ! MOV Version?, AL ! MOV Release?, AH IF Release?<>&h40 AND Version?<>&h10 THEN OS$="OS/2" ! MOV Version?, BL ! MOV Release?, BH END IF IF Release?=0 AND Version?=0 THEN OS$="OS/2 Warp" Version?=3 Release?=0 END IF ! POP DX ! POP CX ! POP BX ! POP AX ' DR-DOS ----- ! PUSH AX ! PUSH BX ! PUSH CX ! PUSH DX ! MOV AX, &h3000 ! STC ! INT &h21 ! JC NixDR ! MOV Version?, AL ! MOV Release?, AH OS$="DR-DOS" NixDR: ! POP DX ! POP CX ! POP BX ! POP AX 'Novell DOS IF OS$="DR-DOS" AND ENVIRON$("OS")="NWDOS" THEN OS$="Novell DOS":Version?=7:Release?=0 IF OS$="" then ' MS-DOS ------------- ! push ax ! push bx ! push cx ! push dx ! mov ax,&H3306 ! int &H21 ! mov Version?,bl ! mov Release?,bh ! pop dx ! pop cx ! pop bx ! pop ax OS$="MS-DOS" end if FUNCTION = OS$+" "+REMOVE$(STR$(Version?)+"."+STR$(Release?)," ") END FUNCTION