Article 33356 of comp.sys.amiga.programmer:
Path: news.csos.orst.edu!flop.ENGR.ORST.EDU!ogicse!uwm.edu!wupost!darwin.sura.net!jabba.ess.harris.com!mlb.semi.harris.com!usenet.ufl.edu!cybernet!conners
From: conners@cse.fau.edu (Sean "Captain Napalm" Conner)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Message-ID: <1993Jun12.072953.28871@cybernet.cse.fau.edu>
Date: 12 Jun 93 07:29:53 GMT
Article-I.D.: cybernet.1993Jun12.072953.28871
References: <1v9ki1INNcv1@fstgds15.tu-graz.ac.at> <1993Jun12.045539.5338@sol.cs.wmich.edu>
Sender: news@cybernet.cse.fau.edu
Organization: Florida Atlantic University, Boca Raton, FL, USA
Lines: 59

In article <1993Jun12.045539.5338@sol.cs.wmich.edu> 22dussia@sol.cs.wmich.edu (Demetri) writes:
>In article <1v9ki1INNcv1@fstgds15.tu-graz.ac.at> hollosi@fm11ap02.tu-graz.ac.at (Arno Hollosi) writes:
>>Hi !
>>
>>If you are interested in an example source for an
>>smooth 8-Way-Tile-Scroller, then check out 'alt.sources.amiga'.
>>
>>It isn't recommended for OS-fanatics, because of hardware-banging.
>                          ^^^^^^^^^^^
> hehe, And I thought you said you where doing this WITH the OS routines!
> Looks like I misread your posts!  I always knew going direct to Copper to
> change the screen pos was fast...  :')
>
>>
>>It uses the copper-wrap-method and is really FAST.
>>On my A4000 it needs 10 (TEN!) rasterlines to scroll in
>>X and Y direction with 4 pixel/frame.
>>
>>So check it out.
>>Comments and criticisms are welcome.
>>
>>Cheers
>>Arno
>>
> I think lots of people will check it out, and I am sure you will hear from
>them!  
>

  And here's one of them 8-)

  Yes, I got the code, downloaded it, took some time to re-work some of it
so it would assemble on my 68000 based Amiga 500 (with 3M (512K Chip) RAM and
50M harddrive still running 1.3).

  It's nice to know that it runs on your A4000, but it promptly Guru'ed out
on my system (with 00000004.xxxxxxxx - Illegal instruction).  On closer in-
spection of the code, I found the following instruction:

	clr	$88(a6)		; A6 - custom chips BTW ...

   May I quote from the Amiga Hardware Manual that I got for 1.3?

			NOTE

When strobing any register which responds to either a read or a write, (for
example copjmp2) be sure to use a MOVE.W #$00, not CLR.W.  The CLR instruction
causes a read and a clear (two accesses) on a 68000, but only a single access
on 68020 and above.  This will give different results on different processors.

  And $88(a6) is copjmp1 - BAD PROGRAMMER! BAD PROGRAMMER! 8-) 8-)

  And no, when I fixed that did it work.  It still bombed.  As far as I can
