flashforth-devel Mailing List for FlashForth: for PIC and Atmega (Page 22)
Brought to you by:
oh2aun
You can subscribe to this list here.
| 2011 |
Jan
|
Feb
(22) |
Mar
(3) |
Apr
(4) |
May
(6) |
Jun
(8) |
Jul
|
Aug
(6) |
Sep
|
Oct
(20) |
Nov
(9) |
Dec
(4) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2012 |
Jan
(4) |
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(14) |
Nov
(1) |
Dec
|
| 2013 |
Jan
(4) |
Feb
(5) |
Mar
(4) |
Apr
(2) |
May
|
Jun
(29) |
Jul
(7) |
Aug
|
Sep
(20) |
Oct
(9) |
Nov
(2) |
Dec
(7) |
| 2014 |
Jan
|
Feb
(23) |
Mar
(113) |
Apr
(25) |
May
(31) |
Jun
(9) |
Jul
(47) |
Aug
(15) |
Sep
(1) |
Oct
(4) |
Nov
(8) |
Dec
(3) |
| 2015 |
Jan
(21) |
Feb
(1) |
Mar
(18) |
Apr
(16) |
May
(100) |
Jun
(33) |
Jul
|
Aug
(10) |
Sep
(8) |
Oct
(7) |
Nov
(5) |
Dec
|
| 2016 |
Jan
(12) |
Feb
(9) |
Mar
|
Apr
(7) |
May
(5) |
Jun
(9) |
Jul
(1) |
Aug
(2) |
Sep
(17) |
Oct
(3) |
Nov
|
Dec
|
| 2017 |
Jan
(6) |
Feb
(12) |
Mar
(9) |
Apr
(3) |
May
(7) |
Jun
|
Jul
(12) |
Aug
|
Sep
(13) |
Oct
|
Nov
|
Dec
(10) |
| 2018 |
Jan
(1) |
Feb
|
Mar
(7) |
Apr
(4) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(21) |
Oct
(3) |
Nov
|
Dec
|
| 2019 |
Jan
(5) |
Feb
(4) |
Mar
|
Apr
|
May
(3) |
Jun
(11) |
Jul
(4) |
Aug
(6) |
Sep
(3) |
Oct
|
Nov
(9) |
Dec
(7) |
| 2020 |
Jan
(2) |
Feb
(3) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(4) |
Dec
|
| 2021 |
Jan
|
Feb
|
Mar
(8) |
Apr
(40) |
May
(12) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
(4) |
Nov
(10) |
Dec
(4) |
| 2022 |
Jan
(29) |
Feb
(7) |
Mar
(10) |
Apr
|
May
(3) |
Jun
(3) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(6) |
| 2023 |
Jan
(8) |
Feb
|
Mar
(5) |
Apr
(9) |
May
(6) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
(9) |
Aug
(7) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
|
From: Mikael N. <mik...@fl...> - 2015-05-24 10:38:27
|
Yep, You are right. next works bu decrementing the index and checking for carry when the index goes from 0 to 65535. The 0 for..next loops zero times. The 2 for..next loops two times. index values are 1 and 0 65535 for..next loops 65535 times. Index goes from 65534 to 0 for..next was designed to check for the zero count and not loop in case the count is zero. This is very useful in all cases except if you want to loop the full 65536 times. BR Mike On 24.05.2015 13:06, om1zz wrote: > Hmm, while messing with an external memory I need to count over entire unsigned 16bit for-loop range (to work with a block of 65536 data). > > When doing > > 65535 for ... next > > I get 65535 counts ( 65534..0), but I miss 65535th :) > > I've tried > > 0 for ... next > > but that does not loop. I think with zero input it should count over $ffff down to zero to get the full 16bit scope.. |
|
From: om1zz <om...@vo...> - 2015-05-24 10:06:16
|
Hmm, while messing with an external memory I need to count over entire unsigned 16bit for-loop range (to work with a block of 65536 data). When doing 65535 for ... next I get 65535 counts ( 65534..0), but I miss 65535th :) I've tried 0 for ... next but that does not loop. I think with zero input it should count over $ffff down to zero to get the full 16bit scope.. I. |
|
From: om1zz <om...@vo...> - 2015-05-21 18:13:46
|
An another result: Teraterm with my macro, 115k2, dspic33, Fcy=16.6MHz, rxbuf=127, zero transmit delays HC-05 Bluetooth dongle, 115k2 8N1 uploads float.txt in 21secs.. I. |
|
From: Mikael N. <mik...@fl...> - 2015-05-21 04:03:59
|
With 38.4 Kbaud gtkterm to a 7.5 Mhz Fcy dspic it takes 14.5 seconds to send float.txt using gtkterm. Still, on Linux I prefer to use the ff-shell.py. It adds command line editing and history, and the #send command works from the command line. BR Mike On 21.05.2015 02:04, om1zz wrote: > Hi, I've tried the Gtkterm under Ubuntu. > It works so great! > It uploads float.txt in 9(!!) seconds at 115k2, inclusive all comments and blank lines, with zero line transmit delay, with following setup: > > 1. dspic33 = 16.6MHz Fcy, baud 115k2, CA-42 usb dongle, rx buffer=127, tx buffer=15 > 2. Gtkterm: > Configuraton>Port: 115k2 8N1, xon/xoff (not used actually, it seems there is a bug as this switches xon/xoff actually off) > Port: Advanced options: In Wait for this special character..: set CRLF (that is tricky - I've found a copy/paste of CRLF from an editor does the trick, you will see a small picture in a rectangle (single char) in the input field there then). > > Also mind to get the Configuration options you have to do sudo gtkterm, then save the configuration as the opening configuration again means you loose the previously entered info ;) > > Unbelievable fast!! > Igor. > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Flashforth-devel mailing list > Fla...@li... > https://lists.sourceforge.net/lists/listinfo/flashforth-devel > |
|
From: Mikael N. <mik...@fl...> - 2015-05-21 04:03:51
|
With 38.4 Kbaud gtkterm to a 7.5 Mhz Fcy dspic it takes 14.5 seconds to send float.txt using gtkterm. Still, on Linux I prefer to use the ff-shell.py. It adds command line editing and history, and the #send command works from the command line. BR Mike On 21.05.2015 02:04, om1zz wrote: > Hi, I've tried the Gtkterm under Ubuntu. > It works so great! > It uploads float.txt in 9(!!) seconds at 115k2, inclusive all comments and blank lines, with zero line transmit delay, with following setup: > > 1. dspic33 = 16.6MHz Fcy, baud 115k2, CA-42 usb dongle, rx buffer=127, tx buffer=15 > 2. Gtkterm: > Configuraton>Port: 115k2 8N1, xon/xoff (not used actually, it seems there is a bug as this switches xon/xoff actually off) > Port: Advanced options: In Wait for this special character..: set CRLF (that is tricky - I've found a copy/paste of CRLF from an editor does the trick, you will see a small picture in a rectangle (single char) in the input field there then). > > Also mind to get the Configuration options you have to do sudo gtkterm, then save the configuration as the opening configuration again means you loose the previously entered info ;) > > Unbelievable fast!! > Igor. > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Flashforth-devel mailing list > Fla...@li... > https://lists.sourceforge.net/lists/listinfo/flashforth-devel > |
|
From: om1zz <om...@vo...> - 2015-05-20 23:10:48
|
Ah, and you will upload the file to FF with File>Send raw file (it sends it as ascii).. I. >Hi, I've tried the Gtkterm under Ubuntu. >It works so great! >It uploads float.txt in 9(!!) seconds at 115k2, inclusive all comments and blank lines, with zero line transmit delay, with following setup: > >1. dspic33 = 16.6MHz Fcy, baud 115k2, CA-42 usb dongle, rx buffer=127, tx buffer=15 >2. Gtkterm: >Configuraton>Port: 115k2 8N1, xon/xoff (not used actually, it seems there is a bug as this switches xon/xoff actually off) >Port: Advanced options: In Wait for this special character..: set CRLF (that is tricky - I've found a copy/paste of CRLF from an editor does the trick, you will see a small picture in a rectangle (single char) in the input field there then). > >Also mind to get the Configuration options you have to do sudo gtkterm, then save the configuration as the opening configuration again means you loose the previously entered info ;) > >Unbelievable fast!! >Igor. |
|
From: om1zz <om...@vo...> - 2015-05-20 23:04:15
|
Hi, I've tried the Gtkterm under Ubuntu. It works so great! It uploads float.txt in 9(!!) seconds at 115k2, inclusive all comments and blank lines, with zero line transmit delay, with following setup: 1. dspic33 = 16.6MHz Fcy, baud 115k2, CA-42 usb dongle, rx buffer=127, tx buffer=15 2. Gtkterm: Configuraton>Port: 115k2 8N1, xon/xoff (not used actually, it seems there is a bug as this switches xon/xoff actually off) Port: Advanced options: In Wait for this special character..: set CRLF (that is tricky - I've found a copy/paste of CRLF from an editor does the trick, you will see a small picture in a rectangle (single char) in the input field there then). Also mind to get the Configuration options you have to do sudo gtkterm, then save the configuration as the opening configuration again means you loose the previously entered info ;) Unbelievable fast!! Igor. |
|
From: om1zz <om...@vo...> - 2015-05-20 09:44:32
|
This is v.0.3 update patch: 1. save your TT settings with your transmit delays into 'teraterm.ini' 2. save your TT settings with zero transmit delays into 'teraterm_ztrd.ini' 3. when working in TT window directly it uses your delays so you can copy/paste your source code 4. when using below macro it sets delays to zero, after the upload it restores the ini back to the one with your delays 5. if you may know how to set transmit delays in the macro it could be used instead of rather heavier 'restoresetup' Still beta, no warranties of any kind :) Igor ; TeraTerm Macro Script for FlashForth ; Serial set within TT session ; Opens a file, reads each line, and sends the line to FF ; while waiting on "\n" or "??" from FF to handshake ; IgorM c 5/2015, No warranties of any kind ; v.0.3 :Main Yes = 1 ; for YesNoBox result No = 0 ; for YesNoBox result BlankLine = 0 restoresetup 'teraterm_ztrd.ini' call OpenFile call ReadFile call CloseFile restoresetup 'teraterm.ini' END >This is v0.2 of the script, it removes blank lines and comments if required, stops and asks on ?? error. >You have to mod the ? to ?? in the asm. >Uploads the 665 lines long float.txt in 8 seconds (921k, pic33, Fcy 40MHz) fine ;) >Still beta, no warranties of any kind :) > > ; TeraTerm Macro Script fro FlashForth > ; Serial set within TT session > ; Opens a file, reads each line, and sends the line to FF > ; while waiting on "OK" or "??" after the \r\n sent > ; IgorM c 5/2015 > ; v.0.2 > > :Main > Yes = 1 ; for YesNoBox result > No = 0 ; for YesNoBox result > BlankLine = 0 > call OpenFile > call ReadFile > call CloseFile > END > > :OpenFile > FileNameBox 'Choose a file to upload' > FileChosen = result > if FileChosen = Yes then > FileOpen fhandle inputstr 0 > else > end > endif > RETURN > > :ReadFile > YesNoBox 'Do you want to skip blank lines and comments?' 'Skip?' > SkipBlanks = result > > while 1 > > ; Read a line from the file.. > > filereadln fhandle line > EndOfFile = result > > if EndOfFile = Yes break > > StrLen line > LineLen = result > > if SkipBlanks = Yes then > if LineLen = BlankLine continue > strscan line '\' > if result = 1 continue > if result > 1 then > strremove line result LineLen-result+1 > endif > endif > > sendln line > > timeout = 1 ; 1 sec > wait #13 "??" ; wait on OK(\n) or an Error ?? > > if result = 0 break ; timeout > > ;if result = 1 goto _ok ; OK detected > > if result = 2 then ; exit if ?? Error from FF > YesNoBox 'Error - Do you want proceed w/ Upload?' 'Continue?' > if result = No break > endif > > ; Repeat until the end of the file.. > > endwhile > RETURN > > :CloseFile > FileClose fhandle > RETURN > ;----------------------------------------------------------- > > |
|
From: om1zz <om...@vo...> - 2015-05-20 07:23:56
|
Hi Attila, I've done following experiment (dspic33fj128gp802): 1. rx buffer = 127, tx buffer = 15 2. Fcy 16.588MHz (internal oscillator and PLL) 3. baud 921k600 8N1, zero transmit delays, no flow control 4. CA-42 clone usb serial 4. I did 8 uploads of float.txt, once it stops here: : emitnzeros ( n -- ) 8 constant precision exponent?precision ?? otherwise it uploads fine, in 14 seconds: finit ok<#,ram> Fcy ok<#,ram> 16588 -3.23248e-10 fe. -323.24807E-12 ok<#,ram> 16588 Still the dspic33 is a bit faster as it is a 16bitter. Igor. >Hi Attila, >I think it could be because the 18F is slow to process the incoming data, somehow. >Its speed is 16MHz and it is an 8bitter. >Also double check the size of rx/tx buffers, I use 511 for both (if that fits into the ram, of course). >Igor. > >> >>Hello Igor, >> >>I have tried your TT macro with 18F26K22@64MHz, 38400bps, FT230X, Win7. >>Unfortunately it was not efficient to get rid of the delays. >>Have you any idea why this is? >> >>BR >>Attila Herman >l >> > |
|
From: om1zz <om...@vo...> - 2015-05-20 06:11:07
|
Hi Attila, I think it could be because the 18F is slow to process the incoming data, somehow. Its speed is 16MHz and it is an 8bitter. Also double check the size of rx/tx buffers, I use 511 for both (if that fits into the ram, of course). Igor. > >Hello Igor, > >I have tried your TT macro with 18F26K22@64MHz, 38400bps, FT230X, Win7. >Unfortunately it was not efficient to get rid of the delays. >Have you any idea why this is? > >BR >Attila Herman l > |
|
From: <exp...@vn...> - 2015-05-19 23:01:09
|
Hello Igor, I have tried your TT macro with 18F26K22@64MHz, 38400bps, FT230X, Win7. Unfortunately it was not efficient to get rid of the delays. Have you any idea why this is? BR Attila Herman |
|
From: om1zz <om...@vo...> - 2015-05-19 22:09:07
|
>I have been using the RN41 and RN42 Bluetooth tranceivers. >These support HW flow control and have worked really well. BT module inside a HF receiver - such a creative approach :) BTW the BT antenna should be placed at least lambda/4 from a nearest conductive object :) |
|
From: Mikael N. <mik...@fl...> - 2015-05-19 21:52:33
|
I have been using the RN41 and RN42 Bluetooth tranceivers. These support HW flow control and have worked really well. Here is my youtube video where you can see it in use. https://www.youtube.com/watch?v=bt0S_pLQOvA :-) On 19.05.2015 23:44, om1zz wrote: > As I am a big fan of wireless I use normally HC-05 BTooth dongles with all my dev boards. > The issue with these cheap BT dongles is they do not propagate cts/rts so hw handshake cannot be used.. > Thus a good working sw handshake would come in handy :) > > I've ebayed today 2xftdi232rl 1xPL2303TA 1xCP2102 usb serial dongles to play with (hopefully they all will work with 7-8 x64). > Also I want to investigate whether the Xon/Xoff problem comes from the usb dongles or from Teraterm itself, as I can see in the TT's log the FF sends the XOFF from time to time.. > Igor |
|
From: Mikael N. <mik...@fl...> - 2015-05-19 21:48:43
|
I tried the PICs internal HW FC but it did not work well with FF so I skipped it. The FF UART routines and HW flow control have been reworked slightly since you used them. I am using the HW FC with a microstickII and microstickplus MCP2200 UART USB bridge and it works really well. On 19.05.2015 22:44, Mike Miller wrote: > I have been casually following the thread about TeraTerm. > > I use TeraTerm on Windows, CoolTerm on OSX. > > I have been using hardware handshake, with NO delay. I use a > USB-to-serial adapter using the FTDI chipset, which seems to get the > handshake right. > I has been a couple of years since I wrote these, so I hope I am > including all of the changes. > > To do this, I have modified the UART driver. I use UART #2, FC_TYPE=2 > I also have FC_TYPE=0 defined using the PIC's handshake control, but > that does not work very well. |
|
From: om1zz <om...@vo...> - 2015-05-19 20:45:08
|
>I have been using hardware handshake, with NO delay. I use a >USB-to-serial adapter using the FTDI chipset, which seems to get the >handshake right. The TeraTerm macro (in my today's post) works with zero uart transmit delays and with no flow control set in TT serial setting. I am using an obsolate CA-42 ArkMicro based usb dongle under XP (as there is none x64 driver for 7) wired w/ rx/tx/gnd only. The handshake is done via \n sent by FF. I set FF rx/tx buffers to 511. Works fine here at 921k with dspic33 @40MHz. As I am a big fan of wireless I use normally HC-05 BTooth dongles with all my dev boards. The issue with these cheap BT dongles is they do not propagate cts/rts so hw handshake cannot be used.. Thus a good working sw handshake would come in handy :) I've ebayed today 2xftdi232rl 1xPL2303TA 1xCP2102 usb serial dongles to play with (hopefully they all will work with 7-8 x64). Also I want to investigate whether the Xon/Xoff problem comes from the usb dongles or from Teraterm itself, as I can see in the TT's log the FF sends the XOFF from time to time.. Igor |
|
From: Mike M. <mi...@mo...> - 2015-05-19 19:59:07
|
I have been casually following the thread about TeraTerm.
I use TeraTerm on Windows, CoolTerm on OSX.
I have been using hardware handshake, with NO delay. I use a
USB-to-serial adapter using the FTDI chipset, which seems to get the
handshake right.
I has been a couple of years since I wrote these, so I hope I am
including all of the changes.
To do this, I have modified the UART driver. I use UART #2, FC_TYPE=2
I also have FC_TYPE=0 defined using the PIC's handshake control, but
that does not work very well.
I am using FF 4.8 on the PIC24FJ256GB110, so I map I/O pins:
<snip> in config file:
;;; UART2 configuration
;.equ BAUDRATE2, 38400 ; Serial baudrate UART2,
comment if not used
.equ BAUDRATE2, 115200 ; Serial baudrate UART2,
comment if not used
.equ FC2_TYPE, 2 ; ; 0 = UART CTS/RTS, 1 =
XON/XOFF, 2=(CTS)/RTS software
.equ AUTOBAUD2, 0 ; 0 = to use fixed baudrate
; 1 = Autobaud, First char
after reset must be 'U' (0x55)
;;; UART2 Peripheral pin mapping
.ifdecl RPINR19
.equ U2TXPIN, 17 ; RP17 pin 50
;.equ U2RXPIN, 10 ; RP10 PIN 49
.if FC2_TYPE == 0 ; UART controls RTS, CTS
.equ RPINR19VAL, 0x200a ; msb: U2CTS RP32, lsb: U2RXPIN RP10
.equ U2RTSPIN, 31 ; RP31 (RF13) pin 39 output
.else ; we control RTS, CTS
.equ RPINR19VAL, 0xff0a ; msb: (U2CTS RP32), lsb: U2RXPIN RP10
; we are controlling RTS, CTS
.equ U2RTSPORT, LATF
.equ U2RTSTRIS, TRISF
.equ U2RTSPIN, 13 ;RF13 (RF31) pin 39 output
.equ U2CTSPIN, 12 ;RF12 (RPI32) pin 40 input (not
implemented)
.endif
.endif
<snip> in FF.s:
.ifdecl BAUDRATE2 ; UART2
.ifdecl _U2RXREG
__U2RXInterrupt:
push.s
.ifdef CMAIN
lnk #ISTKSIZ
.endif ; CMAIN
.ifdef PEEPROM
push TBLPAG
.endif
inc2 W14, W14
__U2RXInterrupt0:
bclr IFS1, #U2RXIF
bset iflags, #istream ; Indicate UART activity.
mlit handle(U2RXQUEUE_DATA)+PFLASH
rcall CQUEUE_TOQ ; Space available ? false =
queue is full
cp0 [W14--]
bra z, U2RX_ERR1
bclr U2STA, #OERR
mov U2RXREG, W0 ; get chr
.if (CTRL_O_WARM_RESET == 1); Console only
cp W0, #15
bra z, RESET_FF_1
.endif
.if FC2_TYPE == 1
btsc iflags, #fFC2
bra U2_SKIP_FC_1
cp W0, #XOFF
bra z, __U2RXInterrupt3
.endif
U2_SKIP_FC_1:
mov W0, [++W14]
mlit handle(U2RXQUEUE_DATA)+PFLASH
rcall CQUEUE_TO ; Put to character queue
btsc iflags, #fFC2
bra U2_SKIP_FC_2
.if FC2_TYPE == 1
mov rbuf_wr2, W0
and W0, #0xf, W0
bra nz, __U2RXInterrupt3
__U2RXInterrupt2:
btsc U2STA, #UTXBF ; buffer full?
bra __U2RXInterrupt2
mov #XOFF, W0
mov W0, U2TXREG ; send chr
bset iflags, #ixoff2
.else
.if FC2_TYPE == 2
mov #RX2_OFF_FILL, W0
cp rbuf_lv2
bra n, __U2RXInterrupt3
bset U2RTSPORT, #U2RTSPIN ; RTS low
.endif
.endif
U2_SKIP_FC_2:
__U2RXInterrupt3:
btsc U2STA, #URXDA ; bit #0, data available
bra __U2RXInterrupt0
__U2RXTXIRQ_END:
bra __U1RXTXIRQ_END
U2RX_ERR1:
btss U2STA, #TRMT
bra U2RX_ERR1
mov U2RXREG, W0
mov #'|', W0
mov W0, U2TXREG ; send
bra __U2RXInterrupt3
__U2TXInterrupt:
push.s
.ifdef CMAIN
lnk #ISTKSIZ
.endif ; CMAIN
.ifdef PEEPROM
push TBLPAG
.endif
add W14, #2, W14
bclr IFS1, #U2TXIF ; clear interrupt flag
__U2TXInterrupt0:
btsc U2STA, #UTXBF ; uart buffer full?
bra __U2TXInterrupt3 ; buffer full
mlit handle(U2TXQUEUE_DATA)+PFLASH ; yes buffer ready
rcall CQUEUE_FROMQ ; Character available ?
false = no
cp0 [W14--]
bra z, __U2TXInterrupt3 ; queue empty
mlit handle(U2TXQUEUE_DATA)+PFLASH
rcall CQUEUE_FROM ; Get from character
queue
mov [W14--], W0
mov W0, U2TXREG ; Send chr
__U2TXInterrupt3:
bra __U1RXTXIRQ_END
.endif
.endif
<snip>
wait_silence:
rcall LOCKED
.if FC2_TYPE == 1
btsc U2STA, #UTXBF ; buffer full?
bra wait_silence
mov #XOFF, W2
mov W2, U2TXREG ; send chr
bset iflags, #ixoff2
.else
.if FC2_TYPE == 2
bset U2RTSPORT, #U2RTSPIN ; RTS low
.endif
.endif
.if FC2_TYPE == 1
wbtil:
bclr iflags, #istream
; The delay here should be 10 character times long
; times = Fcy/baud*40
; MJM mov #(FCY/BAUDRATE1*40), W2 ; This loop takes about
5 milliseconds @ 27 Mips
mov #13333, W2 ; This loop takes about 5 milliseconds
@ 27 Mips
wbtil2:
btsc iflags, #istream ; Check for UART activity.
bra wbtil ;
dec W2, W2 ;
bra nz, wbtil2 ;
.endif
return
<snip>
;;; Initialise UART2
.ifdecl BAUDRATE2
.ifdecl _U2RXREG
.if FC2_TYPE == 2 ; remap pins override tris
bclr U2RTSTRIS, #U2RTSPIN
bclr U2RTSPORT, #U2RTSPIN ; RTS high
.endif
.ifdecl RPINR19
mov #RPINR19VAL, W0 ; lsb is RX
mov W0, RPINR19 ; msb: (U2CTS), lsb: U2RX
mov #0x0005, W0 ; U2TX #5
mov.b WREG, RPOR0+U2TXPIN
.if FC2_TYPE == 0 ; UART RTS control MJM
mov #0x0006, W0 ; U2RTS #6
mov.b WREG, RPOR0+U2RTSPIN
; enable hdwe CTS/RTS
bset U2MODE, #UEN1 ; enable hdwe CTS/RTS MJM
.endif
.endif
;// Assign U2TX to pin RP17 (pin #50, RF5) MJM
; RPOR15bits.RP30R = 5; // 5 is code for U2TX
;// Assign U2RX to pin RP10 (pin #49, RF4)
; RPINR19bits.U2RXR = 10;
bclr PMD1, #U2MD ; enable UART2 clk
bset U2MODE, #UARTEN ; enable UART2
.ifdecl BRGH
bset U2MODE, #BRGH ; fast baud rates
.endif
mov #BAUD_DIV2, W0
mov W0, U2BRG
bset U2STA, #UTXEN
.ifdecl AUTOBAUD2
.if (AUTOBAUD2 == 1)
bset U2MODE, #ABAUD
WARM_ABAUD2:
btsc U2MODE, #ABAUD
bra WARM_ABAUD2
bclr IFS1, #U2RXIF
.endif
.endif
bset IEC1, #U2RXIE ; enable U2 interrupts
bset IEC1, #U2TXIE
.endif
.endif
<snip>
.pword paddr(RX1Q_L)+PFLASH
.ifdecl BAUDRATE2 ; UART2
.ifdecl _U2RXREG
U2TXQUEUE_L: ; ( -- queue-addr ) Leave the address of the queue for
UART2
.byte NFA|INLINE|5
.ascii "u2txq"
.align 2
U2TXQUEUE:
mlit handle(U2TXQUEUE_DATA)+PFLASH
return
U2TXQUEUE_DATA:
.word txqueue2
.word TX2_BUF_SIZE-1
.pword paddr(U2TXQUEUE_L)+PFLASH
U2RXQUEUE_L:
.byte NFA|INLINE|5
.ascii "u2rxq"
.align 2
U2RXQUEUE:
mlit handle(U2RXQUEUE_DATA)+PFLASH
return
U2RXQUEUE_DATA:
.word rxqueue2
.word RX2_BUF_SIZE-1
.pword paddr(U2RXQUEUE_L)+PFLASH
TX2_L: ; ( c -- ) Put a character to U2TXQ
.byte NFA|3
.ascii "tx2"
.align 2
TX2:
rcall PAUSE
rcall IDLE_
rcall TX2Q
cp0 [W14--]
bra z, TX2
rcall BUSY_
rcall U2TXQUEUE
rcall CQUEUE_TO ; Put to character queue
rcall U2TXQUEUE
rcall CQUEUE_FROMQ ; Character available ? false = no
mov [W14--], W0
sub #2, W0 ; If there are less than 2 chars
bra nn, TX2_2 ; in TX queue,
bset IFS1, #U2TXIF ; clr interrupt flag
TX2_2:
return
.pword paddr(TX2_L)+PFLASH
TX2Q_L: ; ( -- flag ) Leave false flag if
U2TXQ is full.
.byte NFA|4
.ascii "tx2?"
.align 2
TX2Q:
mlit handle(U2TXQUEUE_DATA)+PFLASH
goto CQUEUE_TOQ ; Space available ? false = queue
is full
.pword paddr(TX2Q_L)+PFLASH
RX2_L:
.byte NFA|3
.ascii "rx2"
.align 2
RX2:
rcall PAUSE
rcall RX2Q
cp0 [W14--]
.if FC2_TYPE == 2 ; MJM
bra nz, RX2_1 ; MJM
bclr U2RTSPORT, #U2RTSPIN ; RTS high
bra RX2
RX2_1:
.else
bra z, RX2 ; MJM
.endif
mlit handle(U2RXQUEUE_DATA)+PFLASH
rcall CQUEUE_FROM ; Get from character
queue
return
.pword paddr(RX2_L)+PFLASH
RX2Q_L:
.byte NFA|4
.ascii "rx2?"
.align 2
RX2Q:
rcall BUSY_
mlit handle(U2RXQUEUE_DATA)+PFLASH
rcall CQUEUE_FROMQ ; Character
available ? false = no
cp0 [W14]
bra nz, RX2Q1
rcall IDLE_
btss iflags, #fFC2
bra RX2Q1
.if FC2_TYPE == 1
btst iflags, #ixoff2
bra z, RX2Q1
bclr iflags, #ixoff2
mlit XON
rcall TX2
.else
.if FC2_TYPE == 2
cp0 rbuf_lv2 ; buffer empty?
bra nz, RX2Q1
bclr U2RTSPORT, #U2RTSPIN ; RTS high
.else ; FC2_TYPE == 0 UART handshake
cp0 rbuf_lv2 ; buffer empty?
bra nz, RX2Q1
mov U2RXREG, W0 ; get chr, dump
.endif
.endif
RX2Q1:
return
.pword paddr(RX2Q_L)+PFLASH
.endif
.endif
<snip>
.pword paddr(RX1Q_L)+PFLASH
.ifdecl BAUDRATE2 ; UART2
.ifdecl _U2RXREG
U2TXQUEUE_L: ; ( -- queue-addr ) Leave the address of the queue for
UART2
.byte NFA|INLINE|5
.ascii "u2txq"
.align 2
U2TXQUEUE:
mlit handle(U2TXQUEUE_DATA)+PFLASH
return
U2TXQUEUE_DATA:
.word txqueue2
.word TX2_BUF_SIZE-1
.pword paddr(U2TXQUEUE_L)+PFLASH
U2RXQUEUE_L:
.byte NFA|INLINE|5
.ascii "u2rxq"
.align 2
U2RXQUEUE:
mlit handle(U2RXQUEUE_DATA)+PFLASH
return
U2RXQUEUE_DATA:
.word rxqueue2
.word RX2_BUF_SIZE-1
.pword paddr(U2RXQUEUE_L)+PFLASH
TX2_L: ; ( c -- ) Put a character to U2TXQ
.byte NFA|3
.ascii "tx2"
.align 2
TX2:
rcall PAUSE
rcall IDLE_
rcall TX2Q
cp0 [W14--]
bra z, TX2
rcall BUSY_
rcall U2TXQUEUE
rcall CQUEUE_TO ; Put to character queue
rcall U2TXQUEUE
rcall CQUEUE_FROMQ ; Character available ? false = no
mov [W14--], W0
sub #2, W0 ; If there are less than 2 chars
bra nn, TX2_2 ; in TX queue,
bset IFS1, #U2TXIF ; clr interrupt flag
TX2_2:
return
.pword paddr(TX2_L)+PFLASH
TX2Q_L: ; ( -- flag ) Leave false flag if
U2TXQ is full.
.byte NFA|4
.ascii "tx2?"
.align 2
TX2Q:
mlit handle(U2TXQUEUE_DATA)+PFLASH
goto CQUEUE_TOQ ; Space available ? false = queue
is full
.pword paddr(TX2Q_L)+PFLASH
RX2_L:
.byte NFA|3
.ascii "rx2"
.align 2
RX2:
rcall PAUSE
rcall RX2Q
cp0 [W14--]
.if FC2_TYPE == 2 ; MJM
bra nz, RX2_1 ; MJM
bclr U2RTSPORT, #U2RTSPIN ; RTS high
bra RX2
RX2_1:
.else
bra z, RX2 ; MJM
.endif
mlit handle(U2RXQUEUE_DATA)+PFLASH
rcall CQUEUE_FROM ; Get from character
queue
return
.pword paddr(RX2_L)+PFLASH
RX2Q_L:
.byte NFA|4
.ascii "rx2?"
.align 2
RX2Q:
rcall BUSY_
mlit handle(U2RXQUEUE_DATA)+PFLASH
rcall CQUEUE_FROMQ ; Character
available ? false = no
cp0 [W14]
bra nz, RX2Q1
rcall IDLE_
btss iflags, #fFC2
bra RX2Q1
.if FC2_TYPE == 1
btst iflags, #ixoff2
bra z, RX2Q1
bclr iflags, #ixoff2
mlit XON
rcall TX2
.else
.if FC2_TYPE == 2
cp0 rbuf_lv2 ; buffer empty?
bra nz, RX2Q1
bclr U2RTSPORT, #U2RTSPIN ; RTS high
.else ; FC2_TYPE == 0 UART handshake
cp0 rbuf_lv2 ; buffer empty?
bra nz, RX2Q1
mov U2RXREG, W0 ; get chr, dump
.endif
.endif
RX2Q1:
return
<snip>
QUIT1:
rcall check_sp
rcall CR
rcall TIB
mov [W14++], [W14] ; dup
rcall TIBSIZE
mlit HOLD_SIZE ; Reserve for hold buffer
rcall MINUS
rcall ACCEPT
.if WRITE_METHOD == 2
.if FC2_TYPE == 1
mov #XOFF, W2
mov W2, U2TXREG ; send chr
bset iflags, #ixoff2
.endif
.endif
rcall SPACE_
rcall INTERPRET
rcall STATE
cp0 [W14--]
bra nz, QUIT1
.if WRITE_METHOD == 2
btss iflags1, #edirty ; If dirty then write after
timeout in PAUSE
.endif
rcall DP_TO_EEPROM
rcall XSQUOTE
.byte 3
.ascii "ok "
.align 2
rcall TYPE
rcall PROMPT
bra QUIT0
return
Mike Miller WB6TMH
Moon Valley Circuits
Glen Ellen, CA 95442
|
|
From: om1zz <om...@vo...> - 2015-05-19 08:23:23
|
This is v0.2 of the script, it removes blank lines and comments if required, stops and asks on ?? error. You have to mod the ? to ?? in the asm. Uploads the 665 lines long float.txt in 8 seconds (921k, pic33, Fcy 40MHz) fine ;) Still beta, no warranties of any kind :) ; TeraTerm Macro Script fro FlashForth ; Serial set within TT session ; Opens a file, reads each line, and sends the line to FF ; while waiting on "OK" or "??" after the \r\n sent ; IgorM c 5/2015 ; v.0.2 :Main Yes = 1 ; for YesNoBox result No = 0 ; for YesNoBox result BlankLine = 0 call OpenFile call ReadFile call CloseFile END :OpenFile FileNameBox 'Choose a file to upload' FileChosen = result if FileChosen = Yes then FileOpen fhandle inputstr 0 else end endif RETURN :ReadFile YesNoBox 'Do you want to skip blank lines and comments?' 'Skip?' SkipBlanks = result while 1 ; Read a line from the file.. filereadln fhandle line EndOfFile = result if EndOfFile = Yes break StrLen line LineLen = result if SkipBlanks = Yes then if LineLen = BlankLine continue strscan line '\' if result = 1 continue if result > 1 then strremove line result LineLen-result+1 endif endif sendln line timeout = 1 ; 1 sec wait #13 "??" ; wait on OK(\n) or an Error ?? if result = 0 break ; timeout ;if result = 1 goto _ok ; OK detected if result = 2 then ; exit if ?? Error from FF YesNoBox 'Error - Do you want proceed w/ Upload?' 'Continue?' if result = No break endif ; Repeat until the end of the file.. endwhile RETURN :CloseFile FileClose fhandle RETURN ;----------------------------------------------------------- ______________________________________________________________ > Od: om1zz <om...@vo...> > Komu: Mikael Nordman <mik...@fl...>, <fla...@li...> > Datum: 19.05.2015 08:08 > Předmět: Re: [Flashforth-devel] TeraTerm Macro for Upload to FF > >Great!!! > >With > >wait #13 ?? > >it waits on a newline coming from FF after each line of code FF has processed as well as an error message, if any (I modded ? to ??). > >The float.txt uploads in 14 seconds with no error (921k6, dspic33, 40MHz Fcy, serial usb CA-42 clone). >:) > >The script needs some finetunig, as the upload now stops at each error which may not be an error.. :) > >IM. > >______________________________________________________________ >> Od: Mikael Nordman <mik...@fl...> >> Komu: <fla...@li...> >> Datum: 19.05.2015 05:59 >> Předmět: Re: [Flashforth-devel] TeraTerm Macro for Upload to FF >> >>Yes. >> >>On 18.05.2015 23:57, om1zz wrote: >>> Does the FF send a new line when ready to receive an another line? >> >> >>------------------------------------------------------------------------------ >>One dashboard for servers and applications across Physical-Virtual-Cloud >>Widest out-of-the-box monitoring support with 50+ applications >>Performance metrics, stats and reports that give you Actionable Insights >>Deep dive visibility with transaction tracing using APM Insight. >>http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >>_______________________________________________ >>Flashforth-devel mailing list >>Fla...@li... >>https://lists.sourceforge.net/lists/listinfo/flashforth-devel >> > >------------------------------------------------------------------------------ >One dashboard for servers and applications across Physical-Virtual-Cloud >Widest out-of-the-box monitoring support with 50+ applications >Performance metrics, stats and reports that give you Actionable Insights >Deep dive visibility with transaction tracing using APM Insight. >http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >_______________________________________________ >Flashforth-devel mailing list >Fla...@li... >https://lists.sourceforge.net/lists/listinfo/flashforth-devel > |
|
From: om1zz <om...@vo...> - 2015-05-19 06:07:48
|
Great!!! With wait #13 ?? it waits on a newline coming from FF after each line of code FF has processed as well as an error message, if any (I modded ? to ??). The float.txt uploads in 14 seconds with no error (921k6, dspic33, 40MHz Fcy, serial usb CA-42 clone). :) The script needs some finetunig, as the upload now stops at each error which may not be an error.. :) IM. ______________________________________________________________ > Od: Mikael Nordman <mik...@fl...> > Komu: <fla...@li...> > Datum: 19.05.2015 05:59 > Předmět: Re: [Flashforth-devel] TeraTerm Macro for Upload to FF > >Yes. > >On 18.05.2015 23:57, om1zz wrote: >> Does the FF send a new line when ready to receive an another line? > > >------------------------------------------------------------------------------ >One dashboard for servers and applications across Physical-Virtual-Cloud >Widest out-of-the-box monitoring support with 50+ applications >Performance metrics, stats and reports that give you Actionable Insights >Deep dive visibility with transaction tracing using APM Insight. >http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >_______________________________________________ >Flashforth-devel mailing list >Fla...@li... >https://lists.sourceforge.net/lists/listinfo/flashforth-devel > |
|
From: Mikael N. <mik...@fl...> - 2015-05-19 03:58:42
|
Yes. On 18.05.2015 23:57, om1zz wrote: > Does the FF send a new line when ready to receive an another line? |
|
From: om1zz <om...@vo...> - 2015-05-18 20:57:32
|
Does the FF send a new line when ready to receive an another line? ______________________________________________________________ > Od: Mikael Nordman <mik...@fl...> > Komu: <fla...@li...> > Datum: 18.05.2015 22:42 > Předmět: Re: [Flashforth-devel] TeraTerm Macro for Upload to FF > >You could try using > > waitln "" > >to wait for the newline instead of OK > >BR Mike > > >On 18.05.2015 21:52, om1zz wrote: >> This is a quick hack for TerTerm - Upload to FF, while waiting on OK >> (sync) and interrupting the upload when FF sends ?? (currently only >> ?). The serial settings comes from the active TT session. >> Tried at 921k, it works, but not fully tested, as I do not have OK at >> end of each line from FF, so it waits 500ms and continues. >> With OK it will immediately follow with the next line. >> The FF decides when it sends the OK upon receive of the line - that >> establishes the syncing with Terminal. >> During a normal TT session click on Control>Macro, select this Macro >> (save below source to ie. file "FFupload.ttl"), select file to upload >> and select if you want to skip empty lines. >> >> >> ; TeraTerm Macro Script for FlashForth Upload >> ; Serial is set within the active TT session >> ; Opens a file, reads each line, and sends the line to FF >> ; while waiting on "OK" or "??" after the \r\n sent >> ; IgorM 5/2015 >> >> :Main >> Yes = 1 ; for YesNoBox result >> No = 0 ; for YesNoBox result >> BlankLine = 0 >> call OpenFile >> call ReadFile >> call CloseFile >> END >> >> :OpenFile >> FileNameBox 'Choose the file to upload' >> FileChosen = result >> if FileChosen = Yes then >> FileOpen fhandle inputstr 0 >> else >> end >> endif >> RETURN >> >> :ReadFile >> YesNoBox 'Do you want to skip blank lines?' 'Skip blanks?' >> SkipBlanks = result >> >> while 1 >> >> ; Read a line from the file.. >> >> filereadln fhandle line >> EndOfFile = result >> >> if EndOfFile = Yes then >> break >> endif >> >> StrLen line >> LineLen = result >> >> if SkipBlanks = Yes then >> if LineLen = BlankLine then >> continue >> endif >> endif >> >> sendln line >> >> timeout = 0 ; 0 secs >> mtimeout = 300 ; 300msecs >> wait "OK" "??" ; wait on OK or error >> ;if result = 0 break ; timeout, currently it simply timeouts >> ;if result = 1 goto ok ; OK detected - sync >> if result = 2 break ; exit if ?? from FF >> >> ; Repeat until the end of the file. >> >> endwhile >> RETURN >> >> :CloseFile >> FileClose fhandle >> RETURN >> ;----------------------------------------------------------- >> >> I. >> >> >> ------------------------------------------------------------------------------ >> One dashboard for servers and applications across >> Physical-Virtual-Cloud >> Widest out-of-the-box monitoring support with 50+ applications >> Performance metrics, stats and reports that give you Actionable >> Insights >> Deep dive visibility with transaction tracing using APM Insight. >> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >> _______________________________________________ >> Flashforth-devel mailing list >> Fla...@li... >> https://lists.sourceforge.net/lists/listinfo/flashforth-devel > > >------------------------------------------------------------------------------ >One dashboard for servers and applications across Physical-Virtual-Cloud >Widest out-of-the-box monitoring support with 50+ applications >Performance metrics, stats and reports that give you Actionable Insights >Deep dive visibility with transaction tracing using APM Insight. >http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >_______________________________________________ >Flashforth-devel mailing list >Fla...@li... >https://lists.sourceforge.net/lists/listinfo/flashforth-devel > |
|
From: Mikael N. <mik...@fl...> - 2015-05-18 20:41:39
|
You could try using waitln "" to wait for the newline instead of OK BR Mike On 18.05.2015 21:52, om1zz wrote: > This is a quick hack for TerTerm - Upload to FF, while waiting on OK > (sync) and interrupting the upload when FF sends ?? (currently only > ?). The serial settings comes from the active TT session. > Tried at 921k, it works, but not fully tested, as I do not have OK at > end of each line from FF, so it waits 500ms and continues. > With OK it will immediately follow with the next line. > The FF decides when it sends the OK upon receive of the line - that > establishes the syncing with Terminal. > During a normal TT session click on Control>Macro, select this Macro > (save below source to ie. file "FFupload.ttl"), select file to upload > and select if you want to skip empty lines. > > > ; TeraTerm Macro Script for FlashForth Upload > ; Serial is set within the active TT session > ; Opens a file, reads each line, and sends the line to FF > ; while waiting on "OK" or "??" after the \r\n sent > ; IgorM 5/2015 > > :Main > Yes = 1 ; for YesNoBox result > No = 0 ; for YesNoBox result > BlankLine = 0 > call OpenFile > call ReadFile > call CloseFile > END > > :OpenFile > FileNameBox 'Choose the file to upload' > FileChosen = result > if FileChosen = Yes then > FileOpen fhandle inputstr 0 > else > end > endif > RETURN > > :ReadFile > YesNoBox 'Do you want to skip blank lines?' 'Skip blanks?' > SkipBlanks = result > > while 1 > > ; Read a line from the file.. > > filereadln fhandle line > EndOfFile = result > > if EndOfFile = Yes then > break > endif > > StrLen line > LineLen = result > > if SkipBlanks = Yes then > if LineLen = BlankLine then > continue > endif > endif > > sendln line > > timeout = 0 ; 0 secs > mtimeout = 300 ; 300msecs > wait "OK" "??" ; wait on OK or error > ;if result = 0 break ; timeout, currently it simply timeouts > ;if result = 1 goto ok ; OK detected - sync > if result = 2 break ; exit if ?? from FF > > ; Repeat until the end of the file. > > endwhile > RETURN > > :CloseFile > FileClose fhandle > RETURN > ;----------------------------------------------------------- > > I. > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across > Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable > Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Flashforth-devel mailing list > Fla...@li... > https://lists.sourceforge.net/lists/listinfo/flashforth-devel |
|
From: om1zz <om...@vo...> - 2015-05-18 18:52:20
|
This is a quick hack for TerTerm - Upload to FF, while waiting on OK (sync) and interrupting the upload when FF sends ?? (currently only ?). The serial settings comes from the active TT session.
Tried at 921k, it works, but not fully tested, as I do not have OK at end of each line from FF, so it waits 500ms and continues.
With OK it will immediately follow with the next line.
The FF decides when it sends the OK upon receive of the line - that establishes the syncing with Terminal.
During a normal TT session click on Control>Macro, select this Macro (save below source to ie. file "FFupload.ttl"), select file to upload and select if you want to skip empty lines.
; TeraTerm Macro Script for FlashForth Upload
; Serial is set within the active TT session
; Opens a file, reads each line, and sends the line to FF
; while waiting on "OK" or "??" after the \r\n sent
; IgorM 5/2015
:Main
Yes = 1 ; for YesNoBox result
No = 0 ; for YesNoBox result
BlankLine = 0
call OpenFile
call ReadFile
call CloseFile
END
:OpenFile
FileNameBox 'Choose the file to upload'
FileChosen = result
if FileChosen = Yes then
FileOpen fhandle inputstr 0
else
end
endif
RETURN
:ReadFile
YesNoBox 'Do you want to skip blank lines?' 'Skip blanks?'
SkipBlanks = result
while 1
; Read a line from the file..
filereadln fhandle line
EndOfFile = result
if EndOfFile = Yes then
break
endif
StrLen line
LineLen = result
if SkipBlanks = Yes then
if LineLen = BlankLine then
continue
endif
endif
sendln line
timeout = 0 ; 0 secs
mtimeout = 300 ; 300msecs
wait "OK" "??" ; wait on OK or error
;if result = 0 break ; timeout, currently it simply timeouts
;if result = 1 goto ok ; OK detected - sync
if result = 2 break ; exit if ?? from FF
; Repeat until the end of the file.
endwhile
RETURN
:CloseFile
FileClose fhandle
RETURN
;-----------------------------------------------------------
I.
|
|
From: om1zz <om...@vo...> - 2015-05-18 15:28:58
|
The idea: to send "ok' from FF when \r\n arrived AND rx_buffer is empty AND there is no flashing or other background task running AND ... So the actual delay with sending ok after \r\n receive is managed by FF.. I. ______________________________________________________________ > Od: "om1zz" <om...@vo...> > Komu: Mikael Nordman <mik...@fl...>, <fla...@li...> > Datum: 18.05.2015 17:07 > Předmět: Re: [Flashforth-devel] FF 5.x - Xon Xoff with Teraterm > >Mike, the flashing behaviour will not change in FF. >By sending ok with each line you just provide a syncing with terminal. >Now you may have 300lines of comments without any ok (any sync), or a word def 300 lines long also without any sync thus the overruns occur. >Igor. > > > >______________________________________________________________ >> Od: Mikael Nordman <mik...@fl...> >> Komu: <fla...@li...> >> Datum: 18.05.2015 16:56 >> Předmět: Re: [Flashforth-devel] FF 5.x - Xon Xoff with Teraterm >> >>I considered to print OK after every line but then I did not want to >>change the old behaviour. So I made the ff-shell to just wait for newlines. >> >>The approach with Amforth would not work with FF anyway. >>Thats because the block write to flash may occur in the middle of a word. >>In contrast Amforth does not have any such block write. I think it >>writes each cell separately to flash, thus always having a constant delay. >> >>But you can try to modify QUIT to print OK after every line. >> >>BR Mike >> >>On 18.05.2015 16:03, om1zz wrote: >>> Peter, Mikael, thanks for the info! >>> I've tried the python ff-shell under XP with no luck (it throws some errors). >>> >>> There is a small editor/loader called Forfiter, I used to use in past. >>> You can set cr/nl delay to, for example, 1000ms, and any upcoming 'ok' will bypass that delay then. >>> The Forfiter works fine with amforth, but with FF there is an issue - the FF does not return 'ok' after each line when it receives lines (amforth does). >>> So with single liners it works nice (it receives 'ok' and goes immediately to the next line), but with comments and words defs over many lines it simply waits 1000ms at each line until the final 'ok' arrives. >>> Would it be possible to print 'ok' after each line received in FF?? >>> I. >> >>------------------------------------------------------------------------------ >>One dashboard for servers and applications across Physical-Virtual-Cloud >>Widest out-of-the-box monitoring support with 50+ applications >>Performance metrics, stats and reports that give you Actionable Insights >>Deep dive visibility with transaction tracing using APM Insight. >>http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >>_______________________________________________ >>Flashforth-devel mailing list >>Fla...@li... >>https://lists.sourceforge.net/lists/listinfo/flashforth-devel >> > |
|
From: om1zz <om...@vo...> - 2015-05-18 15:07:19
|
Mike, the flashing behaviour will not change in FF. By sending ok with each line you just provide a syncing with terminal. Now you may have 300lines of comments without any ok (any sync), or a word def 300 lines long also without any sync thus the overruns occur. Igor. ______________________________________________________________ > Od: Mikael Nordman <mik...@fl...> > Komu: <fla...@li...> > Datum: 18.05.2015 16:56 > Předmět: Re: [Flashforth-devel] FF 5.x - Xon Xoff with Teraterm > >I considered to print OK after every line but then I did not want to >change the old behaviour. So I made the ff-shell to just wait for newlines. > >The approach with Amforth would not work with FF anyway. >Thats because the block write to flash may occur in the middle of a word. >In contrast Amforth does not have any such block write. I think it >writes each cell separately to flash, thus always having a constant delay. > >But you can try to modify QUIT to print OK after every line. > >BR Mike > >On 18.05.2015 16:03, om1zz wrote: >> Peter, Mikael, thanks for the info! >> I've tried the python ff-shell under XP with no luck (it throws some errors). >> >> There is a small editor/loader called Forfiter, I used to use in past. >> You can set cr/nl delay to, for example, 1000ms, and any upcoming 'ok' will bypass that delay then. >> The Forfiter works fine with amforth, but with FF there is an issue - the FF does not return 'ok' after each line when it receives lines (amforth does). >> So with single liners it works nice (it receives 'ok' and goes immediately to the next line), but with comments and words defs over many lines it simply waits 1000ms at each line until the final 'ok' arrives. >> Would it be possible to print 'ok' after each line received in FF?? >> I. > >------------------------------------------------------------------------------ >One dashboard for servers and applications across Physical-Virtual-Cloud >Widest out-of-the-box monitoring support with 50+ applications >Performance metrics, stats and reports that give you Actionable Insights >Deep dive visibility with transaction tracing using APM Insight. >http://ad.doubleclick.net/ddm/clk/290420510;117567292;y >_______________________________________________ >Flashforth-devel mailing list >Fla...@li... >https://lists.sourceforge.net/lists/listinfo/flashforth-devel > |
|
From: Mikael N. <mik...@fl...> - 2015-05-18 14:55:49
|
I considered to print OK after every line but then I did not want to change the old behaviour. So I made the ff-shell to just wait for newlines. The approach with Amforth would not work with FF anyway. Thats because the block write to flash may occur in the middle of a word. In contrast Amforth does not have any such block write. I think it writes each cell separately to flash, thus always having a constant delay. But you can try to modify QUIT to print OK after every line. BR Mike On 18.05.2015 16:03, om1zz wrote: > Peter, Mikael, thanks for the info! > I've tried the python ff-shell under XP with no luck (it throws some errors). > > There is a small editor/loader called Forfiter, I used to use in past. > You can set cr/nl delay to, for example, 1000ms, and any upcoming 'ok' will bypass that delay then. > The Forfiter works fine with amforth, but with FF there is an issue - the FF does not return 'ok' after each line when it receives lines (amforth does). > So with single liners it works nice (it receives 'ok' and goes immediately to the next line), but with comments and words defs over many lines it simply waits 1000ms at each line until the final 'ok' arrives. > Would it be possible to print 'ok' after each line received in FF?? > I. |