home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / ST_PLUS / STP14.MSA / EXTRAS_STP_BOOT.S < prev    next >
Text File  |  1997-02-27  |  4KB  |  100 lines

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ; Graphic bootsector - Steven Moore 1996 - (Tab width is 8)
  3.  
  4.     opt    l0,d-,o+          Devpac options; turn off symbols.
  5.  
  6.     bra.s    bootsec         ] This bit is important for the
  7.     ds.b    $38            ] BOOTINST.PRG program. Ignore.
  8.  
  9. bootsec clr.b    $FFFF8260.w          Kick the machine into low res
  10.  
  11.     lea    $FFFF8240.w,a0          Address of palette into a0
  12.     move.l    #$0FFF0FFF,(a0)     ] Set the entire palette
  13.     move.w    #$FFF,30(a0)        ] to white...
  14.  
  15.     pea    text(pc)        ] Display the text on the screen
  16.     move.w    #9,-(sp)        ] 
  17.     trap    #1            ]
  18.     addq.l    #6,sp            ]
  19.  
  20.     lea    graphic(pc),a0        ] Copy 32x32 logo: a0->graphic data
  21.     move.l    $44E.w,a1        ] a1->screen
  22.     lea    (160*68)+(8*9)(a1),a1    ] The '68' is the y-position of the
  23.     moveq    #31,d0            ] logo on the screen
  24. loop    move.w    (a0)+,(a1)        ] Copy...
  25.     addq.l    #8,a1            ] ...
  26.     move.w    (a0)+,(a1)        ] ...
  27.     lea    160-8(a1),a1        ] ...
  28.     dbra    d0,loop         ] and loop around.
  29.  
  30.     bsr.s    waitvbl           Wait for the next vertical blank
  31.  
  32.     lea    $FFFF8240.w,a4          a4->Palette
  33.     move.w    #$777,d4          Start with white
  34.     bra.s    intolp              and into a truly lovely loop
  35. fadelp    subi.w    #$111,d4          construct! (Work it out for
  36.     beq.s    bye              yourself - tip, it doesn't start
  37. intolp    move.w    d4,(a4)           at the beginning...)
  38.     bsr.s    waitvbl
  39.     bsr.s    waitvbl
  40.     bra.s    fadelp
  41.  
  42. bye    move.l    #$00000FFF,(a4)     ] ensure the palette is
  43.     move.w    #$FFF,30(a4)        ] white on black,
  44.                     ; fall through into waitvbl, when
  45.                     ; it returns it goes back to TOS...
  46.  
  47. waitvbl move.w    #$25,-(sp)          Wait for next vertical blank
  48.     trap    #14
  49.     addq.l    #2,sp
  50.     rts                  and exit...
  51.  
  52.  
  53. ;;;;;; Graphic data, 1 plane, in binary (!) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  54.  
  55. graphic dc.l    %01111111111111111111111111111110  Yep, this is it: the ST+
  56.     dc.l    %11000000000000000000000000000011  logo, actually how I drew
  57.     dc.l    %10000111110101111111111010000001  it. 1s are white, 0s are
  58.     dc.l    %10001101011010000110100000000001  black...
  59.     dc.l    %10011010101101000110100000000001
  60.     dc.l    %10110100000110100110100000000001
  61.     dc.l    %10111000000000000110100000000001
  62.     dc.l    %10110100000000000110100000000001
  63.     dc.l    %10111000000000000110100000000001
  64.     dc.l    %10110100000000000110100001000001
  65.     dc.l    %10111000000000000110100011000001
  66.     dc.l    %10110100000000000110100011000001
  67.     dc.l    %10011010000000000110100011000001
  68.     dc.l    %10001101000000000110100011000001
  69.     dc.l    %10000110100000000110100011000001
  70.     dc.l    %10000011010000000110000011000001
  71.     dc.l    %10000001101000000110111111111101
  72.     dc.l    %10000000110100000110000011000001
  73.     dc.l    %10000000011010000110100011000001
  74.     dc.l    %10000000001101000110100011000001
  75.     dc.l    %10000000000110100110100011000001
  76.     dc.l    %10000000000011010110100011000001
  77.     dc.l    %10000000000011100110100011000001
  78.     dc.l    %10000000000011010110100010000001
  79.     dc.l    %10000000000011100110100000000001
  80.     dc.l    %10000000000011010110100000000001
  81.     dc.l    %10110100000110100110100000000001
  82.     dc.l    %10011010001101000110100000000001
  83.     dc.l    %10001101011010000110100000000001
  84.     dc.l    %10000111110100000110100000000001
  85.     dc.l    %11000000000000000000000000000011
  86.     dc.l    %01111111111111111111111111111110  That's the logo done
  87.  
  88. text    dc.b    27,"E"              VT52: Clear screen         
  89.     dc.b    27,"b",1          VT52: Foreground colour 1
  90.     dc.b    27,"Y",32+13,32+16      VT52: Set cursor pos to (16,13)
  91.     dc.b    "Issue xx"            First bit of text
  92.     dc.b    27,"Y",32+16,32+8      VT52: Set cursor pos to (8,16)
  93.     dc.b    "This disk is Virus Free!"    Second bit of text
  94.     dc.b    27,"b",15          VT52: Foreground colour 15
  95.     dc.b    0                and finish.
  96.  
  97. ;;;;;; That's all folks ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  98.  
  99.  
  100.