home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / virus / babosete / babosete.asm next >
Assembly Source File  |  1989-12-01  |  4KB  |  99 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      'ubaA'
  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      sr,d2               IPL auf 4 und altes SR in D2 merken
  41.           move.w    d2,d0
  42.           and.w     #$f8ff,d0
  43.           or.w      #$0400,d0
  44.           move      d0,sr
  45.  
  46.           move.w    #63,d0              64 mal den Bildschirm invertieren...
  47. klapperdi move.l    .v_bas_ad,a0
  48.           move.w    #7999,d1
  49. uffenday  not.l     (a0)+
  50.           dbf       d1,uffenday
  51.           dbf       d0,klapperdi
  52.  
  53.           move      d2,sr               alten IPL wiederherstellen
  54.  
  55. sau_gut   movem.l   (sp)+,d0-d2
  56. done      rts                           Das war's dann, tschüessing !
  57. * --------------------------------------------------------------------------
  58. install   clr.l     -(sp)               D0 = Super(0)
  59.           move.w    #32,-(sp)
  60.           trap      #1
  61.           addq.l    #6,sp
  62.           move.l    d0,-(sp)
  63.           move.w    #32,-(sp)           Super(ssp) vorbereiten
  64.  
  65.           lea       o_hdv_bpb(pc),a0    Wächter einklinken !
  66.           move.l    hdv_bpb,(a0)
  67.           lea       n_hdv_bpb(pc),a0
  68.           move.l    a0,hdv_bpb
  69.  
  70.           trap      #1                  Super(ssp) ausführen
  71.           addq.l    #6,sp
  72.  
  73.           pea       intro(pc)           Das Startgeblubber...
  74.           move.w    #cconws,-(sp)
  75.           trap      #gemdos
  76.           addq.l    #6,sp
  77.  
  78. wait      move.w    #-1,-(sp)
  79.           move.w    #kbshift,-(sp)
  80.           trap      #bios
  81.           addq.l    #4,sp
  82.           and.w     #$1f,d0
  83.           bne.s     wait
  84.  
  85.           clr.w     -(sp)
  86.           move.l    #install-entry+256,-(sp)
  87.           move.w    #ptermres,-(sp)
  88.           trap      #gemdos
  89.  
  90. intro     dc.b      ' ',27,'p  ===============================  ',27,'q',13,10
  91.           dc.b      ' ',27,'p   BACKGROUND-BOOT-SECTOR-TESTER   ',27,'q',13,10
  92.           dc.b      ' ',27,'p  ===============================  ',27,'q',13,10
  93.           dc.b      ' ',27,'p           PUBLIC-DOMAIN           ',27,'q',13,10
  94.           dc.b      ' ',27,'p    (C) 1.12.1989,  Ulf Bartelt    ',27,'q',13,10
  95.           dc.b      10,0
  96.  
  97.           end
  98.  
  99.