Hearsay
David Pilling (8394) 96 posts |
There is a function setchannel() this lets you set how bytes are read or written, one of the options is to call script functions. Others are the OS serial code or block drivers. Problem is I can’t see this in the manual at the moment. Wonder if there was any ReadMe docs or release notes. So yes you can call a script function to read/write bytes and you don’t have to start hacking the code. |
David Pilling (8394) 96 posts |
To put it another way has anyone got the Hearsay release notes. It was another world back then paper based documentation produced on Macs. I’ve recreated the docs for the setchannel() function. It is very comprehensive, you can get and put bytes using script functions, OS style SWI calls (block and byte) or block driver calls (block and byte). Recreating this has felt like some kind of punishment. No one read the original docs, no one is going to read this. It is too long to fit here. This is a link: |
Steffen Huber (91) 1953 posts |
Nettle is multiple things: a terminal emulation, a telnet client, an SSH client and an ANSI TaskWindow provider. Maybe a nice little project for someone to add serial communication to it, it seems to be a natural fit. On the other hand, since Connector and Hearsay already exist with source available… |
Colin (478) 2433 posts |
I have connector working satisfactorily. If anyone would like to try ConnectorTest.zip. In Connectors choices (iconbar menu) serial, select the block driver you want and no flow control. Open the main window and on the status bar at the bottom click on the words and select ANSI 115200 8N1 and it should work if you are wired to the serial port on a linux machine. If you have raspian on a pi you need to enable the serial terminal in ‘sudo raspi-config’ Unfortunately raspian uses a VT220 terminal and doesn’t output any colours so black and white only. Armbian on an orangepipc uses a colour xterm so output looks similar to ssh. Another problem with connecting to raspian is it outputs an undervoltage message over the ttys0 port go figure. Hearsay is still not receiving – sending is ok – so there must be something wrong with SerialUSB/SerialDevs that I’m trying to track down. But I finally did the obvious thing – who knows why I didn’t do it earlier – and connected with the internal serial port and this showed that hearsay was fine with the VT220 output from raspian but had problems with the xterm output from the orangepipc. |
David Pilling (8394) 96 posts |
One obvious thing is that the block drivers can do block or single byte reads, and you can change that in the Hearsay SerialDev script. Might be the source of the problem. |
Colin (478) 2433 posts |
Yes that works with byte mode. phew! At least I’ve narrowed it down to a blockmode problem with SerialUSB/Serialdev. Thanks David. |
Ronald (387) 195 posts |
connector working That version wont run at all on my Iyonix. Had the old connector working, but there is a bit of corruption going on, Pays to reboot and also sometimes deleting choices helps connector. |
Colin (478) 2433 posts |
What version of blockdriver are you using. I’m using blockdriver 0.17 (11 Jun 2020) SerialUSB 0.11 |
Dave Higton (1515) 3526 posts |
I tried it on a RasPi 3B+ and it failed immediately on startup with an illegal instruction error. I’m guessing that you haven’t built it for the more recent machines. |
Ronald (387) 195 posts |
Yes I have the latest blockdriver 0.17 installed in Resources:!SerialDev. |
Steffen Huber (91) 1953 posts |
Found my Hearsay printed manual, accompanied by a sheet titled “Hearsay 2.19 Release Notes”. The only CScript functions it mentions are “setmxispmap” and “setvtkeymap”. |
David Pilling (8394) 96 posts |
Steffen – thanks for that. I’d been considering asking if anyone had the release notes. I have had another look at the Hearsay manual and it documents using the block drivers – conclusion is that things like setchannel() could have been documented at the start. I dunno. If only one could hit Ctrl+F and search the manual. Probably they are documented with ArcFax (bit late to think that). I wonder what setmxispmap() does – well set – mx (Minitel) – isp (but this was before the internet was invented) – map. It is interesting how one breaks things. On my website are upgrades, the source code and working latest version for ArcFax but not the documentation. I’ll fix that now. |
David Pilling (8394) 96 posts |
Hmm – the ArcFax docs do cover setchannel() but only very briefly. I am going to add the ArcFax and Hearsay disc images to my website. I wonder what the application !ConMan ever did (for Hearsay) – configuration manager? – hope I won’t be snowed under with requests for the source. |
Steffen Huber (91) 1953 posts |
According to the Hearsay Release notes, !ConMan converts Hearsay 1 status and telephone directory files into Hearsay 2 format. I’ll scan the sheet in really soon now…it also has an interesting section on how to use Hearsay II in conjunction with KA9Q to access the Internet. Ah memories…which reminds me that I never really got around to try out ArcFax’ voice features with my ZyXEL modem…I intentionally bought the “plus” model to have CELP available where 9600bps was sufficient serial port speed, which suited the A3000’s poor old 6551. |
David Pilling (8394) 96 posts |
ZyXEL were good modems. I actually had one. Forget were it came from. |
Colin (478) 2433 posts |
Ok, would anyone like to try Connector_test1. The zip file contains a new SerialUSB module and a new !SerialDev app. If the necessary modules are installed correctly you should see
To get Connector working with SerialUSB select ‘choices’ on the iconbar icon and in ‘Serial’ choices change the “Interface to SerialUSB” and ‘Flow control’ to ‘No flow control’. Terminal emulation baud rate and data/word format are changed by clicking on the main window’s status bar. For Hearsay edit
to
In choices, on the iconbar icon, Select ‘Default terminal’ ‘ANSI’, ‘Modem Driver’ ‘Null modem’ and save. Open the main window and menu→Line settings→Setup.. Set ‘TX rate’, ‘RX rate’ 115200, ‘Data bits’ 8, ‘Parity’ none ‘Stop bits’ one and ‘Flow control’ None. Click on Ok. Save the settings by clickin on menu→script→Save as default. I find Connector with the ansi settings works well as a Linux terminal It’ just missing the graphics character set. Hearsay has the graphics character set but doesn’t want to use them it also has a few other display problems when used as a linux terminal. |
Steffen Huber (91) 1953 posts |
It was a simple typo by me – it should be “setmxisomap” as it maps Minitel character codes to ASCII character codes (probably to the currently selected ISO charset, hence the “iso” part). |
Ronald (387) 195 posts |
Click on Ok At that point, Connector throws up the illegal instruction error and quits. Trying to start Hearsay (previously set to SerialUSB) and I get a machine freeze up. |
David Pilling (8394) 96 posts |
Ronald – didn’t Colin have to turn off block reads in the Hearsay !SerialDev file. (I am not in a position to tell you how, but I recall at the bottom of the file they’re turned off for some models of serial port) |
Colin (478) 2433 posts |
That’s fixed now. I’m going to have to blow the dust off my Iyonix and kick it back to life. |
Colin (478) 2433 posts |
Ok so I’ve found out that in an iyonix SerialUSB works and hearsay works with the new !serialdev and SerialUSB but Connector fails with an illegal instruction. Would anyone care to explain this? I don’t have oslib on my machine but I do have a copy of the HardDisc4 sources from ROOL which includes oslib so I run !Builder and set it up for the hardisc4 sources with a ROOL.Disc environment so I can compile connector and the binary includes an illegal instruction. I thought the ROOL.Disc environment compiled sources for any machine. Am I wrong? |
Sprow (202) 1158 posts |
The Connector from the bonus binaries of 02-Jul-2020 works fine on the two extremes I have in easy reach: a StrongARM Risc PC (ARMv4) and Titanium (ARMv7, high vectors, strict alignment checks). The Internal32 block driver is 1996 and 2017 vintage respectively. You don’t say what the address is or what the illegal instruction is though, so explanations are going to be thin on the ground. |
Ronald (387) 195 posts |
The Internal32 block driver is Sounds like you have missed that it is the SerialUSB blockdriver that is being tested. |
Colin (478) 2433 posts |
It doesn’t work on my Iyonix or pi4. it does on my armx6. Has to be something wrong with either ROOL.Disc compilation environment or the latest compiler.
It doesn’t say. An error window just pops up saying ‘Connector has suffered a fatal internal error (illegal instruction) and must quit immediately’ thats it. @Ron. I have no aborts with hearsay with @setserialdev(“SerialUSB”) with the new !serialdev. |
Jeffrey Lee (213) 6048 posts |
You don’t say what the address is or what the illegal instruction is though, so explanations are going to be thin on the ground. The Debugger can probably capture the error. https://www.riscosopen.org/wiki/documentation/show/Debugger%20Exception%20Dumps I can also give it a quick sanity check on my machines. |