
; Ђ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ѓ
; ‰     NOVIRUS.MAC - рТПЗТБННБ ВПТШВЩ У ЧЙТХУПН                ‰
; ‰     йУРПМШЪПЧБОЙЕ:                                          ‰
; ‰     NOVIRUS       чЩДБЕФ ЙОЖПТНБГЙА П ЪБТБЦЕОЙЙ ДЙУЛБ Й пъх ‰
; ‰     NOVIRUS -     ъБПДОП ХОЙЮФПЦБЕФ ЧЙТХУ                   ‰
; ‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ѓ
;
        .Z80
Hook    equ    0F26Dh
Bdos    equ    5
STROUT  equ    09h           ; жХОЛГЙЙ BDOS: - ЧЩЧПД УФТПЛЙ
DNAME   equ    19h           ;               - ЧЩДБЮБ ОПНЕТБ ДЙУЛПЧПДБ
SETDMA  equ    1Ah           ;               - ХУФБОПЧЛБ БДТЕУБ ПВНЕОБ
DREAD   equ    2fh           ;               - ЮФЕОЙЕ УЕЛФПТБ У ДЙУЛБ
DWRITE  equ    30h           ;               - ЪБРЙУШ УЕЛФПТБ ОБ ДЙУЛ
StEntry equ    001Fh
Params  equ    82h           ; ъДЕУШ ОБИПДЙФУС УФТПЛБ РБТБНЕФТПЧ РТЙ
                             ; ЪБРХУЛЕ РТПЗТБННЩ.
        ld     a,(Hook)
        cp     0C9h
        jr     z,test2
        ld     de,mess1
        ld     c,STROUT
        call   Bdos
        ld     a,(Params)
        cp     '-'
        jr     nz,test2
        ld     a,0C9h
        ld     (0F26Dh),a
        call   kill
test2:  ld     de,_DMA
        ld     c,SETDMA
        call   Bdos
        ld     c,DNAME
        call   Bdos
        ld     (StDrive),a
        ld     l,a           ; N ДЙУЛПЧПДБ
        ld     de,0          ; N уЕЛФПТБ
        ld     h,1           ; юЙУМП УЕЛФПТПЧ
        ld     c,DREAD       ; юФЕОЙЕ УЕЛФПТБ
        call   Bdos
        ld     a,(_DMA+StEntry)
        .8080
        cpi    (Push h)      ; дЙУЛ ЪБТБЦЕО, ЕУМЙ Push h Ч ВБКФЕ
        .Z80                 ; StEntry - ФПМШЛП ДМС ОБЫЕЗП ЧЙТХУБ !
        ret    nz
        ld     de,mess2
        ld     c,STROUT
        call   Bdos
        ld     a,(Params)
        cp     '-'
        ret    nz
        ld     hl,_DMA + 103h ; дПУФХР  Л  НЕУФХ Ч ЧЙТХУЕ, ЗДЕ ЪБРЙУБОЩ
        ld     a,(hl)         ; УФБОДБТФОЩЕ 6 ВБКФ. рТПЙЪЧПДЙФУС ФБЛ:
        .8080                 ; Ч ВБКФБИ 3¶6 ЧЙТХУБ ТБУРПМПЦЕОБ ЛПНБОДБ
        cpi    (lxi d)        ; LD  DE, Rettable-Vbeg, Ф.Е. Ч  ВБКФЕ 4
        .z80                  ; ТБЪНЕЭЕО ПФОПУЙФЕМШОЩК БДТЕУ ОБЮБМБ ФБВє
        ret    nz             ; МЙГЩ УФБОДБТФОЩИ ВБКФПЧ.
        inc    hl             ;    ‚фПМШЛПЂ ДМС ОБЫЕЗП ЧЙТХУБ !
        ld     e,(hl)
        inc    hl
        ld     a,(hl)
        or     a
        ret    nz
        ld     d,a
        ld     hl,_DMA + 100h
        add    hl,de          ; фЕРЕТШ hl = бДТЕУ ФБВМЙГЩ
        ld     de,_DMA+StEntry
        ld     bc,6
        ldir
        ld     de,0           ; N уЕЛФПТБ
        ld     hl,(StDrive)   ; N ДЙУЛПЧПДБ
        ld     h,1            ; юЙУМП УЕЛФПТПЧ
        ld     c,DWRITE       ; ъБРЙУШ УЕЛФПТБ
        call   Bdos
kill:   ld     de,mess3
        ld     c,STROUT
        jp     Bdos
mess1:  db     'чОЙНБОЙЕ, ЧЙТХУ Ч РБНСФЙ',0Dh,0Ah,'$'
mess2:  db     'чОЙНБОЙЕ, ЧЙТХУ ОБ ДЙУЛЕ',0Dh,0Ah,'$'
mess3:  db     'оЕКФТБМЙЪПЧБО', 0Dh,0Ah,'$'
StDrive:ds     1
_DMA    equ    $
        END
