;*******************************************************;
;		FAKE SCROLLY BY KARJA!			;
;*******************************************************;

This is the complete source code to a fake scroll I intended to use in a small
demo, BURNER (probably never going to get released, but maybe BURNER MKII, a
new version of the demo in protected mode will...)

Now comes the disclaimer stuff:
	I, Karja, Miro Karjalainen, will not be held responsible to any
	damage in any way caused by the included source code or running
	version of this scroll! Usage of the files included in this
	package is on your own risk!
		(Or sumthin' like that.. I've never written a disclaimer
		before..  You all know what I mean though:
		You use this and anything bad happens, it's your problem!)

Ok, now that that's finished, I'll just go on describing the contents now...

I don't know if there's going to be some additions to this package by other
ppl, but these are the files I'm putting there:

	FILE_ID.DIZ		; Description of package
	SCROLLY.TXT		; Uhh.. What could this be?
	DATA.DAT		; Font(s) to the scroll
	DEMO.ASM		; Init 'n exit code
	DEMO.EXE		; The actual scroll
	MAKE.BAT		; Makefile which just assembles the scroll
	FULL.BAT		; Makefile which assembles everything
	LINK\STUFF.ASM		; Different stuff (Check the file!)
	PARTS\SCROLLY.ASM	; The actual scroll

	(You did use pkunzip -d, didn't you?)

Ok, now that THAT'S finished, I'll just go on describing what the stuff does!

The demo.asm file is the actual starting file which's supposed to call the
different parts of the demo, in this just the scroll. There you'll find..
well, you won't find much there! (I also had the mod playing routine there!
If you'd like to get the one I used, get the source for "Tiny mod player"
by PELUSA (Carlos Hasan) from ex. the Hornet archive.. But that one only
has SB support and it sounded pretty shitty with the mod i used, so... )

In the stuff.asm file you'll find different stuff like a palette setting
routine and also a couple of 13h bob (sprite) functions (which isn't used
in this, but.. :)
(For you who were annoyed by the word "bob" i used to describe a block of
graphics set onto the screen, I'd like to tell you that I'm an old Amiga
coder just starting to go PC, and on the Amiga there're two ways of doing
that: using hardware sprites which suck or use BOBs (Blitter OBjects) who
rule... The implementation of both're pretty similar too, you take a chunk
of graphics 'n just put it there.. (On the Amiga the blitter did this) Well,
enough of this...)
In stuff.asm there's also the Screen Synchronization routine (YES I KNOW!
IT'S CALLED 'VERTICAL RETRACE' BUT I DON'T GIVE A FUCK!!! IF AN AMIGA HAD THE
SAME SPEED AS A PC IT WOULD BE FOUR TIMES AS FAST, SO JUST LET ME USE MY
AMIGA VOCABULARY!!! ;)

In the scrolly.asm file there's the actual scroll...

Ok, for those who don't have a clue of how I did the scroll, here's a short
explanation: (Sorry, but it's really short! I'm terrible at explaining...)

	I suppose you know about ModeX and know a little 'bout how a scroll's
	made (plus some experience in programming..)

	Btw, just let me state that I'm not trying to lure anyone into
	thinking that this is an ADVANCED routine! I know it's kinda shitty,
	and all "real" coders're gonna laugh at it! It's for those who just
	wanna learn some easy stuff...

	Ok, but over to the explanation now...

	You set up a ModeX screen which's 1280 pixels wide, (Marked in src)
	you write a 1280-320 pixels wide scroll on the video mem hidden, and
	then you just change the pointer to the video mem and use some
	horizontal panning,  and:
	
	Voila! You're scrolling!

	Ok, the actual scrolling I can explain a bit more with an example:

	You use a scrolling position (offset) which shows how much the scroll
	has moved, ex: If the position is 213, then 213 are the number of
	pixels to have been scrolled..

	The proc "SetScreen" (or sumthin' like that) is the one who does just
	that! It uses a word (ScrollX I think..) and first does the horizontal
	panning using port 3c0h index 13h, then sets the video offset...
	NOTE! You have to set these just after the Sync! Otherwise the screen
	flickers! Actually, in pmode, you have do the Sync after the horizontal
	panning, then the video offset, but that's just a small comment if
	you decide to use this in protected mode...

	Well... That's just about it!

	Oh, forgot to explain what the hor. panning and setting the video
	offset does...
	The video offset is the position in whole 4 pixels (i.e Position = 18
	video offset is 18/4=4 as an integer..
	What happens with the rest? (2 in this case)
	Yes, like you probable guessed: Horizontal panning! ;) You'll probably
	figure it out if you look at the code... (Tip: in ModeX you have to
	shl the Rest with 1..)

	That IS about it! :)

Well, now that I'm finished with this I'm gonna write some crap like how shitty
I feel now because of a few beers, a few tequilas, many... What the hell d'you
call a mixture of Scandinavian vodka and something in english? It's called
"grogg" in swedish!!! Well, anyway, I had fun... That's what I'm paying for
right now... ;)
Well, I suppose I could describe myself too now that I'm sitting here...
I'm 18, go in a.. (what the hell d'you call it... high school?) at a nature
science course last year of three now...
I always dress in all black, often wearing jeans with holes.. Am about to do
my military service soon... Heh! You think they like anarchists there? ;)
And I'm going to study computer programming after that..
I suppose that I'm not that much of a stereotype coder huh?
Oh! Almost forgot! I play the guitar and sing in a heavy punk band too!
Heh! Gettin' better all time, eh?
I also do some music on the comp. Check out the hornet archive... (At least in
the "incoming" directory.. ;) Some techno, some punk, most weird stuff...

Ahh! I'm feeling better now! I wrote the stuff before at 2 o'clock (daytime!),
and decided to have a break... Now the time is a quarter to two (not daytime)...
Well, well.. I suppose I really should stop writing all this crap 'n do some
coding or music... I bloody well can't go anywhere now! :) Well, except my
brother who lives 20 seconds from here, who's going to get up at half past five
tomorrow... Ahh, maybe I'll not go there... He'd just be totally pissed at me
for a couple of days!

Finally, excuse me for any misspelling/grammatical errors, I'm from Sweden! :)


Karja (aka Miro Karjalainen) signing off...



 Wanna contact me? I've got e-mail for just a couple of months more.. After I
 quit school, I'm out of it! Hell, I haven't even got a phone at home, all my
 internet business is made at school... :(
 But if you'd like to contact me before the middle of June -97, here's my
 e-mail address:

	mongokarja@hotmail.com
