Jump to content
  • 0

networking options


voidstar
 Share

Question

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) 🙂

 

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0
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.

Link to comment
Share on other sites

  • 0
  • Super Administrators
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/

 

  • Like 1
Link to comment
Share on other sites

  • 0

 

 

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.

 

Edited by rje
Link to comment
Share on other sites

  • 0
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.



 

Link to comment
Share on other sites

  • 0
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.

Link to comment
Share on other sites

  • 0
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.) 

Link to comment
Share on other sites

  • 0
Posted (edited)

 

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?

 

 

 

Edited by voidstar
Link to comment
Share on other sites

  • 0
Posted (edited)

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)

 

 

 

 

 

Edited by voidstar
Link to comment
Share on other sites

  • 0
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. 

 

 

 

 

 

Link to comment
Share on other sites

  • 0
Posted (edited)

Oh yes, my wife's chickens are very special !  And they don't like possum visitors at night.      And yep it's overkill for that one application.  But what about a charge controller?  I've several processors out there, seems if I had a little more control on the programming I could combine all that into one device - but I don't need an Intel i7 out there (well, unless I wanted onboard facial recognition on the cameras, but nah).    Those Intel ITX boards are nice, but that's definitely overkill.   Anyhow, 5v is just a little too sissy - it can handle this wimpy plastic servos to slew a little camera, that's about it.  I think some "charge up" expansion thing could be added to the Arduino - so sure, if some "standard" expansion device was made for the X16 (with some fuses and such).  But extra cables really is a drag - even the IBM PC understood that, with the extra cable from the P/S to the monitor (so once switch to power up everything).     Now-a-days we got that induction stuff (for charging), trying to "cut the last cable" out of devices.

 

BTW: Tandy removed the 12v pin from their cartridges after the coco1 (not sure why, but just noting it).  The PCJR expansion boards (the ones on the side, not the cartridge slots) had a 12v line.  Yea there were some "horror stories" of abusing the 12v line of the Apple2.

 

I think the "killer app" here is making stuff like this easily accessible without the need for an elaborate operating system - and BASIC was kind of good for that: the simplest control language embeddable into a ROM?  And once you have PEEK/POKE, you can then basically inline any assembly stuff that's urgent (but wasting/consuming a lot of code space to express those POKEs since all have to be interpreted).

 

 

 

 

 

 

Edited by voidstar
Link to comment
Share on other sites

  • 0
  • Super Administrators
On 3/4/2022 at 10:34 AM, voidstar said:

Oh yes, my wife's chickens are very special !  And they don't like possum visitors at night.      And yep it's overkill for that one application.  But what about a charge controller?  I've several processors out there, seems if I had a little more control on the programming I could combine all that into one device - but I don't need an Intel i7 out there (well, unless I wanted onboard facial recognition on the cameras, but nah). 

This is the kind of stuff that an Arduino is ideal for. Even a cheap Arduino Uno can operate your gate opener or a battery charger, with the right sensors and relay boards.

And if you want on board programming, look at the Maximite series of microcontrollers. 

As to running motors and servos from the computer's power supply - that's a really bad idea. Always use an external power supply and either relays, transistors, or opto-isolators to control motors. Even hobby servos should be powered directly from a 5v source, not the the computer itself.

  • Like 1
Link to comment
Share on other sites

  • 0
On 3/4/2022 at 10:34 AM, voidstar said:

 Anyhow, 5v is just a little too sissy - it can handle this wimpy plastic servos to slew a little camera, that's about it. 

Voltage is only part of the power equation. Current is the heavy lifter. 

I've had the privilege of seeing a superconducting coil running at 1 volt and near 500 amps in person in the late 80s. The magnetic field as it ramped up caused a Fluke multimeter (bolted to the floor) to fail at 10 ; at 25 ft one could hold a quarter in their vertical palm without it falling to the ground (not that it would if let go.) 

On 3/4/2022 at 10:34 AM, voidstar said:

But extra cables really is a drag - even the IBM PC understood that, with the extra cable from the P/S to the monitor (so once switch to power up everything).     Now-a-days we got that induction stuff (for charging), trying to "cut the last cable" out of devices.

Cables have their advantages - my wired network is a lot more reliable & secure than a wireless one. With switching high power loads off and on cabling makes sense. Any high power connection probably should have opto-isolation to a controller; fuse protection isn't ideal as it primarily limits current and that the current must exceed the value for it to disconnect the circuit. 

Are you thinking of trying to "wi-fry" a possum? 😀

An Arduino is a good platform (or a Basic Stamp) if you wanted to home brew a system, but an industrial PLC would be a better choice IMO. These solutions require power, so when the electricity goes out things might not work out well for the chickens. 

 

Link to comment
Share on other sites

  • 0
Posted (edited)

  

On 3/4/2022 at 12:46 PM, TomXP411 said:

This is the kind of stuff that an Arduino is ideal for......with the right sensors and relay boards.

