home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / virus / babosete / safety.asm < prev    next >
Assembly Source File  |  1989-12-01  |  4KB  |  109 lines

  1.           title     <BA>ckground<BO>ot<SE>ktor<TE>ster
  2.           module    babosete.o
  3. * --------------------------------------------------------------------------
  4.           section   text
  5. * --------------------------------------------------------------------------
  6. gemdos    equ       1
  7. cconws    equ       9
  8. ptermres  equ       49
  9. bios      equ       13
  10. kbshift   equ       11
  11. .v_bas_ad equ       $44e
  12. hdv_bpb   equ       $472
  13. .dskbufp  EQU       $4C6
  14. * --------------------------------------------------------------------------
  15. entry     jmp       install(pc)
  16. * --------------------------------------------------------------------------
  17.           ds.w      0                   WORD-ALIGN !
  18.           dc.b      'XBRA'
  19.           dc.b      'ubaB'
  20. o_hdv_bpb dc.l      1
  21.  
  22. n_hdv_bpb move.l    o_hdv_bpb(pc),a0
  23.           cmp.w     #2,4(sp)            Laufwerk < 2 (also A oder B) ?
  24.           blt.s     for_me              Ja: dann ist's für meinereiner...
  25.           jmp       (a0)                Sonst: weiter mit der alten Routine...
  26.  
  27. for_me    move.w    4(sp),-(sp)         Die alte Routine für das gewünschte
  28.           jsr       (a0)                Laufwerk aufrufen...
  29.           addq.l    #2,sp
  30.  
  31.           movem.l   d0-d2,-(sp)
  32.           move.l    .dskbufp,a0         A0 zeigt auf den gelesenen Bootsector
  33.           clr.w     d0                  Checksumme modulo 2^16 bestimmen...
  34.           move.w    #255,d1
  35. grynglfix add.w     (a0)+,d0
  36.           dbf       d1,grynglfix
  37.           cmp.w     #$1234,d0           Ausführbarer Bootsector ?
  38.           bne.s     sau_gut             Nein: Hurra !
  39.  
  40.           move.l    .dskbufp,a0   
  41.           add.l     #$3a,A0       
  42.           MOVE.W    #$0D6,D0      
  43.           CLR.W     D1            
  44. AddLoop   ADD.W     (A0)+,D1      
  45.           DBRA      D0,AddLoop   
  46.           TST.W     D1            
  47.           Beq.S     sau_gut             sagrotan !!!
  48.  
  49.           move      sr,d2               IPL auf 4 und altes SR in D2 merken
  50.           move.w    d2,d0
  51.           and.w     #$f8ff,d0
  52.           or.w      #$0400,d0
  53.           move      d0,sr
  54.  
  55.           move.w    #63,d0              64 mal den Bildschirm invertieren...
  56. klapperdi move.l    .v_bas_ad,a0
  57.           move.w    #7999,d1
  58. uffenday  not.l     (a0)+
  59.           dbf       d1,uffenday
  60.           dbf       d0,klapperdi
  61.  
  62.           move      d2,sr               alten IPL wiederherstellen
  63.  
  64. sau_gut   movem.l   (sp)+,d0-d2
  65. done      rts                           Das war's dann, tschüessing !
  66. * --------------------------------------------------------------------------
  67. install   clr.l     -(sp)               D0 = Super(0)
  68.           move.w    #32,-(sp)
  69.           trap      #1
  70.           addq.l    #6,sp
  71.           move.l    d0,-(sp)
  72.           move.w    #32,-(sp)           Super(ssp) vorbereiten
  73.  
  74.           lea       o_hdv_bpb(pc),a0    Wächter einklinken !
  75.           move.l    hdv_bpb,(a0)
  76.           lea       n_hdv_bpb(pc),a0
  77.           move.l    a0,hdv_bpb
  78.  
  79.           trap      #1                  Super(ssp) ausführen
  80.           addq.l    #6,sp
  81.  
  82.           pea       intro(pc)           Das Startgeblubber...
  83.           move.w    #cconws,-(sp)
  84.           trap      #gemdos
  85.           addq.l    #6,sp
  86.  
  87. wait      move.w    #-1,-(sp)
  88.           move.w    #kbshift,-(sp)
  89.           trap      #bios
  90.           addq.l    #4,sp
  91.           and.w     #$1f,d0
  92.           bne.s     wait
  93.  
  94.           clr.w     -(sp)
  95.           move.l    #install-entry+256,-(sp)
  96.           move.w    #ptermres,-(sp)
  97.           trap      #gemdos
  98.  
  99. intro     dc.b      ' ',27,'p  ===============================  ',27,'q',13,10
  100.           dc.b      ' ',27,'p   BACKGROUND-BOOT-SECTOR-TESTER   ',27,'q',13,10
  101.           dc.b      ' ',27,'p  ===============================  ',27,'q',13,10
  102.           dc.b      ' ',27,'p           PUBLIC-DOMAIN           ',27,'q',13,10
  103.           dc.b      ' ',27,'p    (C) 1.12.1989,  Ulf Bartelt    ',27,'q',13,10
  104.           dc.b      ' ',27,'p  Ignoriert Sagrotan-Anti-Virus !  ',27,'q',13,10
  105.           dc.b      10,0
  106.  
  107.           end
  108.  
  109.