...as an experiment, I wrote a little TSR to make DOS report 6.00 instead of 3.30Code:; ; VERSION6.ASM ; ; Intercept DOS Int 21h function 30h and return 6.00 ; CODE SEGMENT BYTE PUBLIC ASSUME CS:CODE, DS:CODE ORG 100H ENTRY: JMP INIT HOOK: CMP AH, 30H ; function 30h? JE GETVER ; yes, handle locally ; no, chain to DOS DB 0EAH ; jmp far INT21 DD 0 ; saved INT21 vector GETVER: MOV AX, 6 ; return version 6.00 IRET INIT: MOV AX, 3521H ; get original INT21 vector INT 21H MOV WORD PTR INT21, BX ; and save it MOV WORD PTR INT21 + 2, ES MOV AH, 25H ; set new INT21 vector MOV DX, OFFSET HOOK INT 21H MOV DX, OFFSET INIT INT 27H ; terminate, stay resident CODE ENDS END ENTRY
Isn't thee a builtin command to do this since 6.0? DOSVER possibly it was called - and could set the reported version based on the executable running I think