Re: [stella] DASM 'upgrade' in progress

Subject: Re: [stella] DASM 'upgrade' in progress
From: Manuel Polik <cybergoth@xxxxxxxx>
Date: Fri, 21 Mar 2003 08:01:19 +0100
Hi Andrew!

> Input welcome.

A year ago I was trying to get away from DASM, since I 
thought it was dead forever. I'm very thankful that now 
one of us is in control of it.

Back then I ported Gunfight to TASM, XASM & ATASM to see 
how they work for me and was talking with the authors as 
well.

Here's one of the suggestions I directed to the author 
of XASM for example and it'd be great if you could 
consider this for DASM:

----------------------------------------------------

This is a sprite of a 2600 game, the number '7':

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.byte $0C ; ....xx..

.byte $06 ; .....xx.

.byte $42 ; .x....x.

.byte $7E ; .xxxxxx.


As you can see, it is turned upside down. That is,

because it is displayed with a decrementing loop to save

cycles. Now I thought it'd be cool to have some

assembler directive like that:


.VERTSWAP

.byte $7E ; .xxxxxx.

.byte $42 ; .x....x.

.byte $06 ; .....xx.

.byte $0C ; ....xx..

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.VERTSWAPEND


So one could *paint* the graphics as one sees them and

the compiler would turn it upside down. When I now for

any reason switch to an incrementing loop, all I'd have

to do was deleting the directives.


The second thing is similar:

The Atari 2600 VCS has registers that are read in 
reversed order.

(Only god knows why...  )


To get the '7' to display there, you'd have to make your

data look like this:

.byte $7E ; .xxxxxx.

.byte $42 ; .x....x.

.byte $06 ; .xx.....

.byte $0C ; ..xx....

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.byte $18 ; ...xx...


It'd of course be cool to have some directive like this:

.HORSWAP

.byte $7E ; .xxxxxx.

.byte $42 ; .x....x.

.byte $06 ; .....xx.

.byte $0C ; ....xx..

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.byte $18 ; ...xx...

.HORSWAPEND


Which would make the assembler horizontally reverse 
every byte.


Best would be of course if you could even combine 
.VERTSWAP and

.HORSWAP

----------------------------------------------------

The ".HORSWAP" was matching with the rest of the XASM 
syntax, this could of course be done any DASM style...

Another thing I'd like to ask for is keeping a good 
"changes.txt", which keeps track of what and why you did  
and how this changes any current behaviour, what use it 
makes for the user and how it is utilized and what 
changes in the sources are possible (and required? I 
hope not, otherwize any new DASM should probably have 
commandline-switches for working "the old" way to keep 
all archive treasures compilable...)

Maybe another idea was to have mode switches. For 
example I wouldn't like to have DASM add nibbles with 
"|" as Christopher thought of. To compile the Gunfight 
music for example this is exactly required as is, a 
logical ORing of two bytes. (The general idea with the 
variable .bitstring and defining variable length BITS is 
totally awesome though! Killer idea!)

Greetings,
	Manuel

----------------------------------------------------------------------------------------------
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/


Current Thread