;
; TTTTTT BBBBB CCCCC
; TT BB BB CC
; TT BBBBB CC
; TT BB BB CC
; TT H E BBBBB O R I N G CCCCC R E W
;
; BBBBB OOOO OOOO TTTTTT SSSSS EEEE CCCC TTTTTT OOOO RRRRR
; BB BB OO OO OO OO TT SS EE CC TT OO OO RR RR
; BBBBB OO OO OO OO TT SSSS EEE CC TT OO OO RRRRR
; BB BB OO OO OO OO TT SS EE CC TT OO OO RR RR
; BBBBB OOOO OOOO TT SSSSS EEEE CCCC TT OOOO RR RR
;
; T.B.C. Ruling da Scene in 2006
RSRESET
colptr: RS.L 1
cols: RS.L 200
; Yet again we spent months to research how to display characters on screen.
; Finally Alone1 came up with this most 1337 way to put some funky message onto
; everybody's screens. We are thinking to get a patent on this method since it
; seems to be really efficient if you consider the size of the code.
pea welcome(PC) ; load the megamighty message address
move.w #9,-(SP) ; and print it due to magical works
trap #1 ; This command reflects our state of
; mind, trapped in our own world...
addq.l #6,SP ; i don't know what this is for but
; someone told me i'd better use it
; The Gigamighty TOS supplies us with a perfect address to put our stuff, it is
; a System Variable called _membot and I have just discovered it when i found a
; copy of Readers Disgust in a Car Boot Sale a week ago...
movea.l $0432.w,A6 ; this is where i can put stuff
lea cols(A6),A0 ; startadress of colours
move.l A0,colptr(A6) ; remember raster start adress for
; the colour write routine
move.w #$0717,D0 ; start colour
move.w #198,D1 ; calculate colours for screen height
do_cols:
add.w #$01,D0 ; add one onto colour
move.w D0,D2 ; copy for output format
and.w #$0777,D2 ; mask non used bits so we stay ST
move.w D2,(A0)+ ; write colour into raster table
dbra D1,do_cols ; repeat everything for scr-height-1
clr.w (A0) ; last colour is black
; Well the next part took us 5 years to figure out, actually we have no idea
; what it does, since we just copied it from a spanish Atari Magazine, anyway
; it works and that's what counts, no?
bclr #5,$FFFFFA09.w ; hmmm
move.l $0120.w,-(SP) ; save TiB vector
lea tib(PC),A0 ; set gigamighty raster routine
move.l A0,$0120.w
clr.b $FFFFFA1B.w ; stop TiB
bset #0,$FFFFFA07.w ; activate TiB
bset #0,$FFFFFA13.w
move.b #1,$FFFFFA21.w ; Run TiB each line (TiB data)
move.b #8,$FFFFFA1B.w ; Start TiB in event count mode
; Again the next part was really hard work, when we 1st tried stuff all rasters
; where whizzing around the screen and it looked like a terrible mess. Although
; xBore said it would reflect the erratic way of our code quite well, i wasn't
; really convinced. So i started to dig into this topic a bit and found an
; astonishing solution to synchronize with the vertical blank, i guess all these
; PC suckers can still learn a lot from the megamighty Boring Crew...
vbl:
clr.l $0466.w ; Clear vbl counter
wvbl: tst.l $0466.w ; Check if vbl counter was increased
beq.s wvbl ; no? then wait till it was increased
lea cols(A6),A0 ; Reset Start Address for Rasters
move.l A0,colptr(A6)
cmpi.b #$39,$FFFFFC02.w ; Did someone press Space?
bne.s vbl ; If not Repeat
; Again the next part was ripped from a spanish ST Magazine, so don't expect many
; explanations here
move #$2700,SR ; disallow any IRQs
bclr #0,$FFFFFA07.w ; Disable TiB (rasters off)
move.l (SP)+,$0120.w ; Restore old TiB vector
move #$2300,SR ; allow IRQs
bset #5,$FFFFFA09.w ; restart TiC
rts ; Return from Bootsector
tib:
move.l A0,-(SP) ; Store Registers
move.l A1,-(SP)
movea.l $0432.w,A0 ; start of free memory (_membot)
movea.l colptr(A0),A1 ; Get pointer to current colour
move.w (A1)+,$FFFF8240.w ; write colour to Hardware
move.l A1,colptr(A0) ; write back colour Pointer
movea.l (SP)+,A1 ; Restore Registers
movea.l (SP)+,A0
bclr #0,$FFFFFA0F.w ; Clear IRQ in Service Bit
rte ; Return from Interrupt
; this was the part we had finished 1st, its sitting on my harddisk since the
; last EIL but when i wrote the text to the bootsector it wasn't shown on screen
; so we had to delay the intro a bit.
welcome: DC.B 27,"E"
; DC.B 10,10,"Greetings to all EIL 3 visitors",10,10,13
DC.B 10,10,"Greetings to all OUTLINE 2006 visitors",10,10,13
DC.B "from the Creme of the Atari-Scene",10,10,13
DC.B "TTTTTT BBBBBB CCCCC",10,13
DC.B " TT BB BB CC",10,13
DC.B " TT BBBBBB CC",10,13
DC.B " TT BB BB CC",10,13
DC.B " TT BBBBBB CCCCC",10,10,13
DC.B "We rule! Even in Bootsector Coding...",10,10,13
DC.B "Code: Alone1",10,13
DC.B "Gay Colours: xBore",10,13
DC.B "Silence: DaFool"
DC.B 0
EVEN
END
|