;KOWALSKI SIMULATOR ASSEMBLER DIRECTIVES — BigDumbDinosaur 2012/07/01
;
 IO_AREA           ;define console I/O area address (no leading dot in IO_AREA)
 .ASCII .BYTE .DB  ;generate static data, such as strings, tables, etc.
 .ASCIS            ;generate character string w/bit 7 of last byte set
 .DBYTE .DD        ;assemble big-endian word
 .DCB              ;equivalent to * = * + N, where N is arg to .DCB,...
                   ;w/optional initialization pattern, e.g., .DCB 10,$FF, which will
                   ;reserve 10 bytes & fill them with $FF
 .DS .RS           ;equivalent to * = * + N, where N is arg to .DS or .RS
 .DW .WORD         ;assemble little-endian word
 .ELSE             ;conditional assembly directive
 .END              ;mark end of source file, optional
 .ENDIF            ;mark end of conditional assembly
 .ENDM             ;mark end of macro definition
 .ENDR             ;mark end of repeated text
 .ERROR            ;emit an error message & halt assembly,...
                   ;e.g., .ERROR "!!! operand out of range !!!"
 .EXITM            ;halt macro expansion
 .IF               ;start conditional assembly
 .INCLUDE          ;insert contents of named source file...
                   ;e.g., .INCLUDE "include\atomic.65s"
 .IO_WND           ;define console I/O window size (cols, rows)
 .MACRO            ;mark start of macro definition, w/optional comma-separated parameters
 .OPT              ;set global assembly options
 .ORG              ;set start of assembly address, same as * = <addr>
 .PARAMTYPE        ;determine macro parameter type: 1 = numeric, 2 = string,...
                   ;.IF .PARAMTYPE(.op) == 1
 .REF              ;determine if label/symbol was defined,...
                   ;e.g., .IF .REF(ABC) evaluates true if...
                   ;ABC has been defined; logic can be reversed...
                   ;with !.REF (ABC)
 .REPEAT .REPT     ;repeat following text N times
 .ROM_AREA         ;set simulator's write-protected address range
 .SET              ;(re)define variable value, e.g., .SET .=
 .START            ;set simulator start of execution address
 .STR .STRING      ;generate text string, 1st byte is length, 255 bytes maximum
 .STRLEN           ;determine macro parameter string length

;.IF evaluations can use the following binary operators:
;
;    ==  is equal to
;    !=  is not equal to
;    >   is greater than
;    <   is less than
;
;.IF .op means "if .op is non-zero".
