Page 1 of 4

networking options

Posted: Thu Mar 03, 2022 12:19 am
by Xiphod

I looked through the FAQ and didn't see anything mentioned about networking support.  So I'd assume it could be added through the expansion slots?  Either wifi access or wired ethernet.

And I understand networking isn't "period correct" for mid 1980s and maybe not much interest in it for that reason.  (yes modems were popular back then, but WWW and TCP/IP in general was still in infancy back then)

That said - I think from a programming perspective, network support is important for a few reasons:

(1) developers could offer "auto-update" features, so the current working build of their games get downloaded  (but downloaded to what? SD? HD? direct in-memory?)

(2) how about an "upload top scores" feature?  Or the option to do so.  Obviously without encryption and such, it's susceptible to hacking/cheating (open source builds just uploading their own scores using the same protocols).  Won't be a perfect system, maybe scores reset every week or month.

(3) what if reliable low-latent networking *did* exist (or was more mainstream) in the early/mid 80s?  Might be fun to have a lobby to connect with other folks for some light gaming (e.g. card games, or "turn style" games rather than action oriented games).  But imagine networking on your Sega Genesis or Dreamcast (actually I think the Dreamcast did have a modem port?).

(4) maybe an "X16 app store" ?  We're talking about a new platform here.  Yes it's more hobbyist focused - but a centralized place to have a repo of software application available, and user ratings, would be nice.  Yes, that opens a can of worms (vetting things submitted, to sort of quality-control the content).  Maybe it could help developers get $1 for their software, and 25% to maintain the site?   Sure, that opens another can of worms - but as hobbyist, this isn't $$ to put food on the table, but to just at least maintain basic energy and resources (like this forum software itself!).

 

 

Right at the tail end of the "BBS-era" (around 1996, subjectively) - we SysOps were experimenting with GUI-based BBS's (protocols sort of like ANSI or AVATAR, but interpreted codes to draw lines, menus, etc).  Might be fun to experiment with things more expressive than ANSI, but not as extensive as HTML and what all that has become.

