Hi.
In 4e4th the PROMPT is a forth word, executed right after INTERPRET .
That way it is easy to modify.
I use character ACK ( $06 EMIT ) as signal for the 4e4th-IDE shell.
You may serve other information with the prompt string, like the  
current number base, or what ever you need.

mk


; C PROMPT  --            prompt user
     HEADLESS PROMPT,DOCOLON
         IF PREFIXPROMPT!=1
           DW STATE,FETCH,ZEROEQUAL,qbran
           DEST PROMPT1
           DW lit,06H,EMIT ; send ACK
           DW BASE,FETCH,DUP,HEX,lit,'$',EMIT,lit, 
02,ZEROUDOTR,BASE,STORE
           DW XISQUOTE
           DB 3,'ok '    ; for traditional Forth style
           DW ITYPE
         ENDIF
PROMPT1:DW EXIT


Am 02.08.2014 um 16:46 schrieb Paolo Garro:

> Hi Erich,
> You are pretty right...
> Wait the " ok" and then the "\n> " prompt is not a valid solution.
> In the middle of a ":" definition, the response is a sole " ok"  
> without a prompt so it is ambiguous in general.
> I've also tried to wait for an error message r"\?\? -\d+ \d+ \n> $"  
> to stop the loop while any other response was intended ok.
> But I still have the timeout calibrating problem.
> An unambiguous EOT char will state that mcu is ready.
>
> Paolo
>
>
> Inviato da Samsung Mobile
>
> -------- Original message --------
> Subject: [Amforth] Adding WANT_X and a forth constant in asm (was:  
> HW flow
>       control)
> From: Erich Waelde <ew.fo...@nassur.net>
> To: amforth-devel@lists.sourceforge.net
> CC:
>
> Hi Paolo,
>
> Thank you for your response.
>
> On 08/02/2014 01:39 PM, Paolo Garro wrote:
>> Hi Erich
>> There is nothing wrong.
>> Me too I'm reading the echo char while transmitting.
>> The timeout problem is while receiving form the mcu.
>> After transmitting a line you stay earing for a response.
>> How can I know when the response is complete?
> When you received the prompt "\n> ".
>> Wait a lot of seconds is not so logic.
>> How can I know if the mcu is ready to receive another line?
> When you received the "\n> " prompt, too, I think.
>
>> An XON ending char would be fine...
>
> I have the timeout question in my stuff as well, but it is
> not easy. There are several (more than 1) controllers on
> the same rs485 bus. I do not want them to just send anything
> unless I asked them. So I removed any output from startup
> including the prompt. When I address one controller I send
> its address (with the highest bit set) and it shall "wake up"
> and present it's prompt. I also added the controller address
> to the prompt itself, a station with address $4f will answer
> as
> "\n~4F> "
> and the programm controlling everything needs to wait for this
> string to be received. This particular setup cannot work with
> xon/xoff. The bus has only one pair of cables. Therefore I want
> to see each and every character echoed, so I know the remote
> station is still avalailable (connected and alive). But that
> is just my setup and I'm not saying, you are wrong. I just
> doubt that it will help you as much as you think.
>
>
> So lets assume for the moment, you want XOFF/XON hw flow control.
> Fine. So you select two output pins of the controller to drive
> the signals. Still fine. Next question: where in amForth do you
> assert the xon and xoff signals? I might be wrong, but the
> prompt function looks like the correct place to me to assert XON.
> You are at the same place, where the prompt is sent. So does
> XON help you?
>
> Again, I might be wrong alltogether. And if you really want xon/xoff,
> it can definitely be added to your system. And if it works, great!
>
> You can add
> .set WANT_XON_XOFF = 1
> in your "template.asm" or equivalent file and use it in any other
> assembly file like so
>
> .if  WANT_XON_XOFF == 1
>   .set XON_XOFF_PORT = PORTD    ; io location, not mem mapped
>   .set XON_XOFF_PIN  = 7
> .endif
>
> or similar. If you want to have a FORTH constant at the same time
> to know for example the pin number, then you create the equivalent
> asm code in a file (words/xon_xoff.asm for example):
>
> ; asm(XON_XOFF_PIN) constant xon_xoff_pin
> VE_XON_XOFF_PIN:
>     .dw $FF0C
>     .db "xon_xoff_pin"
>     .dw VE_HEAD
>     .set VE_HEAD = VE_XON_XOFF_PIN
> XT_XON_XOFF_PIN:
>     .dw PFA_DOVARIABLE
> PFA_XON_XOFF_PIN:
>     .dw XON_XOFF_PIN
>
> this creates the "xon_xoff_pin" as a forth constant. Please note
> that this code is adapted from my experiments with amForth-4.6, so
> it might need to change for a current version. The file needs to
> be included into your build via dict_appl.inc
>
> .if  WANT_XON_XOFF == 1
>   .include "words/xon_xoff.asm"
> .endif
>
> Rebuild amForth, test, repeat. Look into core/words/ for inspiration.
>
> Hope this helps and good luck!
>
> Cheers,
> Erich
>
>
> ---------------------------------------------------------------------- 
> --------
> Want fast and easy access to all the code in your enterprise? Index  
> and
> search up to 200,000 lines of code with a free copy of Black Duck
> Code Sight - the same software that powers the world's largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel
> ---------------------------------------------------------------------- 
> --------
> Want fast and easy access to all the code in your enterprise? Index  
> and
> search up to 200,000 lines of code with a free copy of Black Duck
> Code Sight - the same software that powers the world's largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> Amforth-devel mailing list for http://amforth.sf.net/
> Amforth-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amforth-devel


------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to