retrohackers.com
http://retrohackers.com/

Contiki 2016
http://retrohackers.com/viewtopic.php?f=5&t=669
Page 1 of 1

Author:  Oliver [ Mon Mar 28, 2016 9:19 pm ]
Post subject:  Contiki 2016

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 1129 times
contiki-c64.zip [489.83 KiB]
Downloaded 1273 times

Author:  RaveGuru [ Thu Mar 31, 2016 5:43 am ]
Post subject:  Re: Contiki 2016

Great work, Oliver, as always!

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

Author:  Oliver [ Mon Apr 04, 2016 4:10 pm ]
Post subject:  Re: Contiki 2016

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" ;-)

Author:  CadorBolin [ Tue Apr 05, 2016 5:34 am ]
Post subject:  Re: Contiki 2016

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.

Author:  RaveGuru [ Tue Apr 05, 2016 8:36 am ]
Post subject:  Re: Contiki 2016

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:

Author:  goethe [ Wed May 18, 2016 8:51 pm ]
Post subject:  Re: Contiki 2016

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.

Author:  Oliver [ Thu May 19, 2016 10:20 am ]
Post subject:  Re: Contiki 2016

goethe wrote:
Thanks Oliver for Contiki 2016. [...]

Thanks for the nice feedback :-)

Author:  Oliver [ Sun Nov 04, 2018 12:21 am ]
Post subject:  Re: Contiki 2016

Hi,

There's no new Contiki version (and likely never will be) but my GitHub Contiki fork now contains both downloads and some end user documentation:

https://github.com/oliverschmidt/contiki

Regards,
Oliver

Author:  RaveGuru [ Sun Nov 04, 2018 2:59 pm ]
Post subject:  Re: Contiki 2016

Very cool. Thank you Oliver!! :)

Are you working on any retro-related project these days?

Author:  Oliver [ Sun Nov 04, 2018 3:32 pm ]
Post subject:  Re: Contiki 2016

> Thank you Oliver!!

Thanks for the nice feedback :-)

> Are you working on any retro-related project these days?

In the last year(s) I worked on IP65 - see viewtopic.php?f=5&t=677. Beside that I'm still the maintainer of https://cc65.github.io/ which receives continuous changes.

Author:  goethe [ Sun Nov 04, 2018 4:30 pm ]
Post subject:  Re: Contiki 2016

Oliver wrote:
There's no new Contiki version (and likely never will be)


So sad to read this, but understandable. There's no way the C64 could handle TLS, therefore with all websites now switching to this, the C64 will be cut out of the web entirely. :-(

Author:  Oliver [ Sun Nov 04, 2018 8:33 pm ]
Post subject:  Re: Contiki 2016

> There's no way the C64 could handle TLS, therefore with all websites now switching to this, the C64 will be cut out of the web entirely.

Yep, you can summarize this as "NSA killed Contiki" as they are the primary reason for everybody wanting to have everything encrypted, e.g. even companies just presenting their products.

BTW: As of today the Contiki web browser still successfully works with www.google.com - enjoy it as long as it lasts...

Author:  RaveGuru [ Tue Jul 30, 2019 2:38 pm ]
Post subject:  Re: Contiki 2016

I suppose running a local HTTP to HTTPS proxy would do the trick. But yeah, it's a bit sad. On the other hand, no one ever expected the C64 to reach the web, so it's definitely a "mission accomplished" on that part :)

I believe telnet BBS:es will continue to provide an online experience and perhaps ultra light weight browsers based on custom protocols (such as RHML) could evolve the connected future for the C64/128 and others.

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/