Serial BlockDrivers

Beste mensen, RS232 connector

Na verschillende jaren seriële poorten gebruik is het zinnig om eens de balans op te maken van de verschillende hulpprogramma's die er zijn. Behalve de betreffende communicatie programma's is het vooral belangrijk de juiste versie en laatste modules van de Serial BlockDrivers geÔnstalleerd te hebben. Die zijn o.a. te vinden op de Big Ben Club CDVD6 welke in september 2008 aan alle leden is rondgestuurd. Zie daartoe:

CDFS::BigBenCD6.$.Software.System.SerBlckDrvXAT
Deze versie is helaas onvolledig en sommige modules waren verouderd. Het programma !Serial uit dit archief is zeer nuttig op originele hardware, doch helaas crashte dat programma onder Virtual Acorn RiscPC SE. Dat is ook wel begrijpelijk, want de seriële poort wordt niet doorgegeven aan emulators. Heel jammer, want ik had graag !WimpLink middels VARPC SE op de Windows klapdoos willen kunnen gebruiken, of !HearSay2 met de RS232 serial poort op COM1, de IrDa poort op COM2 of het interne modem op COM3.

BigBenCD6.$.Software.System.SerBlckDrvHD
Hier staan echt alle 19 beschikbare Serial Block Drivers in, met hun laatste versie.

In BigBenCD6.$.Documents.AcoNet.Point.!SerialDev
staat een complete versie, maar ook daarvan zijn de mappen/directories Modules en Inactive niet optimaal ingedeeld voor beginners. De versie $.Software.System.SerBlckDrvHD is dus beter.

In BigBenCD6.$.Software.Comms.conn103.!SerialDev
staat een incomplete versie.

Met het programma !Serial van XAT kan men vaststellen welke Serial BlockDrivers men actief heeft geladen.

Zet !SerialDev eens op je ramdisk, verhuis alle serial modules die er maar zijn,van Inactive of Unused naar Modules, click op !SerialDev en run dan !Serial. Zie daar heb je een overzicht van alle Serial BlockDrivers die er maar zijn. Slechts zeer zelden heb je die ook echt allemaal nodig. Dus click na gebruik weer op !SerialDev die in je resources staat: ADFS::HardDisc4.$.!BOOT.Resources.!SerialDev. zodat alleen de echt actieve drivers in gebruik zijn, en de serial blockdriver modules van niet aanwezige hardware in unused of inactive map staan. Zo nodig kun je ze dan alsnog verhuizen.

Tabel:
De laatste versies zijn (voor zover mij bekend) als volgt:

Driver:    Versie: Datum:      26bit/32bit  zitten in BlockDrivers:
                                J/N  J/N
Arcade     1.00    29-03-1998   J      N                             13
Dummy      1.02    17-08-1994   J      N    7 9 10 10a 11 11a 11b 12 13
EcoNet     1.06    23-03-1994   J      N      9                      13
II_Dual    1.02    17-07-1995   J      N    7 9 10 10a 11 11a        13
II_DualPC  1.02    18-07-1995   J      N                          12 13
II_Dual    2.01    03-03-2004   J      J                             14
II_DualPC  2.01    03-03-2004   J      J                             14
Internal   1.18    11-06-1996   J      N    7 9 10 10a 11 11a 11b 12 13
Internal2  1.02    15-10-1993   J      N    7 9 10 10a 11 11a        13
InternalPC 1.18    11-06-1996   J      N    7 9 10 10a 11 11a 11b 12 13
Internal32 2.15    22-06-2004     N  J                               14
InternalNH 1.00    23-09-2006   J    J                               14
IntModem   0.03    15-04-1996   J      N                             13
ISA        1.00    26-10-1995   J      N                             13
MultiPort  0.01    29-10-1998   J      N                             13
Octopus    1.00    19-11-1997   J      N                             13
PipeA      1.05    17-08-1994   J      N    7 9 10 10a 11 11a 11b 12 13
PipeB      1.05    17-08-1994   J      N    7 9 10 10a 11 11a 11b 12 13
SP_Dual    1.12    23-05-1996   J      N    7 9 10 10a 11 11a 11b 12 13
SP_DualPC  1.12    23-05-1996   J      N    7 9 10 10a 11 11a 11b 12 13
Telnet     1.03    29-10-1999   J      N    7 9 10 10a 11 11a 11b 12 13