trace it, it appears that you are calling 0(execbase) (from the PC of the
illegal instruction, that's the base of Exec on my system).  I just now found
out it was my assembler (but partially your code, the assembler I use is a
bit fussy about spaces).  But I'll try again and call back later 8-)

  -spc (Calling up my Unix box at work, editing your code, and assembling,
	why do you like killing off this wonderful OS? 8-)



Article 1221 of alt.sources.amiga:
Path: news.csos.orst.edu!flop.ENGR.ORST.EDU!rutgers!uwm.edu!cs.utexas.edu!math.ohio-state.edu!darwin.sura.net!paladin.american.edu!news.univie.ac.at!fstgds15.tu-graz.ac.at!fm11ap07.tu-graz.ac.at!hollosi
From: hollosi@fm11ap07.tu-graz.ac.at (Arno Hollosi)
Newsgroups: alt.sources.amiga
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Message-ID: <1vhlt3INNe0u@fstgds15.tu-graz.ac.at>
Date: 14 Jun 93 11:02:59 GMT
References: <1v9juvINNcv1@fstgds15.tu-graz.ac.at>
Organization: Technical University of Graz, Austria
Lines: 21
NNTP-Posting-Host: fm11ap07.tu-graz.ac.at
X-Newsreader: TIN [version 1.2 PL0]

Arno Hollosi (hollosi@fm11ap02.tu-graz.ac.at) wrote:
: This is an example of how to code an smooth 8-Way-Tile-Scroller.
: It's hardware banging, so it isn't recommended for OS-fanatics.

ATTENTION!

There's a bug in '8wayscroller.lha' that will cause a GURU
on any machine with an CPU <'020.

Somewhere in the 'Init_copper'-routine I do a
CLR.W COPJMP1.    (look for  clr $88(a6)).
As I wasn't aware of this problem, CLR makes a READ and WRITE
cycle on an 68000. But COPJMP1 is only a STROBE-Register, so
the READ-cycle can crash (and does so) your machine.

So please change it to:    MOVE.W  #0,$88(a6)

It should now work properly.

Cheers
Arno



Article 33448 of comp.sys.amiga.programmer:
Path: news.csos.orst.edu!flop.ENGR.ORST.EDU!gaia.ucs.orst.edu!umn.edu!news-feed-1.peachnet.edu!gatech!paladin.american.edu!news.univie.ac.at!fstgds15.tu-graz.ac.at!fm11ap01.tu-graz.ac.at!hollosi
From: hollosi@fm11ap01.tu-graz.ac.at (Arno Hollosi)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Date: 15 Jun 1993 10:38:55 GMT
Organization: Technical University of Graz, Austria
Lines: 85
Message-ID: <1vk8rvINNt03@fstgds15.tu-graz.ac.at>
References: <1v9ki1INNcv1@fstgds15.tu-graz.ac.at> <1993Jun14.103149.29744@cc.ic.ac.uk>
NNTP-Posting-Host: fm11ap01.tu-graz.ac.at
X-Newsreader: TIN [version 1.2 PL0]

Hi again!

I updated my source-code, so that it can be assembled with
MACRO68 too. This means it doesn't contain any SEKA/AsmOne-
specific features anymore. Ofcourse the bug was fixed.

I uploaded this new version (V1.04) onto AMINet today.
You should find it in pub/aminet/dev/src in some days in
an AMINet-site near you.
If you can't wait, check out 'alt.sources.amiga'.

Someone asked me how to include copperbars (Turrican,Lionheart,..)
Here is two possible methods:

FIRST (slower) method:
======================

For each line you have:

    WAIT $yy0f,$fffe
    MOVE $0180,color

(copper-instructions ofcourse).

But you have to do the copperwrap too!
So you insert the following at the Y-wrap-postion:

    MOVE $00e0,pl0pth
    MOVE $00e2,pl0ptl
    ....
    MOVE $00f2,pl4ptl

But to insert something into to right position
can be very nasty.


SECOND (I think this one is faster) METHOD:
===========================================

For each line you have:

   WAIT $yy0f,$fffe
   MOVE $0180,$fffe
   MOVE $00e0,pl0pth
   MOVE $00e2,pl0ptl
   ...
   MOVE $00f2,bpl4ptl

Ofcourse you need only to set the BPL-pointers at
the copper-wrap-position so you do the following:

   In every line you do instead of:
   MOVE $00e0,pl0pth
   you do this:
   MOVE $0082,addr_of_next_WAIT_command

($82 is the LOW-word of the Copper1-PC)

This MOVE performs a JUMP to the next WAIT.
(no move into COPJMP1 necessary!)
BUT ATTENTION: the whole copperlist must
be in the same 64K (this means the high-word
must always be the same.)

Just to summarize:
  Build copperlist with MOVE $0082,addr_next_WAIT
  In every frame do:
    restore  MOVE $0082,addr_next_WAIT at the
             old wrap-postion.
    at new wrap-position:
    change   MOVE $0082 INTO MOVE $00e0,pl0pth

(And the best: you never have to change or rebuild the
 other BPL-pointers ($e2-$f2))

This method only needs approx. 1 rasterline!
FAST!!




Cheers
Arno

P.S: my EMail account is valid until 1.7.93 only.



Article 1226 of alt.sources.amiga:
Path: news.csos.orst.edu!flop.ENGR.ORST.EDU!gaia.ucs.orst.edu!news.reed.edu!batcomputer!caen!uwm.edu!cs.utexas.edu!usc!howland.reston.ans.net!xlink.net!scsing.switch.ch!news.univie.ac.at!fstgds15.tu-graz.ac.at!fm11ap01.tu-graz.ac.at!hollosi
From: hollosi@fm11ap01.tu-graz.ac.at (Arno Hollosi)
Newsgroups: alt.sources.amiga
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Date: 15 Jun 1993 10:00:10 GMT
Organization: Technical University of Graz, Austria
Lines: 341
Message-ID: <1vk6jaINNt03@fstgds15.tu-graz.ac.at>
References: <1v9juvINNcv1@fstgds15.tu-graz.ac.at> <1vhlt3INNe0u@fstgds15.tu-graz.ac.at> <1993Jun14.115031.13139@news.uit.no> <ObiWan.81.0@htu.tu-graz.ac.at>
NNTP-Posting-Host: fm11ap01.tu-graz.ac.at
X-Newsreader: TIN [version 1.2 PL0]


Hi again!

This should be the final version of my 8-Way-Tile-Scroller.
I fixed the bug. After some work it can now be assembled with
MACRO68 too. This means it is free of any SEKA/AsmOne-features.
Enjoy!

Cheers
Arno

P.S: Comments and criticisms welcome.
     (my account is valid until 1.7.93)



[[33mDR's Notes[0m: The [1mUUENCODED[0m source file that was here has been removed and
[1mUUDECODED[0m for you, it can be found in [4mFiles/Miscellaneous[0m as
[3m8WayScroller104.LHA[0m]



Article 33483 of comp.sys.amiga.programmer:
Path: news.csos.orst.edu!gaia.ucs.orst.edu!wsrcc.com!fastrac.llnl.gov!usenet.ee.pdx.edu!cs.uoregon.edu!ogicse!uwm.edu!cs.utexas.edu!math.ohio-state.edu!caen!nigel.msen.com!yale.edu!yale!gumby!wmu-coyote!22dussia
From: 22dussia@sol.cs.wmich.edu (Demetri)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Message-ID: <1993Jun15.231306.911@sol.cs.wmich.edu>
Date: 15 Jun 93 23:13:06 GMT
Article-I.D.: sol.1993Jun15.231306.911
References: <1v9ki1INNcv1@fstgds15.tu-graz.ac.at> <1993Jun14.103149.29744@cc.ic.ac.uk> <1vk8rvINNt03@fstgds15.tu-graz.ac.at>
Organization: Western Michigan Univ. Comp. Sci. Dept.
Lines: 37

In article <1vk8rvINNt03@fstgds15.tu-graz.ac.at> hollosi@fm11ap01.tu-graz.ac.at (Arno Hollosi) writes:
>Hi again!
>
>I updated my source-code, so that it can be assembled with
>MACRO68 too. This means it doesn't contain any SEKA/AsmOne-
>specific features anymore. Ofcourse the bug was fixed.
 Junk SEKA/AsmOne! Macro68 is the best.
 As for the bug...well...sorta fixed (or a new bug...)

 What happens to my system (NTSC A2000/'040 Kick2.04 OS2.1) is that AFTER
 your run and EXIT your "demo", The copper is not set correctly, since I
 just get a BLACK screen, but I can still type commands in, and they do
 execute...  Now, looking at your code, find the part where you have :

       jsr  LoadView(a6)
       move.l copinit(a6),$dff080
 And INSERT these lines to fix the problem...

       move.l #$dff000,a6
       move.l gfxbase,a0
       move.l $26(a0),cop1lc(a6)
       move.l $32(a0),cop2lc(a6)

 And this will fix the copper correctly by using the SYSTEM copper view...

 Now, when I run your demo, with those lines added, I get my screen back
 on exit!  Now a comment on that demo, I have done a much faster pixel scroll
 to achieve a "dizzy" effect, why do you limit the max speed to 2 pixels?
 I like *REAL* fast scrolling, I think you should add in some code to allow
 a pixel delay from 0 to 15 pixels...  :')

 Later..
>Cheers
>Arno
>
>P.S: my EMail account is valid until 1.7.93 only.
        Oh, where can we reach you after this date?



Article 33502 of comp.sys.amiga.programmer:
Path: news.csos.orst.edu!flop.ENGR.ORST.EDU!rutgers!gatech!howland.reston.ans.net!paladin.american.edu!news.univie.ac.at!fstgds15.tu-graz.ac.at!fm11ap01.tu-graz.ac.at!hollosi
From: hollosi@fm11ap01.tu-graz.ac.at (Arno Hollosi)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Message-ID: <1vms6mINNfml@fstgds15.tu-graz.ac.at>
Date: 16 Jun 93 10:21:10 GMT
References: <1v9ki1INNcv1@fstgds15.tu-graz.ac.at> <1993Jun14.103149.29744@cc.ic.ac.uk> <1vk8rvINNt03@fstgds15.tu-graz.ac.at> <1993Jun15.231306.911@sol.cs.wmich.edu>
Organization: Technical University of Graz, Austria
Lines: 35
NNTP-Posting-Host: fm11ap01.tu-graz.ac.at
X-Newsreader: TIN [version 1.2 PL0]

:        move.l #$dff000,a6
:        move.l gfxbase,a0
:        move.l $26(a0),cop1lc(a6)
:        move.l $32(a0),cop2lc(a6)

Never heard of this problem before.
Hmm. My program NEVER changes COP2LC.
So why must you set it back ??
I thought Loadview(OldView) would do this for me!!!
BTW, I only used PAL-Amigas to check it.

:  to achieve a "dizzy" effect, why do you limit the max speed to 2 pixels?

I don't know if you've read the README-file, but there you
would have read the following:
PRESS FIRE to double your speed !!!!!
So it means MAX. 4 pixel/frame, which is really FAST.
If this is still too slow for you, then just change
'blt_cntx', 'blt_cnty' and the according tables 'blt_tabx' and
'blt_taby'.
You should be able to manage MAX. 16 pixel/frame.
So try it yourself. It isn't hard to do.
I PROVIDED THE SOURCE-CODE, SO THAT YOU CAN MAKE YOUR OWN CHANGES.
 
: >P.S: my EMail account is valid until 1.7.93 only.
:         Oh, where can we reach you after this date?

From July to September I only can be reached via SNAIL-MAIL.
Address:  Arno Hollosi, Oberndorf 313, A-6322 Kirchbichl, AUSTRIA
In October I'll get a new account here at my university.
My username will be hollosi too, but the @fm11ap01.tu-graz.ac.at
will change.

Cheers
Arno



Article 33600 of comp.sys.amiga.programmer:
Path: news.csos.orst.edu!flop.ENGR.ORST.EDU!ogicse!uwm.edu!math.ohio-state.edu!sdd.hp.com!portal!danb
From: danb@shell.portal.com (Dan E Babcock)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: SOURCE: 8-Way-Smooth-Scrolling
Message-ID: <C8svw6.C2F@unix.portal.com>
Date: 18 Jun 93 04:45:37 GMT
Article-I.D.: unix.C8svw6.C2F
References: <1vk8rvINNt03@fstgds15.tu-graz.ac.at> <1993Jun15.231306.911@sol.cs.wmich.edu> <1vpjubINN5hs@fstgds15.tu-graz.ac.at>
Sender: news@unix.portal.com
Organization: Portal Communications Company -- 408/973-9111 (voice) 408/973-8091 (data)
Lines: 22
Nntp-Posting-Host: jobe

In article <1vpjubINN5hs@fstgds15.tu-graz.ac.at> hollosi@fm11ap03.tu-graz.ac.at (Arno Hollosi) writes:
>Demetri (22dussia@sol.cs.wmich.edu) wrote:
>
>For everyone who uses MACRO68!
>In the README-file I wrote, that you shouldn't use resident MACLIBs.
>This is, because MACRO68 seems to have some problems with 'em.
>Demetri mailed me again, and as I thought it was the following:
>  MACRO68 assembled the following line incorrect.
>  >  move.l copinit(a6),$dff080
>  MACRO68 (using resident MACLIBs) made
>  >  move.l $00(a6),$dff080     (0 ???!!)
>  instead of
>  >  move.l $26(a0),$dff080
>
>So be careful with the resident MACLIBs.
>I don't know, if MACRO68 has got a BUG, or if the MACLIBs were not
>compiled correctly.

Neither. Your code is wrong. The symbol you want is "gb_copinit". "copinit"
is indeed zero (defined in graphics/copper.i).

Dan
