On 2006-07-11, Patrick McNamara wrote:
> Timothy Miller wrote:
> >On 7/11/06, Hamish <[EMAIL PROTECTED]> wrote:
> >
> >>
> >>ASSERT
> >>
> >>beacause all it does is assert signals.
> >
> >The discussion is not productive. If you want it to be ASSERT, then
> >make it ASSERT. I might only suggest that it be abbreviated. How
> >about "ASS"? :)
> The only problem I have with ASSERT (other than Tim's smart ASS
> abbreviation :)) is when no flags are set, you get:
>
> ASSERT
>
> Assert what?
>
> How about: DELAY? It makes resonable sense in the context. We are
> putting in a delay in the program flow to keep timing correct. All the
> opcodes already allow for optional flag assertion on them, adding the
> flags to DELAY doesn't mess up the perceived meaning as much as it does
> with NOOP, and the abbreviation of DEL isn't so bad either.
I am not really opposed to 'NOOP' since I think of the assembler as
VLIW, but how about 'WAIT', meaning 'wait with sigals set thus' or 'just
wait with default signals'. 'DELAY' is also fine, but I think 'DEL' is
ambiguous ('delete').
About the syntax in general, I think it may be more readable if the
repeat count better distinguished from the other operand(s). If the
cycle count specifications are small, a possibility would be
<repeat>? <space>+ <insn> (<space>* ":" <flag>+)? <space>+ <operand>?
so that, with a bit of indentation effort (or support from the editor),
a program might look like
; Vertical program
addr :vhd 0 ; vid addr = start of framebuffer
call vsync + 1
2 call vsync
2 call :v vblank ; back porch
fetch:v 640 ; fetch first scanline
call :v vbp + 1
call :v vbp
479 call :v vactive
wait :v ; Already fetched last scanline
call :v vactive + 1
2 call :v vblank ; front porch
call :v vblank_short
jump :vh 0
Some may think the left column is line numbers, but then it's time to
modernise the Fortran code ;-). The left numbers are of course Church
numerals being applied to the following video state monad, or just
"repeats" for those who like the simplicity of plain English.
If we allow constant definitions and arithmetic, the "left column" may
become too short, in which case it may be better to keep the repeats on
the right. How about tying them closer to the instruction so they don't
appear as operands:
.define HRES 640
addr :vhd 0
call vsync + 1
call*2 vsync
call*2:v vblack
fetch :v HRES
call :v vbp + 1
call :v vbp
call*(HRES + 39) :v vactive
wait :v
call :v vactive + 1
call*2:v vblank
call :v vblank_short
jump :vh 0
or use '^' in place of '*' to be more mathematically correct.
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)