51 lines
840 B
Plaintext
51 lines
840 B
Plaintext
CLEAR
|
|
|
|
CODE$="++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--"
|
|
CODE$=CODE$+"------.>>+.>++."
|
|
|
|
INPUT$=""
|
|
II=0 'INPUT INDEX
|
|
|
|
PIM TAPE(30000)
|
|
P=0
|
|
|
|
FOR I=0 TO LEN(CODE$)-1
|
|
|
|
C$=MID$(CODE$, I, 1)
|
|
IF C$==">" THEN P=P+1
|
|
IF C$=="<" THEN P=P-1
|
|
IF C$=="+" THEN TAPE(P)=TAPE(P)+1
|
|
IF C$=="-" THEN TAPE(P)=TAPE(P)-1
|
|
IF C$=="." THEN PRINT CHR$(TAPE(P));
|
|
IF C$=="," THEN @COMMA
|
|
IF C$=="[" AND TAPE(P)==0 THEN @LBRACKET
|
|
IF C$=="]" AND TAPE(P)!=0 THEN @RBRACKET
|
|
GOTO @NEXT
|
|
|
|
@COMMA
|
|
TAPE(P)=ASC(MID$(INPUT$, II, 1))
|
|
II=II+1
|
|
GOTO @NEXT
|
|
|
|
@LBRACKET
|
|
NEST = 1
|
|
@FINDR
|
|
I=I+1
|
|
C$=MID$(CODE$, I, 1)
|
|
IF C$=="[" THEN NEST=NEST+1
|
|
IF C$=="]" THEN NEST=NEST-1
|
|
IF NEST THEN @FINDR
|
|
GOTO @NEXT
|
|
|
|
@RBRACKET
|
|
NEST=1
|
|
@FINDL
|
|
I=I-1
|
|
C$=MID$(CODE$, I, 1)
|
|
IF C$=="[" THEN NEST=NEST-1
|
|
IF C$=="]" THEN NEST=NEST+1
|
|
IF NEST THEN @FINDL
|
|
|
|
@NEXT
|
|
NEXT
|