Ok, and I just want to re-create that avatar chat program that was depicted in the TV-series Halt and Catch Fire (Mutiny's online adventures) ?

 


networking options

Posted: Thu Mar 03, 2022 12:49 am
by Scott Robison


On 3/2/2022 at 5:19 PM, voidstar said:




I looked through the FAQ and didn't see anything mentioned about networking support.  So I'd assume it could be added through the expansion slots?  Either wifi access or wired ethernet.



I'm "working" on a project (though very slowly) to interface an X16 to a Raspberry Pi over the IEC serial bus. It would not be speedy but it could allow networking.

When I worked on PCBoard we added some rudimentary support for RIPscript (sp?) which was interesting for the time with it's use of escape sequences with "hexatridecimal" (base 36) numbers to encode values.


networking options

Posted: Thu Mar 03, 2022 9:37 am
by TomXP411


On 3/2/2022 at 4:19 PM, voidstar said:




I looked through the FAQ and didn't see anything mentioned about networking support.  So I'd assume it could be added through the expansion slots?  Either wifi access or wired ethernet.



And I understand networking isn't "period correct" for mid 1980s and maybe not much interest in it for that reason.  (yes modems were popular back then, but WWW and TCP/IP in general was still in infancy back then)



That said - I think from a programming perspective, network support is important for a few reasons:



(1) developers could offer "auto-update" features, so the current working build of their games get downloaded  (but downloaded to what? SD? HD? direct in-memory?)



(2) how about an "upload top scores" feature?  Or the option to do so.  Obviously without encryption and such, it's susceptible to hacking/cheating (open source builds just uploading their own scores using the same protocols).  Won't be a perfect system, maybe scores reset every week or month.



(3) what if reliable low-latent networking *did* exist (or was more mainstream) in the early/mid 80s?  Might be fun to have a lobby to connect with other folks for some light gaming (e.g. card games, or "turn style" games rather than action oriented games).  But imagine networking on your Sega Genesis or Dreamcast (actually I think the Dreamcast did have a modem port?).



(4) maybe an "X16 app store" ?  We're talking about a new platform here.  Yes it's more hobbyist focused - but a centralized place to have a repo of software application available, and user ratings, would be nice.  Yes, that opens a can of worms (vetting things submitted, to sort of quality-control the content).  Maybe it could help developers get $1 for their software, and 25% to maintain the site?   Sure, that opens another can of worms - but as hobbyist, this isn't $$ to put food on the table, but to just at least maintain basic energy and resources (like this forum software itself!).



 



 



Right at the tail end of the "BBS-era" (around 1996, subjectively) - we SysOps were experimenting with GUI-based BBS's (protocols sort of like ANSI or AVATAR, but interpreted codes to draw lines, menus, etc).  Might be fun to experiment with things more expressive than ANSI, but not as extensive as HTML and what all that has become.



Ok, and I just want to re-create that avatar chat program that was depicted in the TV-series Halt and Catch Fire (Mutiny's online adventures) ?



 



Most of us are disappointed by the lack of on board networking or even basic RS-232 communication. I consider that an essential feature, so I'm also looking at ways to make that work. Scott's method will likely work and have some utility, and I'm planning a very similar device, but connected through the User port - so it can take advantage of 4 bit full-duplex or 8 bit half-duplex communications. 

It should also be possible to run a network interface on an expansion port, as you suggest. A UART can be installed on an expansion card to expose a serial port on the back of the machine, similar to a serial card on an IBM compatible PC. In fact, there is even a project for the Commodore 64 that uses a 16550 UART; with some modification, that could almost certainly work on the Commander. 

http://mynor.org/mycpu/otherprojects/c64terminal/index.htm

The classic 6551 UART can also be used, as seen in this Swiftlink clone:

https://gglabs.us/node/2057

or this one with a WiFi interface:

https://www.tindie.com/products/dabone/link232-wifi-swiftlink-compatible-wifi-for-c64/

 


networking options

Posted: Thu Mar 03, 2022 3:03 pm
by rje

 

 

I think the best networking thingie for the X16 is the one that gets built.

 

That might be RS-232.  It might be a wi-fi enabled SD card.  Could be the neato TI calculator link protocol. 

 

I think a protocol gets points for 

(a) getting there first

(b) ease of construction

(c) parts price

 

I don't think ease of use gets points, even though that's what I would want.  A messy protocol probably still wins, if people who want it can build it or get it.

 

It seems to me that the more popular protocols (RS-232) have a leg up, in that it is more possible to test an RS-232 networking thingie based on existing tech.

 


networking options

Posted: Thu Mar 03, 2022 5:31 pm
by Edmond D


On 3/2/2022 at 4:19 PM, voidstar said:




And I understand networking isn't "period correct" for mid 1980s and maybe not much interest in it for that reason.  (yes modems were popular back then, but WWW and TCP/IP in general was still in infancy back then)



I view "Retro" as using modern technology to reproduce systems that work like they were like the 8 bit systems that were designed and produced in the 1980s. I don't see it as being 100% pure in using only technology (hardware &software) available at that time.  

While TCP/IP is a late 70s evolution and the web is a late 80s invention, there is probably a lot of interest in having these available on the X16. I'm not expecting a browser that rivals Chrome (or event Netscape in it's day  ?) but hopeful that some dabbling on internet technology does happen.

My hope is that there is a RS-232 expansion board (or even a couple of them) for the X16 platform. This type of card would allow others to connect to a huge array of serial devices beyond what is used for modern networking.  

Aside

Having worked with a lot of RS-232 devices in the industrial computing world, I know that most RS-232 devices deviate somewhat on the specified protocol, in connectors, cabling, and operation. The Vic 20 can do RS-232 out of box at a software level, but the hardware uses TTL levels and not the defined bipolar levels of the "standard."  Having a standard and enforcing a standard are unfortunately two completely different things. ? My hope for a modern X16 RS-232 card is that it conforms to the latest standard as best it can.





 


networking options

Posted: Thu Mar 03, 2022 5:38 pm
by SlithyMatt


On 3/3/2022 at 12:31 PM, Edmond D said:




I know that most RS-232 devices deviate somewhat on the specified protocol, in connectors, cabling, and operation



This ?

RS-232 is probably the most abused standard in the history of computing. Basically, if your serial port could connect to a Hayes modem or a Microsoft mouse, it was good enough and people just called it "RS-232" to make it seem like it was complying to a written standard rather than a loose ad hoc, de facto, et cetera form factor.


networking options

Posted: Thu Mar 03, 2022 5:50 pm
by Edmond D


On 3/3/2022 at 9:38 AM, SlithyMatt said:




This ?



RS-232 is probably the most abused standard in the history of computing. Basically, if your serial port could connect to a Hayes modem or a Microsoft mouse, it was good enough and people just called it "RS-232" to make it seem like it was complying to a written standard rather than a loose ad hoc, de facto, et cetera form factor.



RS stood for "Recommended Standard", not "required standard." and the protocol RS-232 started in 1960s. I'm glad in these days protocols that are standardized usually have a certifying body behind them actually testing conformance. Imaging if USB was implemented like RS-232 was - we'd still be in the stone ages of computing. ?



There are many sins of the past we've grown out of thankfully.  Words like "WYSIWYG", "compatible" and "standard" are hints of some issue ( and always make me cringe.) 


networking options

Posted: Fri Mar 04, 2022 4:56 am
by Xiphod

 

I thought "RS" was RadioShack ?  Haha, actually I never even really thought about it meant.  Learned something, thanks ?

 

Originally when I said "from a programming perspective"   I meant a "standard way" to access this kind of connectivity.    Same idea for the audio/sound.   

 

A good h/w NIC helps offload the CPU for some of the duty, yes? and then there are choices about the MTU size and such?  could/should the BASIC be adjusted to support that?

 

10 CONNECTION X="123.123.123.123:84"

20 NPRINT X,"HELLO"

30 NINPUT A$,2000:REM 2000 is ms to wait for input? (default to 500?)


(just making stuff up)

 

Someone made a comment of having the hw design "frozen in time" - yea, I like that idea.   Kind of neat that CAT5, it hasn't really changed in -- 30 years?  I guess that's like 120V power outlets - that's like over 100 years standard now?  (I know, "standard"... 115v, 120v, something like that ?  my old professor one said "one thing you'll learn about digital circuits is that everything is actually analog" ? )

 

Another thing might be a 12V power line somewhere.  I'd like to control some motors or more extensive equipment (gate openers and TEC coolers), and 12V helps for that.  Maybe there is a way off the expansion port?

 

 

 


networking options

Posted: Fri Mar 04, 2022 7:12 am
by Xiphod

If we did this "stupid easy networking from BASIC" - imagine: using an X16 as a base controller to some home automation stuff?  I'm not sure if X10 is a thing anymore.  Yes, you can get a lot of that on Smartphone now and IOT enabled power ports.  But maybe I don't trust my smartphone and want a more standalone system ?  Or I just don't want to need a data plan.

And maybe you hardware folks could make some low-powered "X16 compatible" control devices.  Like, a single-shot camera? (remote property monitoring).  Remote power toggle (for lights)?  Cover openings (for solar panels, telescopes)?

 So from BASIC, something like...

10 B$="123.123.123.123:84

15 POKE(0x5556, 5): REM set connection 1 query timeout (seconds)


20 OPEN IO,5,1,A$,B$:REM device 5 is NIC, A$ for input, B$ for output  [maybe limit up to 3 connections? each connection consumes h/w resources]

30 X = PEEK(0x5555):REM NIC status of connection 1  

40 IF X&0x01 = 0x01 GOTO 50: REM check bit for "data content ready in input buffer"

45 GOTO 30

50 ...parse A$ (up to however long A$ length can be, 255 chars?)


60 PRINT #-5,1,"TAKE PHOTO REZ 3":REM send to device 5 (NIC) connection 1, string command to take a photo image  [ more likely the command would be like "08 34" some hex code ]

70 ...wait for a response, parse and wait for data stream mark begin...

80 ...write the received stream to a file...

90 CLOSE #-5,1 : REM politely close the connection

 

That kind of modification to the ROM is a big ask, plus the NIC buffer has to go somewhere (re-use the Commodore tap buffers??).

But point is, if you can make it "stupid easy" and a "standard way" - well, maybe that inspired folks to tinker with it?    (with this kind of ROM, make "X16" commanded sprinklers? thermostat?)

 

I'd use a couple X16's to open up the chicken coop door (which needs 12v -- outside slide doors got a lot of friction to deal with)

 

 

 

 

 


networking options

Posted: Fri Mar 04, 2022 12:25 pm
by Edmond D


On 3/3/2022 at 8:56 PM, voidstar said:




 Kind of neat that CAT5, it hasn't really changed in -- 30 years?  



Like RS-232, wire based ethernet has evolved - see https://en.wikipedia.org/wiki/ISO/IEC_11801#Category_8 Similarly there is some backward compatibility in the standard for certain physical media, but a divergence in connectors. I don't know all the details, since the CAT-5 stuff just works for me. ?


On 3/3/2022 at 8:56 PM, voidstar said:




I guess that's like 120V power outlets - that's like over 100 years standard now?  (I know, "standard"... 115v, 120v, something like that



120 Volt AC systems aren't standardized across the planet, 230V systems are more common. Even the North American system has issues - one can incorrectly switch the live, neutral & ground wires and still get power, but bad things can happen when miswired devices are used. 

  https://en.wikipedia.org/wiki/Mains_electricity#/media/File:World_Map_of_Mains_Voltages_and_Frequencies,_Detailed.svg


On 3/3/2022 at 8:56 PM, voidstar said:




Another thing might be a 12V power line somewhere.  I'd like to control some motors or more extensive equipment (gate openers and TEC coolers), and 12V helps for that.  Maybe there is a way off the expansion port?



Motor control power is best served by a separate independent power system for many reasons. Most industrial I/O I've used is 24V DC powered by a separate supply from the main controller's one. The expansion port could be used to control a 12V device with the right interface circuitry.  


On 3/3/2022 at 11:12 PM, voidstar said:




I'd use a couple X16's to open up the chicken coop door (which needs 12v -- outside slide doors got a lot of friction to deal with)



 



That's a lot of "horse power" for the chickens - they must be very special for that much computing force. ? It's doable, but might be overkill. 

I do like the thoughts of making networking simple in basic on the X16. With your ideas and enthusiasm, finding a way to make it happen seems likely.