Category : Unprotects for Games and Such
Archive   : ULTIMA5.ZIP
Filename : U.ASM

 
Output of file : U.ASM contained in archive : ULTIMA5.ZIP
VECTORS SEGMENT AT 0H
ORG 13H*4 ; INTERUPT 13
VECT13_LOC LABEL DWORD
VECTORS ENDS

CODE_SEG SEGMENT
ASSUME CS:CODE_SEG
ORG 100H

BEGIN: JMP INIT_VECTORS

OLD_INT13_VECT DD
TEMP DW

INTERCEPT_INT13 PROC NEAR
ASSUME CS:CODE_SEG
PUSHF
PUSH ES
PUSH DS
PUSH SI
PUSH DI
PUSH CX
PUSH DX
PUSH BX
MOV TEMP,AX ; STORE CALL IN CASE IT IS NOT ULTIMA V CALL
CMP AX,0404H ; IS THE CALL FOR A VERIFY SECTORS
JNZ CHECK_INT2 ; IF NOT VERIFY SECTORS CHECK FOR READ SECTORS
CMP DX,0000H
JNZ CHECK_INT2
CMP CX,0602H
JZ VERIFY_SECTORS
CMP CX,06BBH
JNZ CHECK_INT2
; THIS ROUTINE NOW IS TO VERIFY SECTORS, SIMPLY RETURN A SUCCESS CODE
VERIFY_SECTORS:
MOV AX,0000H
JMP EXIT

CHECK_INT2:
CMP AX,0201H ; IS CALL FOR READ IN SECTORS
JNZ REAL_INT ; THE CALL IS NOT ULTIMA V SO CALL REAL INTERUPT
CMP BX,0318H
JNZ REAL_INT
CMP CX,0601H
JNZ REAL_INT
CMP DX,0000H
JNZ REAL_INT
MOV AX,04E4EH
MOV DI,BX
MOV CX,0100H/2
LOAD_4E:
STOSW
LOOP LOAD_4E
MOV AX,0322H
STOSW
MOV AX,072DH
STOSW
MOV AX,0800H
STOSW
MOV AX,01B3BH
STOSW
MOV AX,0000H
MOV CX,0F6H/2
LOAD_00:
STOSW
LOOP LOAD_00
MOV AX,4E00H
STOSW
JMP EXIT

REAL_INT:
POP BX
POP DX
POP CX
POP DI
POP SI
POP DS
POP ES
CALL OLD_INT13_VECT ; YOU DO NOT POPF TO MAINTAIN STACK INTEGRITY
IRET

EXIT:
POP BX
POP DX
POP CX
POP DI
POP SI
POP DS
POP ES
POPF
MOV AX,0000H ; RETURN NO ERROR CODE
IRET

INTERCEPT_INT13 ENDP

INIT_VECTORS PROC NEAR
ASSUME DS:VECTORS
MOV AX,VECTORS
MOV DS,AX
MOV AX,VECT13_LOC
MOV OLD_INT13_VECT,AX
MOV AX,VECT13_LOC[2]
MOV OLD_INT13_VECT[2],AX
MOV VECT13_LOC, OFFSET INTERCEPT_INT13
MOV VECT13_LOC[2], CS
MOV AX,CS
MOV DS,AX
MOV DX, OFFSET INIT_VECTORS
INT 27H ; DOS FOR MEMORY RESIDENT PROGRAMS
INIT_VECTORS ENDP

CODE_SEG ENDS
END BEGIN



  3 Responses to “Category : Unprotects for Games and Such
Archive   : ULTIMA5.ZIP
Filename : U.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/