Exactly, with "this and that" wired up, with a homebrew concoction that nobody else will replicate.    We're defining a system here.   Make a standardized ROM with some programming control, and standardize parts of the system for some hobby-grade applications....   So all I have to do is share my BASIC  program, not any h/w schematics.     

 

This sort of relates to why the case is important, it sets the identity: the box that looks like that has X,Y,Z fixed capabilities (like you look at a PS3 - yea it could be modified, but chances are it's the standard formula as Sony defined it for that system).  [ about that -- at least define the "standard" or "default" case to establish that identity, let others replicate/3D print eventually - up front just sell maybe 20? 100? cases but sold at a premium kind of as collectors items, but also to kickstart production - $500+? yea it's just plastic, but partially a charity drive of sorts too? iirc, the concern was some minimum order was necessary to make it worthwhile doing that production, and then you have the logistics of storing all that inventory for awhile -- which yes, applies to the system as a whole, not just the case ]

 

Arduino is a nice modular thing - but you have to tether a laptop to upload some compiled C code.  That misses the "vintage experience" - where you plop down a machine, attach a screen, and can immediately start programming it to do stuff (with the default vintage capabilities being: make some beeps, poll a joystick, draw stuff on screen -- now add: make a couple network connections, and interact with some above-5v stuff).

 

I'm not sure how power management is envisioned on the X16.  For example, is it a power brick that does AC/DC convert, so the system itself is all DC power?   Could one of the expansions be reserved as a "power distributor" of sorts, for maybe 6V - 18V range? (and it has fuses or whatever appropriate circuit protection).  Or can the expansion bus be arranged to at least support such an add-on card?   The only reason I lobby for making it a more integral part of the system, is so that it can be accessible (in a standardized fashion) from a hypothetical BASIC ROM (so it is accessible as an "out of the box" capability - that could equally be accessible from compiled C code).

 

I guess while I'm dreaming: also standardize some LED blinky lights.  Capture a bit of the Altair experience, but can also be status indicators while the screen is off (like status on if a 12v line active?).  Yep, more costs - but that's what building a system is all about: finding that sweet spot between being affordable and interesting standard features that people want that system (like an "easy built-in language" that can interact with all this capability, in like a 10 page writeup).  I've got a lot of systems that can play Sonic-type games, but a networked Sonic game that blinks lights by day, and closes chicken-coop doors by night? That's new 😉

 

Edited by voidstar
Link to comment
Share on other sites

  • 0
  • Super Administrators
On 3/4/2022 at 2:44 PM, voidstar said:

Exactly, with "this and that" wired up, with a homebrew concoction that nobody else will replicate.    We're defining a system here.   Make a standardized ROM with some programming control, and standardize parts of the system for some hobby-grade applications....   So all I have to do is share my BASIC  program, not any h/w schematics.     

That's simply not going to happen. 

Anything like what you're describing is going to require some hardware in-between for buffering and switching. About the only thing you can do with the VIAs directly is drive some LEDs or the input of another digital device. You absolutely cannot run motors with it or anything else that requires more than a few milliamps of current.

There's definitely no switching or external control for 12v devices. At that point, you are absolutely going to need motor controllers or drivers for 12v circuits. Usually, that's something like a relay or a transistor. 

Getting back to the point - no, there's nothing in the Commander that gives you any GPIO functionality you can't already get from an Arduino, Maximite, or Raspberry Pi. And there aren't going to be any changes in that direction, as far as we can tell. The system hardware is pretty much finalized, and the only changes Kevin is making is to deal with the few bugs left in the hardware: dealing with the keyboard and managing the ATX power supply. (Ironically, both of those will be fixed by the use of a small microcontroller - much like the one in an Arduino.)

 

Link to comment
Share on other sites

  • 0
On 3/4/2022 at 3:37 PM, voidstar said:

But yes to some LED blinky lights?  from BASIC, via the expansion port(s) ? Maybe 😉

Very doable as an expansion card on the X16 platform. Take a look at how Ben Eater interfaced a LCD to a 6502 process by putting it on the address bus of the CPU. LEDs would be much simpler as there is no controller that requires programatic steps to get data to be displayed.  Simple basic pokes could switch the LEDs on and off. 
 

 

Link to comment
Share on other sites

  • 0
  • Super Administrators
On 3/4/2022 at 6:17 PM, Edmond D said:

Very doable as an expansion card on the X16 platform. Take a look at how Ben Eater interfaced a LCD to a 6502 process by putting it on the address bus of the CPU. LEDs would be much simpler as there is no controller that requires programatic steps to get data to be displayed.  Simple basic pokes could switch the LEDs on and off. 

You don't even need an expansion card for LEDs. There will be something like 14 GPIO lines available on the User port, and they should provide enough current at 5v to light an LED. You will need a 200Ω resistor, exactly like when using an Arduino Uno or other 5v microcontroller. (IIRC, the VIAs are actually running at 3.3v, but the I/O circuit is buffered and will have 5v level converters.)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use