Vectrex Programming question

ScottH

Distinguished
Mar 5, 2005
7
0
18,510
Archived from groups: rec.games.vectrex (More info?)

Hello!

The past week I've been carefully going through Chris Saloman's great
Vectrex programming tutorial (thanks for doing that, Chris!). I've been
having a blast trying out the bios functions, etc. I'm having trouble
understanding the bios rotating function:

Rot_VL_ab ($F610)

I basically took Chris's Vector List turtle example and tried to rotate
it in a continuous clockwise circle. Could one of you programming aces
please give this a once-over and see if there is something obvious that
I'm doing wrong? You'll notice at one point, the turtle vector is seen
fine, but gets garbled as it rotates. Perhaps the angle that I'm
storing in the A register prior to the BIOS rotate call is not as
trivial as I thought it is?

Thanks!

Scott


;***************************************************************************
; DEFINE SECTION
;***************************************************************************
INCLUDE "VECTREX.I"
xpos EQU $C800
ypos EQU $C801
ctr EQU $C802
rotate_bios_ab EQU $f610 ; this is the rotating BIOS
function
buffer EQU $C950 ; transformation buffer (the
results of the rotation on the turtle vector will go in here)


; start of vectrex memory with cartridge name...
ORG 0
;***************************************************************************
; HEADER SECTION
;***************************************************************************
DB "g GCE 1998", $80 ; 'g' is copyright sign
DW music1 ; music from the rom
DB $F8, $50, $20, -$55 ; height, width, rel y,
rel x
; (from 0,0)
DB "VECTOR LIST TEST",$80 ; some game
information,
; ending with $80
DB 0 ; end of game header
;***************************************************************************
; CODE SECTION
;***************************************************************************
; here the cartridge program starts off
LDA #0
STA xpos
STA ypos
main:
JSR Wait_Recal ; Vectrex BIOS
recalibration
LDA #$10 ; scaling factor of $80
to A
STA VIA_t1_cnt_lo ; move to time 1 lo,
this
; means scaling
LDA 0
LDB 0
JSR Moveto_d ; move the vector beam
to
; 0,0
JSR Intensity_5F ; Sets the intensity of
the
; vector beam to $5f
LDX #buffer ; this is the
transformation buffer
; drawn vector list to
X
JSR Draw_VLc ; draw the Vector List




INC ctr
LDA ctr
CMPA #$03 ; once every four loops,
rotate the turtle vector list
BNE back

lda xpos ; get rotation
ldb #23 ; number of points
ldx #turtle_line_list ; address of the TURTLE
vector list
ldu #buffer ; transform buffer
jsr rotate_bios_ab ; transfer to the BIOS
rotate function

INC xpos ; increase the ANGLE to
rotate (on the next rotate call)
LDA #$00
STA ctr
back: BRA main ; and repeat forever
;***************************************************************************
SPRITE_BLOW_UP EQU 20
turtle_line_list:
DB 23 ; number of vectors - 1
DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
DB 2*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
DB 0*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
DB 1*SPRITE_BLOW_UP, 3*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, 4*SPRITE_BLOW_UP
DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
DB -3*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
DB -3*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, -4*SPRITE_BLOW_UP
DB 1*SPRITE_BLOW_UP, -3*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
DB 0*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
DB 2*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
DB -1*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP

;***************************************************************************
END main
;***************************************************************************
 
Archived from groups: rec.games.vectrex (More info?)

Hi!

I don't know if can be of some help (cause I've not done any VecProgramming
yet 🙂

But I wanted to know if I could get through the APIs and the ROM Exec...

ScottH wrote:
> Hello!
>
> The past week I've been carefully going through Chris Saloman's great
> Vectrex programming tutorial (thanks for doing that, Chris!). I've been
> having a blast trying out the bios functions, etc. I'm having trouble
> understanding the bios rotating function:
>
> Rot_VL_ab ($F610)
If I understand it right, the diffy list entering into this Sub should be
w/o the leading # of vectors (which you enter correctly via register B) and
w/o a optional scale factor.

