home *** CD-ROM | disk | FTP | other *** search
/ Game Cracker (Expanded Edition) / Game Cracker (Expanded Edition).iso / cracks / XCOM3_CD.ZIP / XCOM3_CD.ASM < prev    next >
Encoding:
Assembly Source File  |  1998-04-07  |  4.7 KB  |  159 lines

  1. ; Wr. by Alex-God aka (real name on Russian) Ç½Ñ¬ßá¡ñα
  2. .286p
  3.  
  4. jmp_FAR         MACRO   Address
  5.                 db      09Ah
  6. Address         dd      ?
  7.                 ENDM
  8.  
  9. Set_Vector      MACRO   Interrupt
  10.                 mov     di, OFFSET Old_Int_&Interrupt
  11.                 mov     dx, OFFSET Int_&Interrupt&_Handler
  12.                 mov     al, &Interrupt
  13.                 call    Set_Vect
  14.                 ENDM
  15.  
  16. Restore_Vector  MACRO   Interrupt
  17.                 mov     si, OFFSET Old_Int_&Interrupt
  18.                 mov     al, &Interrupt
  19.                 call    Restore_Vect
  20.                 ENDM
  21.  
  22. Chk_Vector      MACRO   Interrupt
  23.                 mov     al, Interrupt
  24.                 mov     si, OFFSET Int_&Interrupt&_Handler
  25.                 call    Chk_Vect
  26.                 ENDM
  27.  
  28. _CODE           SEGMENT PARA    PUBLIC  'Code'
  29.                 ASSUME  cs:_CODE, ds:_CODE, es:_CODE
  30.  
  31.                 ORG     100h
  32.  
  33. Start:
  34.                 jmp     Initialize
  35.  
  36. Flags db 0,13,10
  37. Author:
  38. db 'All for People not for motherf.ckers.  ',13,10
  39. db 'On English:',13,10
  40. db 'X-COM3 Apocalypse patch module. This program is not shareware.',13,10
  41. db 'Please register as soon as possible. Written by Alex-God.',13,10
  42. db 'Use with Fakecd or Fakecd-like programs.',13,10
  43. db 'PS: If you are Lamer you may change the following ^^^ name.',13,10
  44. db 'But do not change the program because it may cause the problems with',13,10
  45. db 'your PC.',13,10,13,10
  46. db 'éßÑ ñ½∩ ïεñÑ⌐, ¡« ¡Ñ ñ½∩ motherf.cker',39,'«ó.',13,10
  47. db 'On Russian: ',13,10
  48. db 'Patch ¼«ñπ½∞ ¬ X-COM3 Apocalypse. ¥Γá »α«úαἼᠡѠíÑß»½áΓ¡«Ñ »α¿½«ªÑ¡¿Ñ.',13,10
  49. db 'çáαÑúÑßΓα¿απ⌐ΓÑß∞ ¬á¬ ¼«ª¡« ß¬«αÑÑ. Åα«úαá¼¼π ¡á»¿ßá½ Alex-God.',13,10
  50. db 'êß»«½∞ºπ⌐ΓÑ ß«ó¼ÑßΓ¡« ß »α«úαá¼¼«⌐ Fakecd ¿½¿ »«ñ«í¡δ¼¿ Ñ⌐.',13,10
  51. db 'PS: àß½¿ Γδ ïá¼Ñα, Γ« ¼«ªÑΦ∞ ¿º¼Ñ¡¿Γ∞ ¿¼∩ Alex-God ¡á ßó«Ñ.',13,10
  52. db 'ì« »«ªá½π⌐ßΓá ¡Ñ ¼Ñ¡∩⌐ »α«úαá¼¼π, Γᬠ¬á¬ φΓ« ¼«ªÑΓ »α¿τ¿¡¿Γ∞ óαÑñ',13,10
  53. db 'Γó«Ñ¼π ¬«¼»∞εΓÑαπ.',13,10
  54. db '使¡á Σá⌐½á ó íá⌐Γáσ: 1024.'
  55. music_gde db '(ööa&MUSIC;1'
  56.  
  57.  
  58. Int_2Fh_Handler PROC    FAR
  59.                 pushf
  60.                 cmp ax, 150Fh
  61.                 jnz Pass_2Fh
  62.                 push es
  63.                 pop ax
  64.                 or ax,ax
  65.                 jnz Run_xcom_2Fh
  66.                 cmp bx,002fh*4
  67.                 jnz Run_xcom_2Fh
  68.                 push cs
  69.                 pop es
  70.                 mov di,offset Author
  71.                 jmp short Quit_2Fh
  72. Run_xcom_2Fh:
  73.                 cld
  74.                 push es di si cx cs
  75.                 mov es,si
  76.                 pop ds
  77.                 mov si,offset music_gde
  78.                 mov cx,0028h
  79.                 rep movsb
  80.                 pop cx si di es
  81. Quit_2Fh:
  82.                 mov ax,01
  83.                 popf
  84.                 iret
  85. Pass_2Fh:
  86.                 jmp_FAR Old_Int_2Fh
  87.                 retf 02
  88. Int_2Fh_Handler ENDP
  89.  
  90. Initialize:
  91.                 xor ax,ax
  92.                 mov es,ax
  93.                 mov bx,002fh*4
  94.                 mov ax, 150Fh
  95.                 int 2Fh
  96.                 push cs
  97.                 pop ds
  98.                 mov si,offset Author
  99.                 mov cx,offset Int_2Fh_Handler-offset Author
  100.                 repz cmpsb
  101.                 or cx,cx
  102.                 jnz short Install
  103. Restore_Vectors:
  104.                 mov dx,es
  105.                 Chk_Vector 2Fh
  106.                 jc Finish
  107. Un_Install:
  108.                 Restore_Vector  2Fh
  109.                 mov ah, 49h
  110.                 int 21h
  111.                 jmp short Finish
  112. Install:
  113.                 mov es, WORD PTR ds:[2Ch]
  114.                 mov ah, 49h
  115.                 int 21h
  116.                 Set_Vector 2Fh
  117.                 mov dx, OFFSET Initialize
  118.                 int 27h
  119. Finish:
  120.                 mov ax, 4C00h
  121.                 int 21h
  122.  
  123. Set_Vect        PROC    NEAR
  124.                 mov     ah, 35h
  125.                 int     21h
  126.                 mov     WORD PTR [di], bx
  127.                 mov     WORD PTR [di+2], es
  128.                 mov     ah, 25h
  129.                 int     21h
  130.                 retn
  131. Set_Vect        ENDP
  132.  
  133. Chk_Vect        PROC    NEAR
  134.                 mov     ah, 35h
  135.                 int     21h
  136.                 mov     ax, es
  137.                 sub     ax, dx
  138.                 sub     bx, si
  139.                 or      ax, bx
  140.                 jnz     Un_Inst_Error
  141.                 clc
  142.                 ret
  143. Un_Inst_Error:
  144.                 stc
  145.                 ret
  146. Chk_Vect        ENDP
  147.  
  148. Restore_Vect    PROC    NEAR
  149.                 push    ds
  150.                 lds     dx, DWORD PTR es:[si]
  151.                 mov     ah, 25h
  152.                 int     21h
  153.                 pop     ds
  154.                 retn
  155. Restore_Vect    ENDP
  156.  
  157. _CODE           ENDS
  158.                 END     Start
  159.