Versie 13 is versie 12 plus alle nieuwe Serial BlockDrivers die ik tegenkwam, en die oorspronkelijk in versie 12 niet voorkwamen. Versie 1 t/m 6, 8, 11, en 11b heb ik nog niet te pakken gekregen. Op zich is dat ook niet nodig, want versie 12 was tot eind 2002 de beste. Na 2002 kwamen Internal32 voor de Iyonix (twee rsr232 poorten) uit, en in 2006 InternalNH die op echt alle machines inclusief A9Home werkt. Maar ik wilde alleen zien of er nog meer waren. Door versie 9 b.v. heb ik de EcoNet driver weten te bemachtigen ;-).

Als je nog oude(re) BlokDrivers tegenkomt, vervang die dan door de laatste versies, dus minimaal die uit BlockDrivers 12. BlockDrivers voor versie 10a werken minder betrouwbaar, dan die vanaf 10a. Met het commandline-programmatje SerList van Geoff Riley uit 1994 kun je de versienummers van alle op jouw machine actieve BlockDrivers opvragen. Dit programma is helaas niet 32 bit compatibel.

Op de Iyonix PC kun je met behulp van het Choices menu in het programma !Enigma uitzoeken wat de versienummers van de aanwezige Serial BlockDrivers zijn, en ook of ze 26 bit, dan wel 32 bit compatibel zijn.

Ook is er intussen:
ADFS::HardDisc4.$.!BOOT.Resources.!SerialDev.Info32.!Serial van XAT beschikbaar waarmee je alle actieve blockdriver versies kunt bekijken.

output of !Serial

De IntModem driver wordt ook wel eens ModemCard genoemd, het is dezelfde ;-). Kom je nog ergens Serial BlockDrivers tegen die in dit lijstje niet voorkomen, wil je dan zo vriendelijk zijn mij de bron daarvan te melden? Intussen zijn er nu dus minimaal 19 verschillende BlockDrivers beschikbaar.

Verder is het voor sommige programma's zoals !WimpLink heel belangrijk dat je alleen de BlockDrivers actief hebt waarvan je ook de hardware (podulecard) bezit. Zo niet, dan moeten die betreffende BlockDrivers inactief gemaakt worden door ze te verhuizen van de map/directory Modules naar de map Inactive. Als je dat achterwege laat, kun je hele vreemde effecten krijgen, tot zelfs het crashen van je machine en het verloren gaan van niet opgeslagen data. Zelf vind ik dit een fout gedrag van !WimpLink, want die hoort eigenlijk alleen de Serial Block Driver te initialiseren die actief is geselecteert, en niet alle andere die (toevallig) ook op je machine staan ;-(. Kortom, men is bij deze nu dus gewaarschuwd.

Programma's die met de Serial BlockDrivers samenwerken:

                 versie nummer van en met:

