Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » PROLINE
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
PROLINE [message #372633] Mon, 20 August 2018 13:15 Go to next message
Anonymous
Karma:
Originally posted by: 6502enhanced

Any Proline experts here?

I've set up a Proline System on the CFFA3000 on my Apple IIe Platinum.

Now I would like to add comp.sys.apple2 to the Conferences to read and write based on my Apple IIe without the help of any modern equipment like the PI.

Is anyone a real Proline expert and can explain how to add this group to the conferences of a Proline system?
Re: PROLINE [message #372653 is a reply to message #372633] Mon, 20 August 2018 17:50 Go to previous messageGo to next message
Aaron Daughtry is currently offline  Aaron Daughtry
Messages: 216
Registered: July 2013
Karma: 0
Senior Member
Yes... I would post this from proline but it's too much to type.

You will need a unix server to interface with the NNTP server. ProLine
interfaces through the outside world using email over MDSS, an
UUCP-like transfer program. Volume 22, Issue 4 (December 2017) of
Juiced GS has some details about my emulated ProLine server. It uses
TCP rather than a modem but is otherwise equivalent to an 8Mhz IIgs
proline BBS from 20 years ago, including "dialing" into a linux UMDSS
server to send/receive email and usenet.

(As an aside, with an Uthernet II card, you could write a program to
connect directly with an NNTP server. That's left as an exercise to the
reader).

On the linux side:

Suck generates an rnews batch file every 4 hours or so. This file is
"mailed" (queued up for MDSS transfer) to the rnews user at my proline
site.

On the ProLine side:

A cron job "dials" into the linux UMDSS server and sends/recieves mail.

sendmail distributes mail to the correct mailbox

The unbatch utility processes the rnews mailbox ($/sys/mail/rnews) and
splits it into indvidual files in $spool/news/, based on the newsgroup.

The postnews utility then posts the $spool/news/ files into the
appropriate conference.


review the man pages for rnews, postnews, and unbatch.

I have an online, HTMLized copy here: http://proline.ksherlock.com


You might want to create an rnews mail user (adduser -m rnews, IIRC)

my $/etc/aliases file also has this entry:

rnews: ~rnews

so sendmail will write directly to the rnews mailbox without checking
if the user is real.

I have comp.sys.apple2 conferenced as usenet/csa2 and
comp.sys.apple2.programmer as usenet/csa2p.

This is my $/etc/newsys file:

comp.sys.apple2
#L usenet/csa2 200

comp.sys.apple2.programmer=csa2p
#L usenet/pro 200

which keeps 200 messages. comp.sys.apple2.programmer is not a legal
ProDOS name so it needs the csa2p alias.

unbatch and postnews use that to map the usenet group to the
appropriate conference system.



Kelvin


On 2018-08-20 17:15:02 +0000, 6502enhanced@gmail.com said:

> Any Proline experts here?
>
> I've set up a Proline System on the CFFA3000 on my Apple IIe Platinum.
>
> Now I would like to add comp.sys.apple2 to the Conferences to read and
> write based on my Apple IIe without the help of any modern equipment
> like the PI.
>
> Is anyone a real Proline expert and can explain how to add this group
> to the conferences of a Proline system?
Re: PROLINE [message #372673 is a reply to message #372653] Tue, 21 August 2018 06:05 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: 6502enhanced

Wow! Thanks a lot for that cool explanation Kelvin!

This all seems to be not so easy at all - therefore that I use an Uthernet II card in my IIe Platinum that should be the easiest way to include comp.sys.apple2 into the conference of my Proline system... except the writing of a program for the Uthernet II :)

Do you have any hints for doing that?

Thanks!
Re: PROLINE [message #372709 is a reply to message #372673] Wed, 22 August 2018 04:30 Go to previous messageGo to next message
ol.sc is currently offline  ol.sc
Messages: 181
Registered: January 2013
Karma: 0
Senior Member
Hi,

> [...] except the writing of=
> a program for the Uthernet II :)
>
> Do you have any hints for doing that?

1. Read the W5100 Datasheet:
https://www.wiznet.io/wp-content/uploads/wiznethome/Chip/W51 00/Document/W5100_Datasheet_v1.2.7.pdf

2. Read my articles:
https://github.com/a2retrosystems/uthernet2/wiki/W5100-Opera tion-Modes
https://github.com/a2retrosystems/uthernet2/wiki/W5100-Hardw are-Detection
https://github.com/a2retrosystems/uthernet2/wiki/W5100-Share d-Access

3. Especially read this article of mine as it contains links to my
sample code:
https://github.com/a2retrosystems/uthernet2/wiki/W5100-Memor y-Buffer-Access

4. Understand that the W5100 does TCP, but it doesn't do DHCP nor DNS.
So either go without those two or - if you have enough RAM to spare -
use IP65 (see https://github.com/cc65/ip65/blob/master/README.md).
With IP65 you have two options:

4.1 Ignore the TCP of the W5100 and use the TCP of IP65. This is the
IP65 default and provides compatibility with the original Uthernet
(and the LANceGS).

4.2 Combine the DHCP/DNS/UDP of IP65 with the TCP of the W5100. This
provides better troughput for larger transfers but requires a "custom"
setup. Use https://github.com/cc65/ip65/blob/master/apps/wget65.c &
https://github.com/cc65/ip65/blob/master/apps/Makefile as starting
point.

Regards,
Oliver
Re: PROLINE [message #372714 is a reply to message #372709] Wed, 22 August 2018 09:12 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: 6502enhanced

Wow! That's a lot to read and work with.
Thanks a lot for the links!
Re: PROLINE [message #372728 is a reply to message #372714] Thu, 23 August 2018 05:31 Go to previous messageGo to next message
ol.sc is currently offline  ol.sc
Messages: 181
Registered: January 2013
Karma: 0
Senior Member
Hi Frank,

> Thanks a lot for the links!

You're welcome :-)

There's actually one more twist to it (not explicitly documented so
far) maybe relevant to you: If you communicate "always" with the same
peer then you can use IP65 to do DHCP and DNS for that peer. After
that you don't need IP65 anymore. The ADTPro Virtual Ethernet Drive
makes use of that approach.

You can create some startup / preboot / < you name it> program linked
to IP65 doing DHCP and DNS and leaving the W5100 fully initialized -
incl. the peer IP addr and peer port.

Then your main program does _not_ initialize the W5100 but start right
with connecting to the - already configured - peer.

In such a setup you can get away with a few 100 bytes of code in the
main program.

One of my demo programs uses pure C code down to the actual W5100
registers:
https://github.com/a2retrosystems/uthernet2/blob/master/demo /stream.c

Combining its source with the W5100 data sheet should allwo you to
understand those things well enough quickly. E.g. look at the
connect() function
( https://github.com/a2retrosystems/uthernet2/blob/master/demo /stream.c#L160-L193).
You can easily see that you could do
https://github.com/a2retrosystems/uthernet2/blob/master/demo /stream.c#L162-L179
in your startup program but
https://github.com/a2retrosystems/uthernet2/blob/master/demo /stream.c#L181-L192
in your main program.

Wget65 is actually based on a variant of that C code, it's located at
https://github.com/cc65/ip65/blob/master/apps/w5100.c. The primary
difference is that it's directly accessing the IP configuration (IP
address, Netmask, Router) from IP65 (which got it via DHCP).

I suggest to check out both variants and diff them to get some more
ideas but the variant in the IP65 repo might already be close to what
you'd want in a preboot program.

I presume that your main program has only little space left so the
actual data transfer needs to be programmed in asm. Therefore
https://github.com/a2retrosystems/uthernet2/blob/master/demo /tcp.s is
the right starting point - just without the initialization stuff.

And now a final remark:

_ALL_ my code presumes in one way or another that several of the 4
W5100 sockets are potentially used at the same time.

But:
1. An Apple II server doesn't need that "Shared Access" thing so
there's no reason for multiple sockets for "foreground program vs. OS
driver".
2. If IP65 is only used for DHCP/DNS and then removed from memory then
there's no reason for multiple sockets for "IP65 raw socket vs. W5100
TCP socket".

So if you reconfigure the W5100 after DHCP/DNS to use all its
receive/send buffer memory for just one TCP socket then you can make
use of the "automatic wraparound of the data pointer" not described in
the W5100 data sheet at all (!) but briefly mentioned in
https://github.com/a2retrosystems/uthernet2/wiki/W5100-Memor y-Buffer-Access
saying:

"The pointer auto-increment does a wraparound operation at the end of
the two 8kB memory buffers to their begin."

Leveraging that allows to simplify (aka smaller + faster) the code in
https://github.com/a2retrosystems/uthernet2/blob/master/demo /tcp.s

Check out
https://github.com/a2retrosystems/uthernet2/blob/master/demo /tcp.s#L314-L329

Without the need for a manual wraparound you can omit
https://github.com/a2retrosystems/uthernet2/blob/master/demo /tcp.s#L326-L327
(and all code elsewhere to support those two lines). That means you
end up with a single LDA so there's no need for a JSR at all. The same
goes for
https://github.com/a2retrosystems/uthernet2/blob/master/demo /tcp.s#L333-L354
boiling down to an STA.

Regards,
Oliver
Re: PROLINE [message #372772 is a reply to message #372728] Fri, 24 August 2018 05:29 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: 6502enhanced

Wow - thanks a lot again!

That is much knowledge - slowly I ask myself if I'm able to write that program - man, you're talking about things I never heard before :) ... well, I'll start to read and work myself into that - great that you shared all these information.
Re: PROLINE [message #372814 is a reply to message #372772] Sat, 25 August 2018 02:57 Go to previous message
spectrumdaddy is currently offline  spectrumdaddy
Messages: 176
Registered: November 2012
Karma: 0
Senior Member
<6502enhanced@gmail.com> wrote:

> Wow - thanks a lot again!
>
> That is much knowledge - slowly I ask myself if I'm able to write that
> program - man, you're talking about things I never heard before :) ...
> well, I'll start to read and work myself into that - great that you shared
> all these information.

Keep at it, as that is the way many of us learned how to program, by
trying to solve a problem that we knew nothing about to start with.

When I got my first Apple ][ way back in 1979, I had the idea of writing
some kind of game, but had no idea how to go about it. I started with
Basic, and learned how that worked. My Apple ][ came with a lower case
adaptor, and a sheet of instructions on how to program for it in
assembly language, so I learned that. Then I heard that there was a BBS
here in the UK that I could access if I had a modem, so I built a modem
from a kit. Then I realised I needed good communications software, which
was thin on the ground then, so I looked in to how to write my own in
6502 assembly language. Three years later, the software was sold as Data
Highway, a program that was very succesful in Europe.

Move on another ten years, I had a IIgs, which needed more powerful
software, so I leanred 65816 assembly language, and Spectrum was born,
another succesful program. That of course is still available, and still
useful.

Since then, I have learned how to write for all kinds of things, and
written all kinds of programs. However, as I was self-taught in the
beginning, and really started with assembly language, I have never
learned how to write in Pascal or C, but as others will testify, that
has not stopped me!

So don't give up, and keep at it. The Apple II platform is not dead, and
with all the new hardware now available, we need lots of new programmers
to write for it...

Cheers - Ewen (Speccie)

http://speccie.uk
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Working on DOS 3.3 support for Apple /// text modes
Next Topic: False read on index mode write?
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Aug 07 11:38:13 EDT 2020

Total time taken to generate the page: 0.05037 seconds