; S+6 : Enhanced MVX\C98\T1 Edition
; the code used to power the se6..t1 pico processor
;
; format: 
; 	[charonic] [parms...] '-' [nasic] [expression]
; val : value 
; var : variable (charonic) note that variables are
;	also flags, e.g. '=' is the equal flag, set after
;	a compare ('c').
; lbl : label number (must be unique)
; trg : target number (one of the elsewhere defined label numbers)
;
l var val - let %1 = %2
; "var" is a bit of a mistatement... register is a better way
; of looking at it. however, they may also serve as flags...
; for example, '=','>', '<', are set by the compare instructions.
;
u lbl - declare subroutine number %1
t - return from subroutine
o lbl - declare stage number %1
j trg - jump unconditionally to %1
; jumps and branches are like goto or gosub,
; depending on the nature of the target.
; this means that you don't have to think of goto
; or gosub, only of wheter to jump or not.
; the conditional branches also adapt to the target
; type in this way.
;
g - restart subroutine again
;        *** new for C98.T1!
; this is used to allow a subroutine to restart itself
; without causing recursion. equivalent to "GOTO start_of_sub".
; without this, it would be impossible for a sub routine to
; restart itself without calling itself.
; gee, that felt redundant... but, g is really important. 
; trust me.
;
e - end program cleanly
; '-' is End of File, and fallout exit
;
r - rest 
; - the infamous "rest point". 
; this used to stand for "refresh", as in, refresh screen.
; it really pauses the virtual pico processor... remember
; that it is a burst mode processor, without the r commands,
; it would never stop (until it reached and end), and never
; pause to allow you to read its state.
; in the future, perhaps the actual pauses will be hidden
; in the gfx libs or something. or burst mode will be optional
; e.g. burst, step, or limited burst modes.
;
; simple maths
;
a var val - add %2 to %1
s var val - subtract %2 from %1
;
; boolean stuff
;
c var val - compare %1 with %2
; flags are cleared by default, 
; and set on the following conditions:
;	'=' if equal
;	'>' if %1 > %2 
;	'<' if %1 < %2 
;
b var trg - branch to %2 if %1 is true
n var trg - branch to %2 if %1 is false
;
*
; end of list 
-
; end of file fall thru, just in case
;
--]