!ArcBBS          (=>1.63)
!ArcFax          (=>1.06+)
!ArchiBoard
!ArcTerm7        (=>1.44)
!ArcCom
!ARMbbs
!BinklyTerm      (=>2.11)
!ChocksAway
!Connector
!DialUp (R'Comp)
!Enigma (XAT)    (=>1.30)
!HearSay2        (=>2.17)
!NetWay
!RiscBBS         (=>1.02)
!TCPIP
!WimpLink        (=>0.97)
!SMStrans        (=>1.16)
AcornPPP
BDebug  (SimonV) (serial debug)
FreeNet
KA9Q
PPPconnect       (1.18)
SlipDial
ZANSI
Etcetera...



De beste plaats om deze Serial BlockDrivers in te plaatsen is de directory:

$.!Boot.Resources

En om conflictsituaties te voorkomen is het beter om de BlockDrivers waarvoor de je de benodigde hardware niet in je machine hebt zitten te verplaatsen van de actieve map/directory Modules naar een map/directory Unused of Inactive.
En andersom: verplaats Serial BlokDrivers waarvoor je wel de hardware in de betreffende machine hebt zitten dan van Unused naar Modules.
Met andere woorden: als je geen EcoNet card in het netwerkslot (=Podule8) hebt zitten, laat de EcoNet module dan in Unused staan.

Als je bij nieuwe hardware ook Serial BlockDrivers krijgt, vergelijk daarvan dan alles met wat je al hebt, om zo 'up to date' en zo volledig mogelijk te zijn. Soms worden er oude of zelfs geen serial Block Driver meegeleverd, b.v. bij tweedehands hardware, zoals een seriŽle poorten podule kaart. Door de distributie van alle Serial BlockDrivers via CDVD6 kun je ze dan toch installern en met die nieuwe hardware samenwerken.

Voorbeeld voor vrijwel alle 26 bits Acorn RISC OS computers:

Directory:                            Directory:
$.!Boot.Resources.!SerialDev.Modules  $.!Boot.Resources.!SerialDev.Unused

Dummy                                 EcoNet
Internal                              II_Dual
InternalPC                            II_DualPC
InternalNH                            Internal2
PipeA                                 Internal32     
PipeB                                 IntModem
Telnet                                ISA
                                      MultiPort
                                      Octopus
                                      SP_Dual
                                      SP_DualPC

En in een 32 bits Iyonix PC zou het dan moeten worden:

Directory:                            Directory:
$.!Boot.Resources.!SerialDev.Modules  $.!Boot.Resources.!SerialDev.Unused

Internal32                            Dummy
InternalNH                            EcoNet
                                      II_Dual
                                      II_DualPC
                                      Internal
                                      Internal2
                                      InternalPC
                                      IntModem
                                      ISA
                                      MultiPort
                                      Octopus
                                      SP_Dual
                                      SP_DualPC
                                      PipeA
                                      PipeB
                                      TelNet
En in een 32 bits A9Home werkt alleen InternalNH, de rest niet. Internal32 is alleen voor de twee seriele poorten van de Iyonix PC.

Dit komt omdat de meeste BlockDrivers nog niet zijn omgezet naar 32 bits.

De meest voorkomende extra toegevoegde hardware is een SP_Dual podulecard met een, twee of zelfs drie seriŽle poorten. In dat geval kun je dus de directories SP_Dual en SP_DualPC van Unused naar Modules verhuizen.

Wanneer je SP_Dual kaart is geupgrade met de laatst verkrijgbare eprom, dan zou II_Dual, II_DualPC en Internal2 ook kunnen vervallen. Immers met de nieuwe eprom-modules is zijn de SP_Dual drivers beter. Maar je kan die Internal2 niet verplaatsen als je nog de oude eprom versies in je SP_Dual kaart hebt zitten.

Intussen is er ook een 32-bit versie van de II_Dual Serial Block Drivers gemaakt voor gebruik van de RS232 seriŽle poorten kaart in een klassieke Iyonix met zigzag podule backplane, wat ook zeldzaam is.

*****

Andere belangrijke wijzigingen:

Blockdriver-naam en -nummer keuze is in sommige softwarepakketten wat verstopt, met name in !ArcFAX en !HearSay2. In deze twee programma's kun je kiezen of je rechtstsreeks met de interne seriële poort wilt werken (=!HearSay.Library.serial), of via de Serial BlockDrivers (=!Hearsay.Library.!SerialDev).

Tegenwoordig genieten de de BlockDrivers de voorkeur boven directe aansturing. Maar dan moet je wel even aangeven welke poort je wilt gebruikten. Meestal zal dat de interne seriŽle poort 0 zijn met een PC-modem kabel. Standaard staat het script !SerialDev daar al op. Wijzigen is dus vrijwel alleen nodig als je van een andere poort gebruik wilt maken. Die andere poort kan ook de TelNet driver over EtherNet zijn ;-).

!ArcFax.Library.!SerialDev
!Hearsay.Library.!SerialDev
Verander de regel:
    setserialdev("InternalPC",0);
in:
    setserialdev("SP_DualPC",0);
Of in:
    setserialdev("Internal32",0);

Voor de Iyonix PC.

Voor de experimenteerlustigen onder ons: Dummy is een Device 0 (Null), of te wel zwart gat c.q. ins blaue hinein. Die kan handig zijn voor testdoeleinden.

PipeA en PipeB horen bij elkaar en zijn bedoeld om data van het ene programma naar het andere programma te kunnen overhevelen. Poort 0 van PipeA communiceert dan met poort 0 van PipeB. B.v. laat !HearSay2 op poort 1 van PipeA en !Connector op poort 1 van PipeB met elkaar communiceren ;-).
Hier zit wel een addertje onder het gras, want het ene programma telt de poortnummers vanaf nul en de andere vanaf een, handig he?. Dat ligt niet aan die blockdrivers, maar aan de software-auteur (programmeur) van het betreffende communicatieprogramma. Wat mij betreft horen computers altijd bij nul te tellen. Maar dat is een historische keuze.

