Just to add to your long list of todo items...
Is there any chance Tackyon might support serial file transfers via packets? Such as Xmodem or Kermit.
This might open up some interesting avenues for development.
Yuck, Xmodem I hated although Zmodem was a lot better and Kermit I have tackled in the distant past. File transfers via the serial port normally mean that you have a file system on your Prop and if you have an FS then you normally have a memory card that can be removed etc. For remote access I favor FTP using the cheap W5200 chip. Notwithstanding, a simple Xmodem receive could even be built into the serial cog so that it automatically entered Xmodem on an SOH but would need to know beforehand where to put the file or else use the block 0 method to name it. How and on what are you thinking of using it?
As with dating and courting so it is with hardware/software: "Date what you see, not the potential". I truly appreciate your focus and attention to detail regarding P1 and Tachyon Peter.
Thanks Dave, On the "other" forum I am amazed at all the energy and activity being put into a product that hasn't yet coalesced into something tangible. It's like a farmer spending all his time planning super silos for fields of wheat that the land hasn't even been bought for yet, and yet real farmers have real farms that need real work every day, otherwise no more super silos. There is an old saying "while the grass is growing the cow is starving". Yes, it will be good when it gets here but the reality is you also need something now otherwise there will be no cow.
Yuck, Xmodem I hated although Zmodem was a lot better and Kermit I have tackled in the distant past. File transfers via the serial port normally mean that you have a file system on your Prop and if you have an FS then you normally have a memory card that can be removed etc. For remote access I favor FTP using the cheap W5200 chip. Notwithstanding, a simple Xmodem receive could even be built into the serial cog so that it automatically entered Xmodem on an SOH but would need to know beforehand where to put the file or else use the block 0 method to name it. How and on what are you thinking of using it?
I have run into a couple of Propeller users that are using HP calculators with RS232 serial interface and these support Xmodem and Kermit. It seems that Xmodem is easier to deploy, so I guess that would be enough if a rational need arises. For now I am not sure. The calculators also provide a generic RS232 mode.
Is there a ways to list the dependances of a word.
That is, start with a word and list all the other words it calls down to the root of the word.
Thanks
rich
@Rich,
If you want to trace Forth lexicon back to the least number of primitives, eForth has done this already. I am sure it doesn't conform with any of the versions of Forth on the Propeller as each developer has selected to optimize the lower levels of lexicon in different ways. Everything runs faster in PASM, so creating a Forth with the least number of primitives is more of an academic exercise than a way to code a fast Forth interpreter.
Here is the document. It is a good read and has loads of interesting insights.
I loaded the spin kernel, then typed "CREATE SMALL" . Then loaded in order, EXTEND, QS, SDCARD, MULTIFAT, typed "BACKUP REBOOT" ( 5597 bytes free). Then loaded NETWORK which choked at line 41 each time.
I found this puzzling since this choke point occurs several 100 lines before it choked when I wasn't doing "CREATE SMALL"
Nice reference doc.
Have you read the book "Threaded Interpretive Languages" by Loeliger?
It is also a very good reference.
I am just trying to understand the inner workings of Tachyon. I am thinking it may be the best way to use the Prop.
Always trying to learn but not always succeeding.
rich
What a blast from the past. Back in the 80's implimented the TIL from this book on a SD Systems Z80 Starter Kit, with 8K of ram hand wire wrapped on a S100 expansion card, Hand assembled the code on a legal pad ( and yes back in the day I could do hex arithmatic in my head ) entered the hex code on a keypad until I boot strapped the monitor over to a TI 800 series printing terminal. Will never forget the feeling of seeing that first OK prompt, 2 in the morning and yelling so loud I woke my new bride up. BTW: the code in that book ( unless corrected in a later printing ) is full of errors.
Yes, i know the book has error cause i used it to write TIL for a Z80 CP/M system.
I would get stuck and realize the book either left steps out or was wrong but the ideas were solid.
I did my assembly coding at lunch time at work since i did not have a CP/M system at home.
Took me over two months and i was so thrilled when it worked. It was like a discover something that no one had ever discovered before.
I loaded the spin kernel, then typed "CREATE SMALL" . Then loaded in order, EXTEND, QS, SDCARD, MULTIFAT, typed "BACKUP REBOOT" ( 5597 bytes free). Then loaded NETWORK which choked at line 41 each time.
I found this puzzling since this choke point occurs several 100 lines before it choked when I wasn't doing "CREATE SMALL"
So I decided to backtrack and load in QuickStart.fth since that was the only difference. It stopped at .DT
TACHYON
Propeller .:.:--TACHYON--:.:. Forth V23140128.0000
ok
CONNECT SOCKET #" .DTVERS 140128.1730 "
which is the word to print the date and time, so it seems QS needs to be patched with a dummy version or else the RTC section in that file needs to be enabled, the line: {
RTC not tested yet !!!!!!!!
needs to be deleted and the RTC words tested. I think this is the same chip on the Spinneret in which case I can test it but in the meantime just insert a dummy stub in QS for .DT.
I think my next task might also to be to improve this error reporting as even I find it a little frustrating sometimes
EDIT: I've just patched EXTEND with a simple error handler which should make errors more visible.
EDIT: Unpatched EXTEND and made a change to the kernel so now that same error comes up like this:
CONNECT SOCKET #" --> .DT <-- NOT FOUND
@Brian: Just make sure it performs the same way on your system before we define .DT
Good, just delete that line in QS so it will at least compile the RTC words even if they don't report the time correctly. I will get to check it out soon though.
BTW, how come your console message is in lower case?
Good, just delete that line in QS so it will at least compile the RTC words even if they don't report the time correctly. I will get to check it out soon though.
BTW, how come your console message is in lower case?
Dunno ...... it happened during copy/paste
I checked Spinnaret and WizNet schematics ... YES, same RTC chip for both Seiko S-35390a
I checked Spinnaret and WizNet schematics ... YES, same RTC chip for both Seiko S-35390a
Okay, so while I get around to testing the RTC you can either just define a dummy .DT or enable that untested code which won't hurt anything either.
EDIT: I have now tested the RTC code, that chip is really wired back-to-front and very non I2C standard but there it is. Seems to work well enough for now. Have updated dropbox too.
Good stuff Brian, I will update those network files etc soon as well as I have been making some improvements.
UPDATES:
KERNEL: A few minor changes to the kernel for error reporting etc
EXTEND: Added HELP and REVECTOR where you can say REVECTOR CON MYCON and all compiled references to the old CON will now point to MYCON for instance.
MULTIFAT: Removed .LIST and added it to NETWORK so that this part can be customized for FTP
NETWORK: improved client interoperability etc, posting after I run some more tests.
I'm also looking at adding specialized dictionaries especially with reference to HTTP and FTP commands. For instance, I get caught trying to use the kernel word TYPE but it ends up with the immediate FTP word TYPE !!!
Good stuff Brian, I will update those network files etc soon as well as I have been making some improvements.
UPDATES:
KERNEL: A few minor changes to the kernel for error reporting etc
EXTEND: Added HELP and REVECTOR where you can say REVECTOR CON MYCON and all compiled references to the old CON will now point to MYCON for instance.
MULTIFAT: Removed .LIST and added it to NETWORK so that this part can be customized for FTP
NETWORK: improved client interoperability etc, posting after I run some more tests.
I'm also looking at adding specialized dictionaries especially with reference to HTTP and FTP commands. For instance, I get caught trying to use the kernel word TYPE but it ends up with the immediate FTP word TYPE !!!
To input a Time to TIME! you must encode 9:15:00pm as $15.0F.00 to get 21:15:00 on the console.
But the DATE! encoding is $14.02.02 to get 2014/02/02.
Is this intended or should TIME! use $21.15.00 as an input?
Good stuff with the updates!
REBOOT
Propeller .:.:--TACHYON--:.:. Forth V23140203.0000
NAMES: $5E9E...74EB for 5709 (3195 bytes added)
CODE: $0000...30E0 for 6803 (6368 bytes added)
CALLS: 0505 vectors free
RAM: 11710 bytes free
AUTORUN EXTEND.boot
MODULES LOADED:
1800: EXTEND.fth Primary extensions to TACHYON kernel - 140203-1300
----------------------------------------------------------------
.DT 2000/00/0000:00:12 ok
$14.02.02 DATE! ok
.DT 2014/02/0200:00:43 ok
$21.15.00 TIME! ok
.DT 2014/02/0233:21:02 ok
$15.0F.00 TIME! ok
.DT 2014/02/0221:15:01 ok
To input a Time to TIME! you must encode 9:15:00pm as $15.0F.00 to get 21:15:00 on the console.
But the DATE! encoding is $14.02.02 to get 2014/02/02.
Is this intended or should TIME! use $21.15.00 as an input?
Good stuff with the updates!
I haven't used that feature so I haven't really checked it out either until now. I've been in a bit of a quandary as to how I want to store and handle the time but I have decided to keep it all in BCD format so now everything including the soft counting expects it to be BCD as that is how RTCs mostly handle it and very rarely do we need to do calculations or conversions.
$235950 TIME! ok
.TIME 23:59:51 ok
23:59:52 ok
23:59:53 ok
23:59:54 ok
23:59:56 ok
23:59:57 ok
23:59:58 ok
23:59:59 ok
23:59:59 ok
00:00:00 ok
00:00:01 ok
00:00:02 ok
00:00:02 ok
EDIT: repeat lines are reexecuted with ^X
EDIT: update also includes basic calendar functions so date will be maintained which also includes a backup to it's image in EEPROM so that it is maintained during resets etc.
2014/02/28 23:50:53 ok
2014/03/01 00:02:14 ok
NETWORK.FTH LINE 1 --> TACHYON <-- NOT FOUND
LINE 220 --> .LIST <-- NOT FOUND
... darned if I know why a was wrong with "TACHYON" ... the Oh looked hinky so I simply retyped the word and it went through.
Missing a ` and .LIST and TACHYON, all known good words, seems as if your line delay is not long enough during compilation, try adding some ms to your terminal line delay. I use 23ms in minicomm on my Macbook Pro, no char delay
Missing a ` and .LIST and TACHYON, all known good words, seems as if your line delay is not long enough during compilation, try adding some ms to your terminal line delay. I use 23ms in minicomm on my Macbook Pro, no char delay
I am running 24 msecs in CoolTerm on my iMac ...
( S-35390A)' <--- this is a typo
TACHYON <--- another typo, it had the wrong "O", both easily fixed
BUTTTTTTTTT
NETWORK.FTH Line 220
pub LIST
ON LANLED
." 150 Here comes the directory listing" CR
CON CR REVERSE ." LIST REQUEST " PLAIN CR
FTPDAT SOCKET CONNECT
LAN .LIST \ Send off the directory listing in compatible format
DISCONNECT
FTP SOCKET LAN ." 226 Directory send OK" CR
;
IMMEDIATE
'.LIST' - I did some grep-ing and it does not seem to appear anywhere but here.
TACHYON <--- another typo, it had the wrong "O", both easily fixed
BUTTTTTTTTT
NETWORK.FTH Line 220
pub LIST
ON LANLED
." 150 Here comes the directory listing" CR
CON CR REVERSE ." LIST REQUEST " PLAIN CR
FTPDAT SOCKET CONNECT
LAN .LIST \ Send off the directory listing in compatible format
DISCONNECT
FTP SOCKET LAN ." 226 Directory send OK" CR
;
IMMEDIATE
'.LIST' - I did some grep-ing and it does not seem to appear anywhere but here.
See this post where I mentioned I had moved .LIST away from MULTIFILE over to NETWORK so I can fine tune this word as some FTP clients are fussy. The dropbox versions should be current.
BTW, I've got no idea why you have the wrong O in TACHYON etc.
See this post where I mentioned I had moved .LIST away from MULTIFILE over to NETWORK so I can fine tune this word as some FTP clients are fussy. The dropbox versions should be current.
Yes, Peter, you did say in that thread, that you moved ".LIST" from MULTIFAT to NETWORK. But look again at what you had in NETWORK ... you defined a WORD "LIST" with no "." in its name and one of the words in the script is ".LIST" with a "." and it is nowhere else to be found.
pub LIST
ON LANLED
." 150 Here comes the directory listing" CR
CON CR REVERSE ." LIST REQUEST " PLAIN CR
FTPDAT SOCKET CONNECT
LAN .LIST \ Send off the directory listing in compatible format
DISCONNECT
FTP SOCKET LAN ." 226 Directory send OK" CR
;
IMMEDIATE
Yes, Peter, you did say in that thread, that you moved ".LIST" from MULTIFAT to NETWORK. But look again at what you had in NETWORK ... you defined a WORD "LIST" with no "." in its name and one of the words in the script is ".LIST" with a "." and it is nowhere else to be found.
pub LIST
ON LANLED
." 150 Here comes the directory listing" CR
CON CR REVERSE ." LIST REQUEST " PLAIN CR
FTPDAT SOCKET CONNECT
LAN .LIST \ Send off the directory listing in compatible format
DISCONNECT
FTP SOCKET LAN ." 226 Directory send OK" CR
;
IMMEDIATE
Yes, LIST is an FTP command and the word .LIST was made for it so that is why it was moved back to NETWORK although .LIST could be used directly there are the DIR and ls words. The move was only done a few days ago, do you have the current versions? I will double check the dropbox versions just to sure.
OK !!!!!!! I have a good load from the Dropbox files taken less than an HOUR ago.
Question #1 - I formatted the uSD using SD Format The volume name is TACHYON, Why does MOUNT command say it has no name ??
QUESTION #2 - Whats with FTP, I thought was working ... enclosed is my FileZilla session log while trying to d/l ROM.BIN
Status: Connecting to10.0.1.107:21...
Status: Connection established, waiting for welcome message...
Response:220 WELCOME TO THE TACHYON WIZNET FTP SESSION!
Command: USER anonymous
Response: --> cUSER <-- NOT FOUND
Error: Could not connect to server
Status: Waiting to retry...
Status: Connecting to10.0.1.107:21...
Status: Connection established, waiting for welcome message...
Response:220 WELCOME TO THE TACHYON WIZNET FTP SESSION!
Command: USER anonymous
Response:331 User admin OK. Password required
Command: PASS **************
Response:230 OK. Current restricted directory is /
Command: SYST
Response:215 Unix Type: L8
Command: FEAT
Response:211 Features supported
Status: Server does not support non-ASCII characters.
Status: Connected
Response: UTF8
Response:211EndStatus: Retrieving directory listing...
Command: PWD
Response:257"/"is your current location
Command: TYPE I
Response:200 TYPE is now I
Command: PASV
Response:227 Entering Passive Mode with port (10,0,1,107,179,240)
Command: LIST
Response:150 Here comes the directory listing
Response:226 Directory send OK
Status: Directory listing successful
Status: Connecting to10.0.1.107:21...
Status: Connection attempt failed with"ECONNREFUSED - Connection refused by server".
Error: Could not connect to server
Status: Delaying connection for5 seconds due to previously failed connection attempt...
Status: Connecting to10.0.1.107:21...
Status: Connection attempt failed with"ECONNREFUSED - Connection refused by server".
Error: Could not connect to server
Status: Delaying connection for5 seconds due to previously failed connection attempt...
Status: Connecting to10.0.1.107:21...
Status: Connection attempt failed with"ECONNREFUSED - Connection refused by server".
Error: Could not connect to server
OK !!!!!!! I have a good load from the Dropbox files taken less than an HOUR ago.
Question #1 - I formatted the uSD using SD Format The volume name is TACHYON, Why does MOUNT command say it has no name ??
QUESTION #2 - Whats with FTP, I thought was working ... enclosed is my FileZilla session log while trying to d/l ROM.BIN
There are two names, the oemname and the volume name (and also the FAT name too):
MOUNT Mounted SD Card
Media mounted as E2C4.0203 mkdosfs SDL001 FAT32 Cluster size = 4,096 Sectors = 7,744,449 ok
Here the volume name is SDL001 and it's entry is in the root directory as well as the boot block:
[FONT=courier new]@ROOT $40 XDUMP
0076_BE00: 5344 4C 30303120202020200800006788 SDL001 ...g.
0076_BE10: 37443744000067883744000000000000 7D7D..g.7D......
0076_BE20: 4C 4F 4730303038205458542000007788 LOG0008 TXT ..w.
0076_BE30: 37443744000029 0B 6443030000000200 7D7D..).dC...... ok
7E00 100 XDUMP
0000_7E00: EB 5890 6D 6B 64 6F 736673000002082000 .X.mkdosfs.... .
0000_7E10: 0200000000 F8 00001000040000000000 ................
0000_7E20: C1 2B 760080 1D 00000000000002000000 .+v.............
0000_7E30: 01000600000000000000000000000000 ................
0000_7E40: 000129 4A 8838 EB 5344 4C 303031202020 ..)J.8.SDL001
0000_7E50: 20204641543332202020 0E 1F BE 77 7C AC FAT32 ...w|.
0000_7E60: 22 C0 74 0B 56 B4 0E BB 0700 CD 10 5E EB F0 32".t.V.......^..2
0000_7E70: E4 CD 16 CD 19 EB FE 54 68 69 73 20 69 73 20 6E .......This is n
0000_7E80: 6F 74 20 61 20 62 6F 6F 74 61 62 6C 65 20 64 69 ot a bootable di
0000_7E90: 73 6B 2E 20 20 50 6C 65 61 73 65 20 69 6E 73 65 sk. Please inse
0000_7EA0: 72 74 20 61 20 62 6F 6F 74 61 62 6C 65 20 66 6C rt a bootable fl
0000_7EB0: 6F 70 70 79 20 61 6E 64 0D 0A 70 72 65 73 73 20 oppy and..press
0000_7EC0: 61 6E 79 20 6B 65 79 20 74 6F 20 74 72 79 20 61 any key to try a
0000_7ED0: 67 61 69 6E 20 2E 2E 2E 20 0D 0A 00 00 00 00 00 gain ... .......
[/FONT]
I think what name gets set depends upon the formatting software that is used.
As for the FTP server, ahhhem, I had updated the main document with some improvements from my dev copy but it wasn't quite right it seems. There are older versions in dropbox you can used that are zipped up in the backups folder. It may be a day or two until I update the files with a stable version. The changes are mainly to improve client interoperability, speed, connection issues, timeouts etc.
BTW: the ECONNREFUSED message seems to happen with Filezilla but not with gFTP but it looks like FIleZilla sends out a SYN which is refused because it is already connected. I will have to check this out later but my software did work before.
This example has me stumped, going through the source trying some stuff out.
[code]
ok
#1234 ok
<# #S #> ok
.S
STACK: 0000.0000 0000.0108 0000.04D2 0000.006B ok
$6B PRINT$ 1234 ok
$6B 4 ADO I C@ .DEC LOOP 0049004800520050 ok
$6B 4 ADO I C@ CR .DEC LOOP
0048
0048
0052
0050 ok
"1" .DEC 0049 ok
"2" .DEC 0050 ok
"3" .DEC 0051 ok
"4" .DEC 0052 ok
." Houston we have a stack problem?" Houston we have a stack problem? ok
." with ADO and I" with ADO and I ok
TACHYON
Propeller .:.:--TACHYON--:.:. Forth V23140203.0000
ok
0000 LES
MODULES LOADED:
1800: EXTEND.fth Primary extensions to TACHYON kernel - 140203-2145
ok
This example has me stumped, going through the source trying some stuff out.
It's doing exactly what it should, once you went to print out the number pad with .DEC which uses the number pad to print itself (of course) you then went awry.
last number printed was....0050
then you did...
0048....the leading 0 of the 0050 and now the buffer has 0048
0048....the second 0 of 0048 and now the buffer has 0048
0052....the third digit 4 of 0048 and now the buffer has 0052
0050....the fourth digit 2 of 0052
Comments
Yuck, Xmodem I hated although Zmodem was a lot better and Kermit I have tackled in the distant past. File transfers via the serial port normally mean that you have a file system on your Prop and if you have an FS then you normally have a memory card that can be removed etc. For remote access I favor FTP using the cheap W5200 chip. Notwithstanding, a simple Xmodem receive could even be built into the serial cog so that it automatically entered Xmodem on an SOH but would need to know beforehand where to put the file or else use the block 0 method to name it. How and on what are you thinking of using it?
Thanks Dave, On the "other" forum I am amazed at all the energy and activity being put into a product that hasn't yet coalesced into something tangible. It's like a farmer spending all his time planning super silos for fields of wheat that the land hasn't even been bought for yet, and yet real farmers have real farms that need real work every day, otherwise no more super silos. There is an old saying "while the grass is growing the cow is starving". Yes, it will be good when it gets here but the reality is you also need something now otherwise there will be no cow.
I have run into a couple of Propeller users that are using HP calculators with RS232 serial interface and these support Xmodem and Kermit. It seems that Xmodem is easier to deploy, so I guess that would be enough if a rational need arises. For now I am not sure. The calculators also provide a generic RS232 mode.
@Rich,
If you want to trace Forth lexicon back to the least number of primitives, eForth has done this already. I am sure it doesn't conform with any of the versions of Forth on the Propeller as each developer has selected to optimize the lower levels of lexicon in different ways. Everything runs faster in PASM, so creating a Forth with the least number of primitives is more of an academic exercise than a way to code a fast Forth interpreter.
Here is the document. It is a good read and has loads of interesting insights.
Nice reference doc.
Have you read the book "Threaded Interpretive Languages" by Loeliger?
It is also a very good reference.
I am just trying to understand the inner workings of Tachyon. I am thinking it may be the best way to use the Prop.
Always trying to learn but not always succeeding.
rich
I loaded the spin kernel, then typed "CREATE SMALL" . Then loaded in order, EXTEND, QS, SDCARD, MULTIFAT, typed "BACKUP REBOOT" ( 5597 bytes free). Then loaded NETWORK which choked at line 41 each time.
I found this puzzling since this choke point occurs several 100 lines before it choked when I wasn't doing "CREATE SMALL"
ok REBOOT Propeller .:.:--TACHYON--:.:. Forth V23140128.0000 NAMES: $56A7...74DC for 7733 (1024 bytes added) CODE: $0000...40CA for 8853 (1641 bytes added) CALLS: 0297 vectors free RAM: 5597 bytes free AUTORUN EXTEND.boot MODULES LOADED: 3A61: W5200.fth WIZNET W5200 driver 131211.1530 3114: MULTIFILE.fth FAT32/16 MultiFile Layer V1.1 140123-0000 29C3: SDCARD.fth SD CARD Toolkit - 140121.2200 2818: QuickStart.fth QuickStart + W5200 HARDWARE DEFINITIONS 131204.1200 1801: EXTEND.fth Primary extensions to TACHYON kernel - 140121-2100 ---------------------------------------------------------------- TACHYON Propeller .:.:--TACHYON--:.:. Forth V23140128.0000 ok [~ 0000 Not found 0001 0002 WIZNET NETWORK SERVERS 140128.1730 " 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 CONNECT SOCKET #" .DT
What a blast from the past. Back in the 80's implimented the TIL from this book on a SD Systems Z80 Starter Kit, with 8K of ram hand wire wrapped on a S100 expansion card, Hand assembled the code on a legal pad ( and yes back in the day I could do hex arithmatic in my head ) entered the hex code on a keypad until I boot strapped the monitor over to a TI 800 series printing terminal. Will never forget the feeling of seeing that first OK prompt, 2 in the morning and yelling so loud I woke my new bride up. BTW: the code in that book ( unless corrected in a later printing ) is full of errors.
I would get stuck and realize the book either left steps out or was wrong but the ideas were solid.
I did my assembly coding at lunch time at work since i did not have a CP/M system at home.
Took me over two months and i was so thrilled when it worked. It was like a discover something that no one had ever discovered before.
cheers,
rich
Your modules look fine as they are very similar to mine.
[FONT=courier new]MODULES LOADED: 4182: NETWORK.fth WIZNET NETWORK SERVERS 140128.1730 3B19: W5200.fth WIZNET W5200 driver 131211.1530 31CC: MULTIFILE.fth FAT32/16 MultiFile Layer V1.1 140123-0000 2A7C: SDCARD.fth SD CARD Toolkit - 140121.2200 2818: CE1372.fth CE1372 WIDGET HARDWARE DEFINITIONS 131109.2340 1801: EXTEND.fth Primary extensions to TACHYON kernel - 140121-2100 -[/FONT]
So I decided to backtrack and load in QuickStart.fth since that was the only difference. It stopped at .DT
TACHYON
Propeller .:.:--TACHYON--:.:. Forth V23140128.0000
ok
CONNECT SOCKET #" .DTVERS 140128.1730 "
which is the word to print the date and time, so it seems QS needs to be patched with a dummy version or else the RTC section in that file needs to be enabled, the line:
{
RTC not tested yet !!!!!!!!
needs to be deleted and the RTC words tested. I think this is the same chip on the Spinneret in which case I can test it but in the meantime just insert a dummy stub in QS for .DT.
I think my next task might also to be to improve this error reporting as even I find it a little frustrating sometimes
EDIT: I've just patched EXTEND with a simple error handler which should make errors more visible.
EDIT: Unpatched EXTEND and made a change to the kernel so now that same error comes up like this:
CONNECT SOCKET #" --> .DT <-- NOT FOUND
@Brian: Just make sure it performs the same way on your system before we define .DT
0040 0041 connect socket #" --> .dt <-- not found
BTW, how come your console message is in lower case?
Dunno ...... it happened during copy/paste
I checked Spinnaret and WizNet schematics ... YES, same RTC chip for both Seiko S-35390a
Okay, so while I get around to testing the RTC you can either just define a dummy .DT or enable that untested code which won't hurt anything either.
EDIT: I have now tested the RTC code, that chip is really wired back-to-front and very non I2C standard but there it is. Seems to work well enough for now. Have updated dropbox too.
**almost** on the first try!!
File: QS.FTH, line 91 - extraneous tick to right of right paren
Propeller .:.:--TACHYON--:.:. Forth V23140130.0000 NAMES: $57C7...74EA for 7459 (4294966891 bytes added) CODE: $0000...4B26 for 11779 (2484 bytes added) CALLS: 0224 vectors free RAM: 3233 bytes free AUTORUN EXTEND.boot MODULES LOADED: 4172: NETWORK.fth WIZNET NETWORK SERVERS 140128.1730 3B09: W5200.fth WIZNET W5200 driver 131211.1530 31BC: MULTIFILE.fth FAT32/16 MultiFile Layer V1.1 140123-0000 2A6C: SDCARD.fth SD CARD Toolkit - 140121.2200 2818: QuickStart.fth QuickStart + W5200 HARDWARE DEFINITIONS 140131.2130 1801: EXTEND.fth Primary extensions to TACHYON kernel - 140131-1300 ---------------------------------------------------------------- GO NAMES: $57C7...74EA for 7459 (4294966891 bytes added) CODE: $0000...4B26 for 11779 (2484 bytes added) CALLS: 0224 vectors free RAM: 3233 bytes free AUTORUN EXTEND.boot MODULES LOADED: 4172: NETWORK.fth WIZNET NETWORK SERVERS 140128.1730 3B09: W5200.fth WIZNET W5200 driver 131211.1530 31BC: MULTIFILE.fth FAT32/16 MultiFile Layer V1.1 140123-0000 2A6C: SDCARD.fth SD CARD Toolkit - 140121.2200 2818: QuickStart.fth QuickStart + W5200 HARDWARE DEFINITIONS 140131.2130 1801: EXTEND.fth Primary extensions to TACHYON kernel - 140131-1300 *** Tachyon Forth Network and File Server *** Mounted SD Card Media mounted as 3C18.8F1F NO NAME FAT32 Cluster size = 32,768 Sectors = 15,269,888 Listing directory NO NAME LOG0002 .TXT LOG0001 .TXT FAVICON .ICO PARALLAX.PNG HOME .HTM NETWORK .FTH EXTEND .FTH CE1372 .FTH SDCARD .FTH MULTIFAT.FTH W5200 .FTH TACHYON .JPG HTTP404 .HTM LOGON . LOGON .TXT SYSLOG .TXT ROM .BIN ROM3 .BIN ROM2 .BIN ROM1 .BIN ROM0 .BIN TACHYON .LST LOG0008 .TXT LOG0007 .TXT LOG0006 .TXT LOG0005 .TXT LOG0004 .TXT LOG0003 .TXT SPOTLI~1. ~1 .TRA TRASHE~1. FSEVEN~1. Waiting for Ethernet to come up ... ready! ************ W5200 STATUS ************ LINK *UP* CHIP VER 0003 SRC IP 010.000.001.107. MASK 255.255.255.000. GATEWAY 010.000.001.001. MAC 00.08.80.C1.38.B6. *** SOCKETS *** 0: MODE= TCP PORT#00023 00000 TXRW=0000.0000.RXRW=0000.0000.RXSZ=0000.IR=00 STAT=14 LISTEN 1: MODE= TCP PORT#00021 00000 TXRW=0000.0000.RXRW=0000.0000.RXSZ=0000.IR=00 STAT=14 LISTEN 4: MODE= TCP PORT#00080 00000 TXRW=0000.0000.RXRW=0000.0000.RXSZ=0000.IR=00 STAT=14 LISTEN 5: MODE= TCP PORT#00081 00000 TXRW=0000.0000.RXRW=0000.0000.RXSZ=0000.IR=00 STAT=14 LISTEN 6: MODE= TCP PORT#00082 00000 TXRW=0000.0000.RXRW=0000.0000.RXSZ=0000.IR=00 STAT=14 LISTEN 7: MODE= TCP PORT#00083 00000 TXRW=0000.0000.RXRW=0000.0000.RXSZ=0000.IR=00 STAT=14 LISTEN * WEB, FTP, and TELNET servers running * ok Mounted SD Card Media mounted as 3C18.8F1F NO NAME FAT32 Cluster size = 32,768 Sectors = 15,269,888 CONNECT SOCKET #02000/01/04 55:00:11
Good stuff Brian, I will update those network files etc soon as well as I have been making some improvements.
UPDATES:
KERNEL: A few minor changes to the kernel for error reporting etc
EXTEND: Added HELP and REVECTOR where you can say REVECTOR CON MYCON and all compiled references to the old CON will now point to MYCON for instance.
MULTIFAT: Removed .LIST and added it to NETWORK so that this part can be customized for FTP
NETWORK: improved client interoperability etc, posting after I run some more tests.
I'm also looking at adding specialized dictionaries especially with reference to HTTP and FTP commands. For instance, I get caught trying to use the kernel word TYPE but it ends up with the immediate FTP word TYPE !!!
To input a Time to TIME! you must encode 9:15:00pm as $15.0F.00 to get 21:15:00 on the console.
But the DATE! encoding is $14.02.02 to get 2014/02/02.
Is this intended or should TIME! use $21.15.00 as an input?
Good stuff with the updates!
REBOOT Propeller .:.:--TACHYON--:.:. Forth V23140203.0000 NAMES: $5E9E...74EB for 5709 (3195 bytes added) CODE: $0000...30E0 for 6803 (6368 bytes added) CALLS: 0505 vectors free RAM: 11710 bytes free AUTORUN EXTEND.boot MODULES LOADED: 1800: EXTEND.fth Primary extensions to TACHYON kernel - 140203-1300 ---------------------------------------------------------------- .DT 2000/00/00 00:00:12 ok $14.02.02 DATE! ok .DT 2014/02/02 00:00:43 ok $21.15.00 TIME! ok .DT 2014/02/02 33:21:02 ok $15.0F.00 TIME! ok .DT 2014/02/02 21:15:01 ok
I haven't used that feature so I haven't really checked it out either until now. I've been in a bit of a quandary as to how I want to store and handle the time but I have decided to keep it all in BCD format so now everything including the soft counting expects it to be BCD as that is how RTCs mostly handle it and very rarely do we need to do calculations or conversions.
$235950 TIME! ok
.TIME 23:59:51 ok
23:59:52 ok
23:59:53 ok
23:59:54 ok
23:59:56 ok
23:59:57 ok
23:59:58 ok
23:59:59 ok
23:59:59 ok
00:00:00 ok
00:00:01 ok
00:00:02 ok
00:00:02 ok
EDIT: repeat lines are reexecuted with ^X
EDIT: update also includes basic calendar functions so date will be maintained which also includes a backup to it's image in EEPROM so that it is maintained during resets etc.
2014/02/28 23:50:53 ok
2014/03/01 00:02:14 ok
QS.FTH Line 91 --> ` <-- NOT FOUND
NETWORK.FTH LINE 1 --> TACHYON <-- NOT FOUND
LINE 220 --> .LIST <-- NOT FOUND
... darned if I know why a was wrong with "TACHYON" ... the Oh looked hinky so I simply retyped the word and it went through.
Missing a ` and .LIST and TACHYON, all known good words, seems as if your line delay is not long enough during compilation, try adding some ms to your terminal line delay. I use 23ms in minicomm on my Macbook Pro, no char delay
I am running 24 msecs in CoolTerm on my iMac ...
( S-35390A)' <--- this is a typo
TACHYON <--- another typo, it had the wrong "O", both easily fixed
BUTTTTTTTTT
NETWORK.FTH Line 220
pub LIST ON LANLED ." 150 Here comes the directory listing" CR CON CR REVERSE ." LIST REQUEST " PLAIN CR FTPDAT SOCKET CONNECT LAN .LIST \ Send off the directory listing in compatible format DISCONNECT FTP SOCKET LAN ." 226 Directory send OK" CR ; IMMEDIATE
'.LIST' - I did some grep-ing and it does not seem to appear anywhere but here.
See this post where I mentioned I had moved .LIST away from MULTIFILE over to NETWORK so I can fine tune this word as some FTP clients are fussy. The dropbox versions should be current.
BTW, I've got no idea why you have the wrong O in TACHYON etc.
Couldn't believe it even got past 1,000 or even 10,000
Yes, Peter, you did say in that thread, that you moved ".LIST" from MULTIFAT to NETWORK. But look again at what you had in NETWORK ... you defined a WORD "LIST" with no "." in its name and one of the words in the script is ".LIST" with a "." and it is nowhere else to be found.
pub LIST ON LANLED ." 150 Here comes the directory listing" CR CON CR REVERSE ." LIST REQUEST " PLAIN CR FTPDAT SOCKET CONNECT LAN .LIST \ Send off the directory listing in compatible format DISCONNECT FTP SOCKET LAN ." 226 Directory send OK" CR ; IMMEDIATE
Yes, LIST is an FTP command and the word .LIST was made for it so that is why it was moved back to NETWORK although .LIST could be used directly there are the DIR and ls words. The move was only done a few days ago, do you have the current versions? I will double check the dropbox versions just to sure.
Question #1 - I formatted the uSD using SD Format The volume name is TACHYON, Why does MOUNT command say it has no name ??
QUESTION #2 - Whats with FTP, I thought was working ... enclosed is my FileZilla session log while trying to d/l ROM.BIN
Status: Connecting to 10.0.1.107:21... Status: Connection established, waiting for welcome message... Response: 220 WELCOME TO THE TACHYON WIZNET FTP SESSION! Command: USER anonymous Response: --> cUSER <-- NOT FOUND Error: Could not connect to server Status: Waiting to retry... Status: Connecting to 10.0.1.107:21... Status: Connection established, waiting for welcome message... Response: 220 WELCOME TO THE TACHYON WIZNET FTP SESSION! Command: USER anonymous Response: 331 User admin OK. Password required Command: PASS ************** Response: 230 OK. Current restricted directory is / Command: SYST Response: 215 Unix Type: L8 Command: FEAT Response: 211 Features supported Status: Server does not support non-ASCII characters. Status: Connected Response: UTF8 Response: 211 End Status: Retrieving directory listing... Command: PWD Response: 257 "/" is your current location Command: TYPE I Response: 200 TYPE is now I Command: PASV Response: 227 Entering Passive Mode with port (10,0,1,107,179,240) Command: LIST Response: 150 Here comes the directory listing Response: 226 Directory send OK Status: Directory listing successful Status: Connecting to 10.0.1.107:21... Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server". Error: Could not connect to server Status: Delaying connection for 5 seconds due to previously failed connection attempt... Status: Connecting to 10.0.1.107:21... Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server". Error: Could not connect to server Status: Delaying connection for 5 seconds due to previously failed connection attempt... Status: Connecting to 10.0.1.107:21... Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server". Error: Could not connect to server
There are two names, the oemname and the volume name (and also the FAT name too):
MOUNT Mounted SD Card
Media mounted as E2C4.0203 mkdosfs SDL001 FAT32 Cluster size = 4,096 Sectors = 7,744,449 ok
Here the volume name is SDL001 and it's entry is in the root directory as well as the boot block:
[FONT=courier new]@ROOT $40 XDUMP 0076_BE00: 53 44 4C 30 30 31 20 20 20 20 20 08 00 00 67 88 SDL001 ...g. 0076_BE10: 37 44 37 44 00 00 67 88 37 44 00 00 00 00 00 00 7D7D..g.7D...... 0076_BE20: 4C 4F 47 30 30 30 38 20 54 58 54 20 00 00 77 88 LOG0008 TXT ..w. 0076_BE30: 37 44 37 44 00 00 29 0B 64 43 03 00 00 00 02 00 7D7D..).dC...... ok 7E00 100 XDUMP 0000_7E00: EB 58 90 6D 6B 64 6F 73 66 73 00 00 02 08 20 00 .X.mkdosfs.... . 0000_7E10: 02 00 00 00 00 F8 00 00 10 00 04 00 00 00 00 00 ................ 0000_7E20: C1 2B 76 00 80 1D 00 00 00 00 00 00 02 00 00 00 .+v............. 0000_7E30: 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0000_7E40: 00 01 29 4A 88 38 EB 53 44 4C 30 30 31 20 20 20 ..)J.8.SDL001 0000_7E50: 20 20 46 41 54 33 32 20 20 20 0E 1F BE 77 7C AC FAT32 ...w|. 0000_7E60: 22 C0 74 0B 56 B4 0E BB 07 00 CD 10 5E EB F0 32 ".t.V.......^..2 0000_7E70: E4 CD 16 CD 19 EB FE 54 68 69 73 20 69 73 20 6E .......This is n 0000_7E80: 6F 74 20 61 20 62 6F 6F 74 61 62 6C 65 20 64 69 ot a bootable di 0000_7E90: 73 6B 2E 20 20 50 6C 65 61 73 65 20 69 6E 73 65 sk. Please inse 0000_7EA0: 72 74 20 61 20 62 6F 6F 74 61 62 6C 65 20 66 6C rt a bootable fl 0000_7EB0: 6F 70 70 79 20 61 6E 64 0D 0A 70 72 65 73 73 20 oppy and..press 0000_7EC0: 61 6E 79 20 6B 65 79 20 74 6F 20 74 72 79 20 61 any key to try a 0000_7ED0: 67 61 69 6E 20 2E 2E 2E 20 0D 0A 00 00 00 00 00 gain ... ....... [/FONT]
I think what name gets set depends upon the formatting software that is used.As for the FTP server, ahhhem, I had updated the main document with some improvements from my dev copy but it wasn't quite right it seems. There are older versions in dropbox you can used that are zipped up in the backups folder. It may be a day or two until I update the files with a stable version. The changes are mainly to improve client interoperability, speed, connection issues, timeouts etc.
BTW: the ECONNREFUSED message seems to happen with Filezilla but not with gFTP but it looks like FIleZilla sends out a SYN which is refused because it is already connected. I will have to check this out later but my software did work before.
[code]
ok
#1234 ok
<# #S #> ok
.S
STACK: 0000.0000 0000.0108 0000.04D2 0000.006B ok
$6B PRINT$ 1234 ok
$6B 4 ADO I C@ .DEC LOOP 0049004800520050 ok
$6B 4 ADO I C@ CR .DEC LOOP
0048
0048
0052
0050 ok
"1" .DEC 0049 ok
"2" .DEC 0050 ok
"3" .DEC 0051 ok
"4" .DEC 0052 ok
." Houston we have a stack problem?" Houston we have a stack problem? ok
." with ADO and I" with ADO and I ok
TACHYON
Propeller .:.:--TACHYON--:.:. Forth V23140203.0000
ok
0000 LES
MODULES LOADED:
1800: EXTEND.fth Primary extensions to TACHYON kernel - 140203-2145
ok
[\code]
It's doing exactly what it should, once you went to print out the number pad with .DEC which uses the number pad to print itself (of course) you then went awry.
last number printed was....0050
then you did...
0048....the leading 0 of the 0050 and now the buffer has 0048
0048....the second 0 of 0048 and now the buffer has 0048
0052....the third digit 4 of 0048 and now the buffer has 0052
0050....the fourth digit 2 of 0052
See, perfect!
Can you give an example of REV and SPIWR LSB please.
Thanks,