Arcade BBS down?
Rick Murray (539) 13850 posts |
Yes, telnet. Because it was simple to do, and at the time I wrote it, it wasn’t as if RISC OS actually had any sort of standard encryption services… Plus, I am of the opinion that if somebody is snooping on your telnet connection, you have far bigger problems than whether or not you’re using telnet!
Microsoft has a telnet client? You don’t mean that rubbish console mode thing, do you? I just use either HyperTerm or PuTTY. Needs ANSI support, though. |
Steve Pampling (1551) 8172 posts |
Hey that’s handy: telnet somehttpserver 80
Every switch I access is via Putty, it works. |
Richard H (8675) 100 posts |
I weakened. I’m now in possession of :- However, I am still in short supply of :- Although I’ve noticed that enough coffee makes the former slow down to a crawl, and the latter seem less important. Now off to reinstall RISC OS on my Pi and start using it in anger. Or at least, in irritation. |
Steve Pampling (1551) 8172 posts |
I had a manager who insisted we should “make time” – until I sat in a meeting and told him the parts were out of stock and on back order. Went down well…
Real techies don’t sleep. Coffee and biscuits (doughnuts and cakes) and a short nap. |
Doug Webb (190) 1180 posts |
Re: Item Time. I once had a manager who suggested that our work life balance was fantastic as all those high mileage car journeys were really good for us and gave us time to think things through, at the start and end of a day, and reflect on the day. So the further we travelled away from home on that basis meant more “us” time… I tried telling my other half that :-) |
Richard H (8675) 100 posts |
ROOL suggested that I sleep faster.
This is the problem: I take several short naps, in quick succession. Anyway, first problem, posted in community support, is an odd data abort when using the KVM. Isn’t stopping me from working, though. |
Rick Murray (539) 13850 posts |
Me too. :-/ So I’ve sorted out the filetypes. I note with some unease that Hugo complains about the change of calling convention, which means this code is ancient. I think I’ll try building it as-is and see how far it gets before something chokes… |
Richard H (8675) 100 posts |
I haven’t got that far yet. Currently pondering how to make Steve (for so I have named my RISC OS installation) talk to Horace (my Windows 10 desktop) so that I can snaffle over the DDE zipfile. Can’t access my GMail account in !NetSurf, alas. It might be time for a cup of coffee and some beard-stroking. |
Rick Murray (539) 13850 posts |
That was quick! AMU: Don't know how to make '^.!BugView.buglib' AMU: *** '!arcserver.!arcbbs.!runimage' not re-made because of errors *** I’ll just yank that out. Not in the code. Not in CLib. Hmmm? |
Rick Murray (539) 13850 posts |
Shove a USB key into the PC. Copy over arcbbs and DDE. Eject. Shove said USB key into the Pi. A lot less beard stroking required. ;-) |
Hugo Fiennes (8778) 13 posts |
_fclose is in the code (see c/global) Bear in mind this was like my second C program, I was young, I needed the money, etc. It’s not good code, and there wasn’t much C source you could look at back then – just various very K&R old open source which was hard to find pre-browser days. |
Richard H (8675) 100 posts |
Clever sausage. There was me pondering how to get Windows 10 to talk to anything which isn’t Windowsy (which question I have now archived in the folder marked “Life’s Many Imponderables”), and neglected to even consider the (counts) five USB sticks on my desk. Problem solved. Now to play with the filetypes a bit and then I’ll probably call it quits for the day. I do need to eat and do other boring activities this evening. More playing tomorrow.
Software archaeology is a hobby of mine, on account of I have no friends and don’t get out much. I’m very grateful that you’ve made the code available, and I’m looking forward to playing. I wonder how many people would use a BBS these days, if I attached it to a modem… |
Rick Murray (539) 13850 posts |
So it is. I probably didn’t spot it when I told Zap to find all occurances, as K&R definitions look a lot like function calls when it’s only showing the one line. ;-)
After ArcTerm, then? ;-) Yeah, some of my original C code is probably better lost. I went through a phase of doing fairly literal translations from BASIC code. Including some really awful pointer abuse until I got to grips with structs. ;-)
Me too. We met back then. Don’t specify to use FWIW, the editor isn’t Hugo’s code, and it’s awful. The compiler is throwing up a lot of “use of = in condition context” warnings. So, Hugo, let me just made a modification…
There, FTFY. :-)
Ditto. I’m an introvert, so I’ve had forty-mumble years of practice for coping with Covid. ;-) You’re all my friends, and mom used to tell me you’re imaginary, so……
Probably about zero. If they’re not going to be hit by call charges, they may be hit by it being rather unlikely anything faster than Minitel (1200/75) successfully making it through a VoIP line (as the telcos are trying to push so they can get rid of legacy equipment). It’s why my server directly uses telnet. And while Steve (rightly) says telnet is insecure, it’s also how Arcade used to work for most of us. |
Richard H (8675) 100 posts |
Right. That’s all my files properly typed. Now for an evening of doing all those little things which allow me to declare, “Why yes, I am a functioning adult, thanks for asking” to anyone who asks.
… so what I need to do is rip out all the serial code, and put in a ssh layer. Yes, that sounds like a fun and interesting project for a wet March afternoon… Meanwhile, with my sensible head on for a moment, Hugo – hypothetically, if you were to get merge requests to your GitHub repo, would you accept ‘em? RISC OS doesn’t have a functioning git client yet (does it?) but if I made any changes to get things building, I’d happily finagle them onto a linux machine and push them to you. |
Rick Murray (539) 13850 posts |
What’s the definition of “functioning adult”? Bratty teenager with grey hair? Alive? I think I fit both definitions, but not much more.
Good luck with that. K&R code plays fast and lose with definitions of stuff in a way that freaks out modern compilers (don’t bother to give a function a type, and just “return;” where a type is expected) for two. So, yeah. Changes will be necessary. Oh, and you will come to hate the ed_* files. They make numerous references between them. Of course, with no function prototypes… Still, I have now built the linetask. Don’t know if it works yet, as that’s all I have built so far. Hmm… There’s no “makebbsl” for the local linetask. It’s all part of the linetask now, isn’t it? |
Richard H (8675) 100 posts |
Ah, the joy of it is that the words mean precisely what I want them to mean. (The “H” stands for Humpty Dumpty.)
One of my first “proper jobs” in programming was maintaining a behemoth of a system which was entirely written in K&R, but I haven’t looked at any K&R in about 20 years. That will be fun. Thanks for the heads-up; I will double my regular wine order. |
Rick Murray (539) 13850 posts |
It’s been such a long time since I’ve dealt with the peculiarities of the 26 bit PSR… can somebody remind me what this is supposed to be doing? MVN R14, #&8000000 TSTP R14, PC MOV R0, R0 So NOT &8000000 is &F7FFFFFF, which is pointedly plucking out bit 27 (the I bit in the old PSR). Is it clearing the I bit, or have I got it back to front and it’s clearing everything except the I bit (and also sending us to USR mode)? It’s on entry to several handlers for BBS module SWIs. I just disabled the code, but it hung the machine when running the server. Ooopsie! ;-) |
Rick Murray (539) 13850 posts |
Oh hell. I’m giving up on this. It The code, with changes, is at http://heyrick.ddns.net/files/arcbbs.zip In the assembler, assume it’s been 32 bitted if it says so at the top of the file. Given the number of MOVS and LDMFD^s, I’ve not marked changes. In the C sources, search for “##RICK##” to see what I’ve changed. As I don’t have a working BBS module yet, consider it all completely untested. It hung up my Pi, but see the above post. Might have something to do with it. ;-) |
Richard H (8675) 100 posts |
Not as long as it is since I last looked at any ARM code. I may have to snaffle your tutorials to remind myself.
I knew there was something I was supposed to be doing. Looking at the code makes me twitch. I want to reformat it to something I like. Must… resist… |
Paolo Fabio Zaino (28) 1882 posts |
@ Rick Just a quick reading…
Decontextualised I am not sure, however: 1st line applies bitwise logical not to &8000000 which should be &F7FFFFFF (so looks like it’s creating a bit mask) and load it in R14 (linkreg), pretty straight forward. 2nd line is 26bit code. It seems that it’s using the mask created previously in R14 and `AND` it with PC used as shift operand, to reset flag I1. Because of TSTP it should be reseting the status flags only. 3rd line is (obviously) a NOP (aligning?) 1 Sorry having a crazy busy day at work, so not much time to analyse… apologies in advance on any mis-interpretation of the code. |
Stuart Swales (1481) 351 posts |
Yeah, enabling interrupts preserving other status bits. Have a look at the CLRPSR macro in ye olde RO2 era Hdr.Macros (e.g. https://www.chiark.greenend.org.uk/~theom/riscos/docs/RISCOS2/Headers/MACROS.txt) |
Hugo Fiennes (8778) 13 posts |
Clearing bit 27 – which does appear to be what this does – would appear to enable IRQs. I’m guessing IRQs were disabled by the SWI handler in RISC OS, but I needed them on for the file calls to work? That would… sort of make sense. That might explain why things are not working in 32 bit mode? Maybe try this instead:
The ed_ files came from this (see c/ed_vers): “© Copyright 1988, Software by Sagredo” – seems to be popular freeware/open source as used in other BBS stuff. Found a reference here: http://wiki.synchro.net/howto:editor:fsed As I remember if you fiddled with the PC at all you had to not do anything significant in the next cycle, hence the NOP. |
Stuart Swales (1481) 351 posts |
ISTR that SWI handlers were called with left IRQs disabled in early Arthur versions; later ones set IRQ to that of the caller before passing on. |
Rick Murray (539) 13850 posts |
If it’s just turning on IRQs, then that’s happening anyway so shouldn’t make any difference to omit the code. Hmm, I wonder if the user/message data in the archive is valid? Maybe it’s getting in a twist over that? |
Colin Ferris (399) 1818 posts |
This seems similar to code in old podule roms – perhaps Jon could test it on old Arcs – to find out what it did. On the code I came across – I REMd it out. |