> I basically took Chris's Vector List turtle example and tried to rotate
> it in a continuous clockwise circle. Could one of you programming aces
> please give this a once-over and see if there is something obvious that
> I'm doing wrong? You'll notice at one point, the turtle vector is seen
> fine, but gets garbled as it rotates. Perhaps the angle that I'm
> storing in the A register prior to the BIOS rotate call is not as
> trivial as I thought it is?

> ...

>;***************************************************************************
> ; here the cartridge program starts off
> LDA #0
> STA xpos
> STA ypos
> main:
> JSR Wait_Recal ; Vectrex BIOS
> recalibration
> LDA #$10 ; scaling factor of $80
> to A
> STA VIA_t1_cnt_lo ; move to time 1 lo,
> this
> ; means scaling
> LDA 0
> LDB 0
> JSR Moveto_d ; move the vector beam
> to
> ; 0,0
> JSR Intensity_5F ; Sets the intensity of
> the
> ; vector beam to $5f
> LDX #buffer ; this is the
> transformation buffer
> ; drawn vector list to
> X
> JSR Draw_VLc ; draw the Vector List
>
> INC ctr
> LDA ctr
> CMPA #$03 ; once every four loops,
> rotate the turtle vector list
> BNE back
>
> lda xpos ; get rotation
> ldb #23 ; number of points
> ldx #turtle_line_list ; address of the TURTLE
> vector list
Me thinks, this should be:
ldx #turtle_line_list+1 ; address of ...

> ldu #buffer ; transform buffer
> jsr rotate_bios_ab ; transfer to the BIOS
> rotate function
>
> INC xpos ; increase the ANGLE to
> rotate (on the next rotate call)
> LDA #$00
> STA ctr
> back: BRA main ; and repeat forever
>
;***************************************************************************
> SPRITE_BLOW_UP EQU 20
> turtle_line_list:
> DB 23 ; number of vectors - 1
> DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> ...

