It is currently Thu Dec 14, 2017 10:57 pm

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 7 posts ] 
Author Message
 Post subject: Contiki 2016
PostPosted: Mon Mar 28, 2016 9:19 pm 
Offline

Joined: Wed Dec 05, 2007 2:15 am
Posts: 77
Hi,

After quite some time here comes another release of Contiki for the C64 (and C128 in VDC mode). In case you're interested here some info on (some of) the changes since the last release:

1. The Twitter client had to go :-( Twitter just doesn't want any 3rd party clients anymore and successfully drives them away.

2. The email client didn't make any sense anymore (it never did make much anyway). Nowadays everybody uses strong encryption.

3. The FTP client was a similiar case. Without PASV support not interoperable with anything out there. Without support for sending files it was never really useful anyway.

4. The Telnet server is now part of the package. It was "always" there but had a bug keeping it from working with cc65. I found and fixed it because it is used as base for https://github.com/lodger-c64/Contiki-BBS. The C64 demo Telnet server I'm providing comes with the shell command 'wget' allowing you to download a i.e. the Google homepage with 'wget http://www.google.com | write google.htm'. This means that the Telnet server uses two simultaneous TCP connections: One incommming for the Telnet client and one outgoing for the wget command.

5. I'm sure about everybody sees the web browser as most interesting Contiki program. So I went ahead and invested many hours in improvement:

- Originally there were several fixed sized arrays to hold the data of links and forms. While that had the benefit of simple (aka fast and small) 6502 code to access the data it turned out to be simply to inflexible to accommodate somewhat more complex pages. Quite some time ago I changed that with https://github.com/contiki-os/contiki/c ... b121556f5e to use a single buffer containing linked lists of items allocated according to their actual size. As part of that change I moved away from storing input field data in the actual page allowing to support scrolling input fields and hidden input fields.

- In the meantime I fixed quite some issues. Among them there were several fixes improving the "skipping" of unhandled stuff:
a) HTTP header field parsing uses a fixed 1024 byte buffer. If a header field was longer the whole page parsing failed. Nowadays many pages set cookies - which are easily larger than 1024 bytes. Now the header field parsing successfully skips too-long header fields.
b) Nowadays about every pages comes with huge amounts of JavaScript. That was generally already skipped. But there were two special cases not handled:
I. an HTML tag inside a JavaScript string.
II. a JavaScript comparison using the less-than operator. Now both cases are handled correctly.

- Regarding the actual page display nowadays people use loads of <div> to structure their content. Inserting a newline for every </div> sometimes meant literally empty pages ;-) Instead of blowing up the parser code I opted for a post-processing: There are simply never more than two consecutive newlines rendered.

- I was surprised to find that "THE" web page (http://www.google.com) is generally still operational without TLS and JavaScript. So I set out to bring it (back) to the C64 Contiki web browser. The only thing I more or less explictly added for that purpose was https://github.com/contiki-os/contiki/c ... d45445e83e

- I (re-)added the option to quit the C64 web browser and launch the WGET program when hitting any non-(X)HTML content. The WGET program is given the URL to download so that you only have to enter the filename to save as.

6. The C64 web browser and C64 IRC client are now additionally available as "soft80" variants - with the full feature set of 40 column variants! The soft80 support is part of the cc65 C library for the C64 and as such available to other cc65 programs. Thanks to <groepaz@gmx.net> and <greg.king5@verizon.net> for their contribution to the cc65 C library for the C64 :-)

7. I moved away from that Contiki online configurator thingy. Contiki now comes as straight disk image download. Either as three .d64 images, as one .d71 image or as one .d81 image. First run ETHCONFIG once to set your Ethernet cart type. Then run IPCONFIG to set your IP configuration either via DHCP or manually.

8. The .zip file containing all the disk images contains a "zip comment". That comment is a GitHub URL listing the last Contiki commits (with their dates) that went into the build. This way you can judge how old/new the stuff is although there's no official Contiki version.

