Any label that starts with a period is considered local to the scope between the two nearest global labels.
That's how local labels are implemented in the Kowalski assembler.
That seems to be the common way to do it, though I must mention that I'm not entirely happy about that. I reguarly run into circumstances where I wish the local labels had a slightly broader scope, such as routines with an additional entry point in the middle. I've not really figured out a better way to handle that. (Which is precisely why we need research on this sort of thing!)
The 2500AD assembler I used in the 1980's used the $ after the name to mean local, which I like more. (I see BDD wrote the same thing about another assembler too while I was writing this.)
My instinct is that searching is easier with the dot-prefix form, especially when you're searching for things like "the next global symbol." I also find the dot form a bit cleaner looking, but that could be put down to arbitrary personal preference (though there's no question that it's less "ink on the page").
I preferred the trailing dollar sign as well, as the dot-label form looks too much like a pseudo-op to me.
I don't see how; the WDC pseudo-ops don't start with a dot. Or do you prefer "non-standard" pseudo-ops?
--------------------------------------------------------------
The rest of this can be skipped if you're already convinced that trying out a different assmebler syntax is not always an entirely useless endeavour.
I'm not sure your analogy holds water here. It would be like questioning one's decision to purchase an automobile with a manual transmission instead of an automatic one (the implication being stick shift is inferior technology, something most long-haul truckers would not agree with).
Even granting that you meant generic manual transmission rather than specifically "stick shift" (which is only one form of manual transmission, and usually assumes a particular clutching system; compare with e.g. sequential manual transmissions), your transmission analogy seems to support my argument. You're quite correct that various forms of manual and automatic transmission have different good and bad points in various situations, which is why there are various options currently in use.
In this case, the OP is, to belabor an analogy, proposing a new way to operate the clutch and shift gears that is different than found in most automobiles.
I'm not totally buying this analogy, either, but even if we accept it, there are very good reasons to do exactly this. I've found, for example, that often one can achieve significant insight and understanding of something only from actually designing and implementing some versions of it different from the "the way it's done." And frequently enough, this kind of research does produce better ways of doing things.
A standard exists for the 6502 assembly language that was promulgated by the original manufacturer of the device. As part of that original standard, assembler directives (pseudo-ops) were published....
Sure. And not only does that standard entirely lack features important to many (such as any form of label scoping), but also has some questionable design decisions. For example, it makes "bare" operands sometimes immediate (
JMP $1234, loading a register with the given value) and sometimes indirect (
LDA $1234, loading a register with the value pointed to by the given value; you must prepend a
# for immediate with that instruction). That's actually been an annoying source of errors in my programming, and certainly is a design decision worth examining.
Given that, any assembler that significantly deviates from the published standard is going to create porting headaches for anyone who tries to use it.
That's simply not true. It may create porting headaches for any situation
you can imagine, but I can imagine situations where this would
reduce porting headaches, such as when one's trying to write a single program targeting multiple microprocessors. (I anticipate you may object to say that this could never be the case; since I don't here want to get into a very lengthy discussion of my ideas relating to this, I'm just going to suggest that if this is your initial reaction you either accept that some people have had ideas that you haven't had, or spend some time making a sincere attempt to figure out how such a situation could arise.)