OSDN Git Service

V303, newcomer: FastForth I2C TERMINAL
[fast-forth/master.git] / inc / FastForthREGtoTI.pat
index 7115431..f3f037f 100644 (file)
@@ -7,10 +7,10 @@ PC=R0!
 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!
@@ -24,7 +24,6 @@ IP=R13!
 TOS=R14!
 PSP=R15!
 
-
 ! forth words filter
 D\.R=D\.R
 
@@ -42,6 +41,7 @@ S\>\==S\>\=!
 \.S=\.S!
 \#S=\#S!
 S\"=S\"!
+S\_=S\_!
 
 T\{=T\{!
 \}T=\}T!
@@ -50,3 +50,60 @@ U\.R=U\.R!
 
 \(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