Frapant is ook nog dat de PipeA en PipeB een ongelijk aantal poorten heeft. PipeA heet 16 en PipeB heet 17 poorten. Wat daar de reden van mag zijn is me een raadsel. PipeB poort 17 hangt dus in de lucht en kan z'n data niet kwijt ;-(. Immers de tegenhanger bij PipeA bestaat niet.

EcoNet is een driver om via het netwerk een centrale machine met modems te benaderen, wat dus bijna niemand (meer) gebruikt. Maar wel leuk om te bewaren voor het geval dat ;-). Telnet dient om via EtherNet een server, router, gateway o.i.d. te benaderen. Multiport, Octopus, II-Dual en SP_Dual zijn podule kaarten met (extra) seriŽle poorten. Arcade is ook een Telnet Block Driver driver. ISA was bedoeld voor het ISA uitbreidingsslot wat Atomwide ooit gebouwd heeft. Deze heb ik ooit in werking gezien op een Acorn World Show in London. IntModem is ook een podulecard met een intern modem erop. Maar zoals gezegd deze exotische hardware is redelijk zeldzaam. Ik hoop met deze uitleg het nut en gebruik van de Block Drivers voldoende helder te hebben gemaakt?

Finetuning tips
Tip: Let er bij de overstap naar RiscOS 4.xx op dat er slechts een exemplaar van !SerialDev (blockdrivers) in de !Boot. Resources directory staat. Dus ook die diep in !ANT InetSuite2 verstopt zit even verwijderen. De resources worden altijd gezien, dus ANT zal gewoon normaal blijven werken. Merk op dat slechts een communicatiepakket (!WimpLink, !HearSay2, !Connector, !ArcTerm7, !ArcFax, !ANT e.d.) tegelijk op de balk actief mag zijn, anders bijten ze elkaar.

En helaas werkt !WimpLink alleen goed met de interne seriële poort en niet met die op extra podule kaarten. Dat ligt niet aan de blockdrivers, maar aan !WimpLink helaas. En zorg ervoor dat !SparkFS geladen is (op de iconbar staat) en voldoende (minimum) geheugen toegewezen heeft gekregen (1MB), anders geeft !WimpLink geheugen tekort meldingen na een pollsessie tijdens het uitpakken. Iemand meldde mij die geheugen problemen in een bericht, maar kon mijn antwoord natuurlijk niet lezen juist vanwege die foutmelding. Vandaar dat ik het hier nog maar even aanstip.

Naast de Serial Block Drivers is het ook zeer aan te bevelen om een seriele buffer beschikbaar te hebben. Deze kan worden verkregen door gebruik te maken van de SerialBuff 1.03 26/32 bits compatible module en die in de map/directory: ADFS::HardDisc4.$.!Boot.Resources.!System.Modules.SerialBuff te plaatsen.
Daarnaast moet er in de !Boot structuur een obey-bestandje SetSerBuf aanwezig zijn:
ADFS::HardDisc4.$.!BOOT.Choices.Boot.PreDesk.SetSerBuf
De inhoud daarvan luidt als volgt:

RMEnsure SerialBuffer 1.03       RMLoad System:modules.SerialBuff
SerialBufferSize 16384 16384

Zodat er een 16 kilobytes seriŽle buffer wordt gemaakt, en er dus minder error's, overlopers en handshake fouten zullen optreden.

Op de A9Home is daarnaast nog de applicatie: !LoadSerial nodig, omdat daar de hardware handshaking nog niet goed werkt. Deze utility is verkrijgbaar bij CJE-Micro's in Engeland. Zet hem daarna in je Boot.Choices.Tasks map/directory.

Nog een serieel kabeltje nodig? Kijk dan eens in CDFS::BigBenCD6.$.Documents.Hardware.Kabels3a en dergelijke.

Veel plezier gewenst met het aan de praat krijgen van je seriŽle communicatiepakket via de gewenste seriŽle poort.

Met vriendelijke (Acorn/RISC OS) ComputerDataCommunicatieGroeten van:

                 |_|     |\
                 | |enri |/erksen, SysOp UniCorn BBS, Arnhem  NL.
Opdat uw DataCommunicatie nog beter mag verlopen !