xlar54 / ultimateii-dos-lib Goto Github PK
View Code? Open in Web Editor NEWcc65 library for accessing the DOS and network functions of the Ultimate II+ cartridge and Ultimate 64 motherboard
License: GNU General Public License v3.0
cc65 library for accessing the DOS and network functions of the Ultimate II+ cartridge and Ultimate 64 motherboard
License: GNU General Public License v3.0
User "Joonas Viskari" reports that AfterlifeBBS (afterlife.dynu.org : 6400) worked with 1.22 version but it does not work with 1.5+ :
https://www.facebook.com/groups/commodoresixtyfour/permalink/10155726173572172/?comment_id=10155729156632172
I tried to connect to Afterlife also with a PETSCII-compatible terminal for PC (SyncTerm), but for me it is almost offline.
Can you make some try and verify it?
I just tried U-SHELL (I have a u2+ on 3.10A fw).
Nothing works, not even the "id" command.
When using uii_tcpsocketwrite_ascii all _ are replaced by .
Example Code:
int port = 80;
unsigned char socketnr = 0;
char *cmd = "GET /roller/0?go=to_pos&roller_pos=40 HTTP/1.0\n\n";
char *host = "192.168.1.1";
socketnr = uii_tcpconnect(host, port);
uii_tcpsocketwrite_ascii(socketnr, cmd);
uii_tcpclose(socketnr);
Result in tcpdump is:
GET /roller/0?go=to.pos&roller.pos=40 HTTP/1.0
Dont want to leave out the IRC apps, so it would be nice for the loader to present a menu of either UltimateTerm or UltimateChat IRC. Folks may not realize its there. A cool looking header in Petscii characters of something would be nice too.
I'm trying to write a NTP interrogation tool. To achieve that I added the UDP support to this library.
I also noticed in network_target.h there is no discrimination on TCP vs UDP methods towards sockets, except for creating them.
I added: uii_udpconnect
, uii_get_time
and refactored method names to mirror network_target.h in my fork.
I hope I have been helpful
Issue: Some functions using malloc but do not free heap before return:
uii_write_file
uii_tcpsocketwrite_convert_parameter
uii_tcpconnect
Effect: heap overflow when using these functions frequently - crash of program
User "Bela Erdos" suggests that:
https://www.facebook.com/groups/commodoresixtyfour/permalink/10155726173572172/?comment_id=10155729582457172
Hey there, I sent an email too, but not sure which one will reach you quicker so I just post it here too.
ok 1.61 works fine,
Some idea for feature update:
1 - let's name the BBS connection and browse by that name instead of the full link.
2 - make a alphabetical sort option, right now as I filling up the list gets harder to find the one I'm looking for
3 - let's have a field for the named connection as Memo, so folks can add note to that bbs
4 - integrated password manager. Let's create a separate file where user can save his login credentials and after entering a master password can see it on top of the screen when they try to login. Obviously it is super important to make user aware of DO NOT SHARE YOUR PSSW file... :D for obvious reason, but would help to make the program better
If anything else comes up, I'll let you know
B3L4 / Hokuto Force
If I wait for a certain number of seconds without making any action while I am connected to a BBS, the connection suddenly is broken. Given a BBS where the timeout is a known value (e.g. retroacademy bbs has 1 hour of servers-side timeout), this "client-side" timeout comes up before the known value.
What is the way to change this type of (client-side) timeout of the connection?
Hi ! I just had a look on ultimateterm.c because I wondered why XMODEM Downloads from a BBS didn't work as expected.
So I took a quick look on the code and found out why it didn't work.
Besides missing code for xmodem Uploads, there are things missing like, resending of bad blocks, check if connection got lost, CRC Checksum (1 Byte checksum shouldn't be uses since 3 decades....) and maybe 1K Buffer / Blocksize, and chopping the padding CPMEOF when the last Block got sent (what if File ends with $1a Byte ?).
To be honest I'm not a C Coder, but I inserted some Comments and lines of code, so you may get an Idea of what I want to say...
As a reference I took MagerValps xmodem.c from his CGTerm and put portions of it into your code (as demo) + a few lines of C from me.
Would be great if you could update your Term.
Feature requrest: ... and add Upload too ? Maybe ?
PS: Maybe I can help with Punter. I run my own Version (6510) with up to 48MHz U64 Turbo on Raveolution.... (via Modem Emu Layer ofcourse).
ultimateterm2.zip
With the introduction of protocol / download support, I think we need to implement some basic DOS command support as well. Viewing a directory, rename, delete, copy file (to same disk). Just the basic options for now. Also switching active drives for downloads.
It would be nice if u-chat supported IRC servers that required a password. I'm thinking about using this IRC <-> Slack gateway: https://github.com/insomniacslk/irc-slack and u-chat would need that ability.
This could be either implemented in the terminal, or as an external program. Would automatically download the active BBS list from commodore bbs output api:
(main site): http://cbbsoutpost.servebbs.com/
http://cbbsoutpost.servebbs.com/api/exportbbslist/
CSV file format would be easiest
Instead of showing users "Send bug reports to: scotthuttergmail.com", provide them the link to this repo. They can create issues in the issue list instead so that contributors can see it
Mike Lewis reported this error on Facebook (related to BBS "13th.hoyvision.com:6400"):
https://www.facebook.com/photo.php?fbid=10217265600013232&set=p.10217265600013232&type=3&theater
Bell not working under v2.0.
Maybe I found the way and it's incredibly simple. After reading data with uii_tcpsocketread, the length of the data read is:
len_buff = uii_data[0] | (uii_data[1]<<8)
if len_buff is >0, then data is present. Otherwise there are TWO other options:
I tested it and implemented in the following lines in UltimateTerm.c:
https://github.com/xlar54/ultimateii-dos-lib/blob/download_with_punter_protocol/src/ultimateterm.c#L556
if (datacount == 0) { // datacount == 0 means "disconnected"
break;
} else if (datacount > 0) {
cursor_off();
if (asciimode) putstring_ascii(uii_data+2); else uii_data_print();
cursor_on();
} // datacount == -1 means "wait state"
Can you make some test and verify that it is correct also for your attempts?
Need to be able to send CTRL-X a couple of times when downloading (maybe via a function key or RUN/STOP) I suppose close and cleanly delete the created file when aborting.
Would be very useful support for VT100/ANSI terminal.
I think it's the big missing of ultimateII. Why should I give up my UltimateII+ to free Cartridge slot for a RRNET or use the userport with wimodem?
Not uncommon to remain in a chat room for hours on end. Add option to blank screen after certain time period (protect from screen burn in). Recover if named, and possible chime or bell.
Separating out the xmodem support from the punter support. Nice work on this!
Some users have complained over the 2 line limit. Instead, lets make it a single, vertical scrolling line of 255 characters
Hi there!
I have a C64G and U2+ which has been updated to the latest firmware (3.10a). My IP settings use DHCP, and I have an IP showing up in the main menu.
But when I give the u_sample.prg program a try, unfortunately everything comes up blank... No IP detected (everything 0.0.0.0), and blank results for all tests.
Is there any particular setting on the U2+ that needs to be setup for the program to work??
Im working with Gideon to see what can be done to move beyond 2400 bps. Leaving this ticket as a placeholder. Looking at his code, there really shouldnt be a limit. Will see what he says.
how is supposed to work? is it possible to send/recv arbitrary binary data over UDP protocol?
CGTerm's code may be useful here:
https://github.com/mjgardner/cgterm
Just a placeholder for new features
It seems that people turn on and off the C64 and re-load U-Term from disk every time they want to change BBS:
https://www.facebook.com/1943034422597090/videos/602093900263708
...but they can just presss F1! We have to find a way to communicate it clearly. For example, some instructions on main screen are now obsolete, and we can use that part of screen more efficiently (e.g. "ensure that Command Line interface is enabled", just because now there is a UCI detection when program starts, then it gives user instructions on how to turn it on)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.