9. The Contiki programs come with IDE64 support. I have however a report that there's a compatibility issue with IDEDOS 0.90. That issue isn't present with IDEDOS 0.91 beta. Another option to workaround the issue is to disable IDE64 with 'KILL'.

Have fun,
Oliver


Attachments:
contiki-c128.zip [307.27 KiB]
Downloaded 690 times
contiki-c64.zip [489.83 KiB]
Downloaded 780 times
Top
 Profile  
Reply with quote  
 Post subject: Re: Contiki 2016
PostPosted: Thu Mar 31, 2016 5:43 am 
Offline
Site Admin

Joined: Wed Jan 11, 2006 12:22 pm
Posts: 860
Great work, Oliver, as always!

For anyone wanting to create their own programs using Contiki, where would you direct them?


Top
 Profile  
Reply with quote  
 Post subject: Re: Contiki 2016
PostPosted: Mon Apr 04, 2016 4:10 pm 
Offline

Joined: Wed Dec 05, 2007 2:15 am
Posts: 77
RaveGuru wrote:
Great work, Oliver, as always!

Thanks - I appreciate your feedback :-)

Quote:
For anyone wanting to create their own programs using Contiki, where would you direct them?

Hard to tell:

  • All official Contiki documentation is about IPv6 or mesh networking. The issue people are facing most is too high power consumption because the MCUs don't sleep long enough deep enough. But "Contiki for Retrocomputing" is about IPv4 and the issue I'm facing most is too much RAM consumption.
  • All official Contiki documentation is about GCC for Linux or ARM. But "Contiki for Retrocomputing" is about cc65.
  • All official Contiki documentation is about headless operation. But most "Contiki for Retrocomputing" programs use the CTK UI framework

So I'm afraid one is left to "use the source, Luke" ;-)


Top
 Profile  
Reply with quote  
 Post subject: Re: Contiki 2016
PostPosted: Tue Apr 05, 2016 5:34 am 
Offline

Joined: Mon Mar 31, 2008 6:37 pm
Posts: 21
I've been a fan of Contiki on the Commodore for years--part of the reason why I bought an MMC Replay+RR Net cartridge was so I could use my C64 wih it. And I got a C128 not long ago so I am happy to be able to use Contiki on it as well.

ACTUALLY, the SMTP client was one of my favrotie features of the Contiki OS--I would often have friends and coworkers who are into computers come over and I would play the "Hey, I can send you an email from my Commodore 64" trick which is a fun thing to do.

Thank you for this. Much appreciated.


Top
 Profile  
Reply with quote  
 Post subject: Re: Contiki 2016
PostPosted: Tue Apr 05, 2016 8:36 am 
Offline
Site Admin

Joined: Wed Jan 11, 2006 12:22 pm
Posts: 860
CadorBolin wrote:
ACTUALLY, the SMTP client was one of my favrotie features of the Contiki OS--I would often have friends and coworkers who are into computers come over and I would play the "Hey, I can send you an email from my Commodore 64" trick which is a fun thing to do.


You could still send email by connecting to the SMTP server with TELNET (which is how it was originally done anyway). That would make you look even more "1337" in front of your friends :mrgreen:


Top
 Profile  
Reply with quote  
 Post subject: Re: Contiki 2016
PostPosted: Wed May 18, 2016 8:51 pm 
Offline
User avatar

Joined: Wed May 18, 2016 3:26 pm
Posts: 1
Location: Bonn, Germany
Thanks Oliver for Contiki 2016 - I registered here in the forum just to be able to say this. Looking forward to future releases. :-)

It's not easy to find software making good use of RRNet Mk3 - maybe I should dust off my C64 programming "skills" and join the fray.

_________________
Best regards,
Goethe


Top
 Profile  
Reply with quote  
 Post subject: Re: Contiki 2016
PostPosted: Thu May 19, 2016 10:20 am 
Offline

Joined: Wed Dec 05, 2007 2:15 am
Posts: 77
goethe wrote:
Thanks Oliver for Contiki 2016. [...]

Thanks for the nice feedback :-)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group