UPDATED - Source code released 16/1/2002
I've cleaned/rearranged the source a lot and tried to sprinkle little bits of my knowledge amongst the source code tree that may be useful to anyone trying to make any sense of it. I haven't really finished doing this, so feel free to throw questions at me about things you don't understand if you choose to work with it and I'll add them to the source.
If anyone decides to play with it I would like any feedback on improving the source distribution along with the code itself.
btw, you'll need unix (probably linux) to compile the source tree.
Also, Franz Kottira has created an excellent page showing how to use most features of NT10 (in both English and Deutsche). See the English version or the German version.
What is Novaterm 10?
Novaterm 10 is the ill-fated successor to Novaterm9.6, arguably the most popular terminal program ever for the Commodore 64. It is a complete re-write, that works natively on both a c64 or c128.
Novaterm 10 was never finished. It remains beta software.
Many drivers & utilities don't exist (compared to 9.6) or are unreliable. For example: user port serial (broken), up9600 interface (missing)
What is here is also unfinished!
This is mostly just things I fixed that bugged me, or interesting stuff that I wanted to see working like PPP and the 33 row screen mode. I don't know the NT10 source code that well, only the stuff that I wanted to fix like the screen drivers, terminal emulation and a few others. Getting it the way it should be would require a major rewrite due to many architectural problems (lack of memory for example, that the kernals remain switched in, horrible NMI handling etc etc etc).
Due to work & other commitments, Nick Rossi eventually gave up on NT10. However I did offer to help him with it and what you find here are the results of my work. The main things I did were:
- PPP - Nick had only implemented SLIP. Yes it works on a stock c64 or 128! I've tested it with several ISP's without problems. With PPP you can use almost any ISP and run the telnet client to access any server on the internet. NT10 had working PPP before "The Wave" was even released!
- 80x33 Screen mode. Yes that's 33 rows of text on a VIC screen rather than 25, and yes, it's readable! (no less readable than 80x25 to me anyway) I thought up this "mode" many years ago as I am quite used to >25 rows on pc terminal programs and NT10 was perfect for implementing it into something useful. It supports reverse & underlined text but no colour due to the mis-alignment of VIC's 8x8 colour cells.
- Changed the VIC 80column cursor from software to a sprite, allowing it to flash. The cursor is now updated via the CIA (60hz) interupt rather than after drawing every character. Both these changes speed up these soft-80 displays.
- Dozens of minor improvements. I don't remember a lot of what I did, but I fixed a lot of things that annoyed me and that would probably annoy you. I did some cutesy things like the cool cursor flash and the joymouse code. (try a joystick in port 2...)
- Bugfixes. Tons of 'em. NT10 is a lot more stable than it was and has a lot less quirks & glitches. For example the VT102 terminal is now 100% complete; the existing VIC/VDC drivers are now bug free. There's still a lot left though...
What DOES or DOESN'T Work
Lots. A rough list off the top of my head:
- Terminal - Works great including up/downloads. So does dialer and related stuff. I don't think scripting works, never tried.
- Internet - Telnet works but NO DOWNLOAD PROTOCOLS. There isn't enough memory to load them! There are also bugs in the TCP code which means it might lock up for no particular reason. You might telnet for an hour without it locking up or you might telnet for a minute and it locks. No other internet apps work (ftp etc unfinished). PPP works fine, so does internet profiles (different ISP setups). You can't use SLIP though (it's hardcoded to PPP).
- Serial - Swiftlink/T232 work great. User port is flaky and will probably crash. 2400bps max even on a c128. UP9600 not implemented. Anything else untested.
- Screen - No 80column vic modes on 128 (broken). Everything else should be fine. 80x33 has a minor glitch with restoring things after opening a window but it's tolerable. I didn't do a 40x33, didn't see much point. Any other bugs aside from above I'll fix if I'm told about them.
- Terminal - vt102 is perfect AFAIK. Rest should be OK. Tell me if they aren't, I'll fix.
- Time - cmddrive works, unsure on rest. I'll fix.
- Protocols - zmodem/ymodem/xmodem OK AFAIK. Unsure on rest. Will fix.
- Memory - I don't know about these (REU/Superram etc). Try it & see.
- Misc - Fonts might have some missing or wrong, not sure but should be ok. Restarting doesn't work. There is lots of other things missing and/or broken.
I'll extend this list in future. I haven't looked at the code in yonks so probably forgot lots of things.
Below is the same screen (midnight commander on a linux shell) in the 80xx33 and then 80x25 NT10 screen modes. Note the extra lines of the first shot. The extra lines are great, especially for file listings and web browing with lynx/w3m/links. Click on the picture for an expanded version you can actually read on your hires PC screen :)