But there is another gotcha. Have a look at your "buffer". You (the rot
subroutine) sets it up at *the end* of your main loop, but you use it via
Draw_VLc (which I could'nt find in the ROMexec) uninitialized!

HTH. Salut, Jörg

--
gpg/pgp key # 0xe40a9d7a
fingerprint d4f8 b448 835b 7bcf 4161 ce35 7e8b ab47 e40a 9d7a
 
Archived from groups: rec.games.vectrex (More info?)

Here's my source code about a similar thing -
http://www.pelikonepeijoonit.net/vec/rotation.as9

Maybe that helps.


"ScottH" <sub17_5k@yahoo.com> wrote in message news:<1110043884.734847.50310@l41g2000cwc.googlegroups.com>...
> Hello!
>
> The past week I've been carefully going through Chris Saloman's great
> Vectrex programming tutorial (thanks for doing that, Chris!). I've been
> having a blast trying out the bios functions, etc. I'm having trouble
> understanding the bios rotating function:
>
> Rot_VL_ab ($F610)
>
> I basically took Chris's Vector List turtle example and tried to rotate
> it in a continuous clockwise circle. Could one of you programming aces
> please give this a once-over and see if there is something obvious that
> I'm doing wrong? You'll notice at one point, the turtle vector is seen
> fine, but gets garbled as it rotates. Perhaps the angle that I'm
> storing in the A register prior to the BIOS rotate call is not as
> trivial as I thought it is?
>
> Thanks!
>
> Scott
>
>
> ;***************************************************************************
> ; DEFINE SECTION
> ;***************************************************************************
> INCLUDE "VECTREX.I"
> xpos EQU $C800
> ypos EQU $C801
> ctr EQU $C802
> rotate_bios_ab EQU $f610 ; this is the rotating BIOS
> function
> buffer EQU $C950 ; transformation buffer (the
> results of the rotation on the turtle vector will go in here)
>
>
> ; start of vectrex memory with cartridge name...
> ORG 0
> ;***************************************************************************
> ; HEADER SECTION
> ;***************************************************************************
> DB "g GCE 1998", $80 ; 'g' is copyright sign
> DW music1 ; music from the rom
> DB $F8, $50, $20, -$55 ; height, width, rel y,
> rel x
> ; (from 0,0)
> DB "VECTOR LIST TEST",$80 ; some game
> information,
> ; ending with $80
> DB 0 ; end of game header
> ;***************************************************************************
> ; CODE SECTION
> ;***************************************************************************
> ; here the cartridge program starts off
> LDA #0
> STA xpos
> STA ypos
> main:
> JSR Wait_Recal ; Vectrex BIOS
> recalibration
> LDA #$10 ; scaling factor of $80
> to A
> STA VIA_t1_cnt_lo ; move to time 1 lo,
> this
> ; means scaling
> LDA 0
> LDB 0
> JSR Moveto_d ; move the vector beam
> to
> ; 0,0
> JSR Intensity_5F ; Sets the intensity of
> the
> ; vector beam to $5f
> LDX #buffer ; this is the
> transformation buffer
> ; drawn vector list to
> X
> JSR Draw_VLc ; draw the Vector List
>
>
>
>
> INC ctr
> LDA ctr
> CMPA #$03 ; once every four loops,
> rotate the turtle vector list
> BNE back
>
> lda xpos ; get rotation
> ldb #23 ; number of points
> ldx #turtle_line_list ; address of the TURTLE
> vector list
> ldu #buffer ; transform buffer
> jsr rotate_bios_ab ; transfer to the BIOS
> rotate function
>
> INC xpos ; increase the ANGLE to
> rotate (on the next rotate call)
> LDA #$00
> STA ctr
> back: BRA main ; and repeat forever
> ;***************************************************************************
> SPRITE_BLOW_UP EQU 20
> turtle_line_list:
> DB 23 ; number of vectors - 1
> DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> DB 2*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> DB 0*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> DB 1*SPRITE_BLOW_UP, 3*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, 4*SPRITE_BLOW_UP
> DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> DB -3*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> DB -3*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, -4*SPRITE_BLOW_UP
> DB 1*SPRITE_BLOW_UP, -3*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> DB 0*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> DB 2*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> DB -1*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
>
> ;***************************************************************************
> END main
> ;***************************************************************************
 
Archived from groups: rec.games.vectrex (More info?)

Manu,

I found your website 10 minutes after I posted this message and your
rotation program showed me the light! Thanks! I got it working
perfectly.

PS: anyone actively programming or working on anything these days?

Scott



Manu / PKP wrote:
> Here's my source code about a similar thing -
> http://www.pelikonepeijoonit.net/vec/rotation.as9
>
> Maybe that helps.
>
>
> "ScottH" <sub17_5k@yahoo.com> wrote in message
news:<1110043884.734847.50310@l41g2000cwc.googlegroups.com>...
> > Hello!
> >
> > The past week I've been carefully going through Chris Saloman's
great
> > Vectrex programming tutorial (thanks for doing that, Chris!). I've
been
> > having a blast trying out the bios functions, etc. I'm having
trouble
> > understanding the bios rotating function:
> >
> > Rot_VL_ab ($F610)
> >
> > I basically took Chris's Vector List turtle example and tried to
rotate
> > it in a continuous clockwise circle. Could one of you programming
aces
> > please give this a once-over and see if there is something obvious
that
> > I'm doing wrong? You'll notice at one point, the turtle vector is
seen
> > fine, but gets garbled as it rotates. Perhaps the angle that I'm
> > storing in the A register prior to the BIOS rotate call is not as
> > trivial as I thought it is?
> >
> > Thanks!
> >
> > Scott
> >
> >
> >
;***************************************************************************
> > ; DEFINE SECTION
> >
;***************************************************************************
> > INCLUDE "VECTREX.I"
> > xpos EQU $C800
> > ypos EQU $C801
> > ctr EQU $C802
> > rotate_bios_ab EQU $f610 ; this is the rotating BIOS
> > function
> > buffer EQU $C950 ; transformation buffer
(the
> > results of the rotation on the turtle vector will go in here)
> >
> >
> > ; start of vectrex memory with cartridge name...
> > ORG 0
> >
;***************************************************************************
> > ; HEADER SECTION
> >
;***************************************************************************
> > DB "g GCE 1998", $80 ; 'g' is copyright
sign
> > DW music1 ; music from the
rom
> > DB $F8, $50, $20, -$55 ; height, width,
rel y,
> > rel x
> > ; (from 0,0)
> > DB "VECTOR LIST TEST",$80 ; some game
> > information,
> > ; ending with $80
> > DB 0 ; end of game
header
> >
;***************************************************************************
> > ; CODE SECTION
> >
;***************************************************************************
> > ; here the cartridge program starts off
> > LDA #0
> > STA xpos
> > STA ypos
> > main:
> > JSR Wait_Recal ; Vectrex BIOS
> > recalibration
> > LDA #$10 ; scaling factor of
$80
> > to A
> > STA VIA_t1_cnt_lo ; move to time 1
lo,
> > this
> > ; means scaling
> > LDA 0
> > LDB 0
> > JSR Moveto_d ; move the vector
beam
> > to
> > ; 0,0
> > JSR Intensity_5F ; Sets the
intensity of
> > the
> > ; vector beam to
$5f
> > LDX #buffer ; this is the
> > transformation buffer
> > ; drawn vector list
to
> > X
> > JSR Draw_VLc ; draw the Vector
List
> >
> >
> >
> >
> > INC ctr
> > LDA ctr
> > CMPA #$03 ; once every four
loops,
> > rotate the turtle vector list
> > BNE back
> >
> > lda xpos ; get rotation
> > ldb #23 ; number of points
> > ldx #turtle_line_list ; address of the
TURTLE
> > vector list
> > ldu #buffer ; transform buffer
> > jsr rotate_bios_ab ; transfer to the
BIOS
> > rotate function
> >
> > INC xpos ; increase the ANGLE
to
> > rotate (on the next rotate call)
> > LDA #$00
> > STA ctr
> > back: BRA main ; and repeat
forever
> >
;***************************************************************************
> > SPRITE_BLOW_UP EQU 20
> > turtle_line_list:
> > DB 23 ; number of vectors
- 1
> > DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > DB 2*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> > DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > DB 0*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> > DB 1*SPRITE_BLOW_UP, 3*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, 4*SPRITE_BLOW_UP
> > DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > DB -3*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > DB -3*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> > DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, -4*SPRITE_BLOW_UP
> > DB 1*SPRITE_BLOW_UP, -3*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> > DB 0*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > DB 2*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> > DB -1*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> >
> >
;***************************************************************************
> > END main
> >
;***************************************************************************
 
Archived from groups: rec.games.vectrex (More info?)

Actually, I am. 🙂

I'm experimenting with a C-compiler, and it seems to work quite nicely... I
have made some music and sound routines so far, as well as interfaces to the
most common BIOS routines. Seems to work ok....

Soon it is time to start developing my first real game.... It will be
interesting. 🙂

Best regards, Jonas


"ScottH" <sub17_5k@yahoo.com> skrev i meddelandet
news:1110229468.986871.269710@l41g2000cwc.googlegroups.com...
> Manu,
>
> I found your website 10 minutes after I posted this message and your
> rotation program showed me the light! Thanks! I got it working
> perfectly.
>
> PS: anyone actively programming or working on anything these days?
>
> Scott
>
>
>
> Manu / PKP wrote:
> > Here's my source code about a similar thing -
> > http://www.pelikonepeijoonit.net/vec/rotation.as9
> >
> > Maybe that helps.
> >
> >
> > "ScottH" <sub17_5k@yahoo.com> wrote in message
> news:<1110043884.734847.50310@l41g2000cwc.googlegroups.com>...
> > > Hello!
> > >
> > > The past week I've been carefully going through Chris Saloman's
> great
> > > Vectrex programming tutorial (thanks for doing that, Chris!). I've
> been
> > > having a blast trying out the bios functions, etc. I'm having
> trouble
> > > understanding the bios rotating function:
> > >
> > > Rot_VL_ab ($F610)
> > >
> > > I basically took Chris's Vector List turtle example and tried to
> rotate
> > > it in a continuous clockwise circle. Could one of you programming
> aces
> > > please give this a once-over and see if there is something obvious
> that
> > > I'm doing wrong? You'll notice at one point, the turtle vector is
> seen
> > > fine, but gets garbled as it rotates. Perhaps the angle that I'm
> > > storing in the A register prior to the BIOS rotate call is not as
> > > trivial as I thought it is?
> > >
> > > Thanks!
> > >
> > > Scott
> > >
> > >
> > >
>
;***************************************************************************
> > > ; DEFINE SECTION
> > >
>
;***************************************************************************
> > > INCLUDE "VECTREX.I"
> > > xpos EQU $C800
> > > ypos EQU $C801
> > > ctr EQU $C802
> > > rotate_bios_ab EQU $f610 ; this is the rotating BIOS
> > > function
> > > buffer EQU $C950 ; transformation buffer
> (the
> > > results of the rotation on the turtle vector will go in here)
> > >
> > >
> > > ; start of vectrex memory with cartridge name...
> > > ORG 0
> > >
>
;***************************************************************************
> > > ; HEADER SECTION
> > >
>
;***************************************************************************
> > > DB "g GCE 1998", $80 ; 'g' is copyright
> sign
> > > DW music1 ; music from the
> rom
> > > DB $F8, $50, $20, -$55 ; height, width,
> rel y,
> > > rel x
> > > ; (from 0,0)
> > > DB "VECTOR LIST TEST",$80 ; some game
> > > information,
> > > ; ending with $80
> > > DB 0 ; end of game
> header
> > >
>
;***************************************************************************
> > > ; CODE SECTION
> > >
>
;***************************************************************************
> > > ; here the cartridge program starts off
> > > LDA #0
> > > STA xpos
> > > STA ypos
> > > main:
> > > JSR Wait_Recal ; Vectrex BIOS
> > > recalibration
> > > LDA #$10 ; scaling factor of
> $80
> > > to A
> > > STA VIA_t1_cnt_lo ; move to time 1
> lo,
> > > this
> > > ; means scaling
> > > LDA 0
> > > LDB 0
> > > JSR Moveto_d ; move the vector
> beam
> > > to
> > > ; 0,0
> > > JSR Intensity_5F ; Sets the
> intensity of
> > > the
> > > ; vector beam to
> $5f
> > > LDX #buffer ; this is the
> > > transformation buffer
> > > ; drawn vector list
> to
> > > X
> > > JSR Draw_VLc ; draw the Vector
> List
> > >
> > >
> > >
> > >
> > > INC ctr
> > > LDA ctr
> > > CMPA #$03 ; once every four
> loops,
> > > rotate the turtle vector list
> > > BNE back
> > >
> > > lda xpos ; get rotation
> > > ldb #23 ; number of points
> > > ldx #turtle_line_list ; address of the
> TURTLE
> > > vector list
> > > ldu #buffer ; transform buffer
> > > jsr rotate_bios_ab ; transfer to the
> BIOS
> > > rotate function
> > >
> > > INC xpos ; increase the ANGLE
> to
> > > rotate (on the next rotate call)
> > > LDA #$00
> > > STA ctr
> > > back: BRA main ; and repeat
> forever
> > >
>
;***************************************************************************
> > > SPRITE_BLOW_UP EQU 20
> > > turtle_line_list:
> > > DB 23 ; number of vectors
> - 1
> > > DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > > DB 2*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> > > DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > > DB 0*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> > > DB 1*SPRITE_BLOW_UP, 3*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, 4*SPRITE_BLOW_UP
> > > DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, 1*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > > DB -3*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > > DB -3*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> > > DB 1*SPRITE_BLOW_UP, 0*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, -4*SPRITE_BLOW_UP
> > > DB 1*SPRITE_BLOW_UP, -3*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> > > DB 0*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > > DB 2*SPRITE_BLOW_UP, 2*SPRITE_BLOW_UP
> > > DB 2*SPRITE_BLOW_UP, -1*SPRITE_BLOW_UP
> > > DB -1*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > > DB 2*SPRITE_BLOW_UP, -2*SPRITE_BLOW_UP
> > >
> > >
>
;***************************************************************************
> > > END main
> > >
>
;***************************************************************************
>