SP=R1!
RSP=R1!
SR=R2!
-rDODOES=R4!
-rDOCON=R5!
-rDOVAR=R6!
-rDOCOL=R7!
+rDOCOL=R4!
+rDODOES=R5!
+rDOCON=R6!
+rDOVAR=R7!
R=R4!
Q=R5!
P=R6!
TOS=R14!
PSP=R15!
-
! forth words filter
D\.R=D\.R
\.S=\.S!
\#S=\#S!
S\"=S\"!
+S\_=S\_!
T\{=T\{!
\}T=\}T!
\(RTS=\(RTS!
CTS\)=CTS\)!
+
+
+! ============================================
+! SR bits :
+! ============================================
+\#C=\#1! = SR(0) Carry flag
+\#Z=\#2! = SR(1) Zero flag
+\#N=\#4! = SR(2) Negative flag
+\#GIE=\#8! = SR(3) Enable Int
+\#CPUOFF=\#\$10!= SR(4) CPUOFF
+\#OSCOFF=\#\$20!= SR(5) OSCOFF
+\#SCG0=\#\$40! = SR(6) SCG0
+\#SCG1=\#\$80! = SR(7) SCG1
+\#V=\#\$100! = SR(8) oVerflow flag
+\#UF9=\#\$200! = SR(9) User Flag 1 used by ?NUMBER --> INTERPRET --> LITERAL to process double numbers, else free for use.
+\#UF10=\#\$400! = SR(10) User Flag 2
+\#UF11=\#\$800! = SR(11) User Flag 3
+
+LPM4=\$F8! SR(LPM4+GIE)
+LPM3=\$D8! SR(LPM3+GIE)
+LPM2=\$98! SR(LPM2+GIE)
+LPM1=\$58! SR(LPM1+GIE)
+LPM0=\$18! SR(LPM0+GIE)
+
+! ============================================
+! PORTx, Reg bits :
+! ============================================
+BIT0=1!
+BIT1=2!
+BIT2=4!
+BIT3=8!
+BIT4=\$10!
+BIT5=\$20!
+BIT6=\$40!
+BIT7=\$80!
+BIT8=\$100!
+BIT9=\$200!
+BIT10=\$400!
+BIT11=\$800!
+BIT12=\$1000!
+BIT13=\$2000!
+BIT14=\$4000!
+BIT15=\$8000!
+
+! ============================================
+! symbolic codes :
+! ============================================
+RET=MOV \@R1+,R0! \ MOV @RSP+,PC
+RETA=MOVA \@R1+,R0! \ MOV @RSP+,PC
+NOP=MOV \#0,R3! \ one word one cycle
+NOP2=\$3C00 ,! \ compile JMP 0 one word two cycles
+NOP3=MOV R0,R0! \ MOV PC,PC one word three cycles
+NEXT=MOV \@R13+,R0! \ MOV @IP+,PC
+
+DOVAR=\$1287! \ CALL rDOVAR
+DOCON=\$1286! \ CALL rDOCON
+DODOES=\$1285! \ CALl rDODOES
\ No newline at end of file