


$VER: ConvTel 1.1 (c) 14 april 1995 door K.P. van Beem.



INTRODUCTIE
===========

Zoals inmiddels wel bekend zal zijn veranderen per 10-10-'95 de meeste
telefoonnummers van Nederland. De PTT heeft voor MS-Dos computers een
'programma' gemaakt voor particulieren en bedrijven wat na invoer van het
oude nummer, het nieuwe nummer laat zien. Voor de Amiga hebben ze zo'n
programma niet gemaakt (uiteraard zou ik haast ten onrechte zeggen).
Aangezien de gegevens die voor een dergelijk programma nodig zijn public
domain zijn en vrij eenvoudig van structuur, heb ik een dergelijk conversie
programma voor de Amiga gemaakt. Het resultaat zie je hier in de vorm van
ConvTel.

Hoewel de data beschikbaar is, is de source dat (nog) niet. Het blijft dus
gedeeltelijk 'reverse engineering' (gewoon uitpluizen dus). Derhalve ben ik
niet verantwoordelijk voor het resultaat van het programma en wat daar ook
uit voort mag vloeien.



MOGELIJKHEDEN
=============

De mogelijkheden van het programma zal ik hieronder kort weergeven,
aangezien de werking nogal eenvoudig is.

Het programma is uitgevoerd als Commodity en werkt derhalve alleen op
computers met kickstart 2.0 of hoger. Het programma is zowel vanuit de CLI
(user-startup) als vanuit de WorkBench (WBStartup) op te starten. Het
programma beschikt over een ARexx poort. Het venster zal altijd op het
voorste scherm geopend worden als dit een publiek scherm is. Anders op het
WorkBench scherm.

Op de commando-regel of als ToolType zijn de volgende parameters op te
geven:

CX_POPUP    Laat het grafische interface direct bij het opstarten zien.
            Standaard uit.
CX_PRIORITY Prioriteit binnen het commodity systeem. Standaard 0.
CX_POPKEY   De sneltoets om het grafische interface op te roepen.
            Standaard is dit de rechter Amiga toets in combinatie met F10.

Wanneer het venster zichtbaar is (door CX_POPUP of via de sneltoets) kan in
het gadget "Oud nummer" het oude nummer ingetypt worden. Na enter zal
daaronder achter "Nieuw nummer" het nieuwe nummer verschijnen. Wanneer het
oude nummer volgens het oude nummeringssysteem niet kan bestaan, zal hier
"*** FOUT NUMMER ***" verschijnen. Probeer het dan nog eens met het
correcte nummer. 06- nummers kunnen niet geconverteerd worden.

Als het gadget niet actief is, kan dit met de O-toets (wanneer het venster
wel actief is) of de sneltoets actief gemaakt worden. Wanneer het venster
actief is kan met de V toets of Amiga-V toetscombinatie het venster
gesloten worden. Het programma blijft dan aktief en is met de sneltoets
weer oproepbaar. Met de E toets of Amiga-E toetscombinatie kan het
programma afgesloten worden. Het wordt dan uit het geheugen verwijderd. De
Amiga toetscombinaties kunnen ook gebruikt worden als het string-gadget
aktief is.

Wanneer het venster geopend wordt, wordt dit op het actieve scherm geopend
wanneer dit een publiek scherm is. Anders op het WorkBench scherm. Hierdoor
is het zeer handig nummers te converteren wanneer je in een programma zit
wat op een publiek scherm draait. Even op Amiga-F10 drukken, nummer
intypen, op Enter drukken, nummer onthouden en op Amiga-V drukken om het
venster weer te laten verdwijnen.

Via het menu zijn dezelfde functies beschikbaar, inclusief het oproepen van
een requester met informatie over het programma, de naam van de Arexx poort
en de aktieve sneltoets. Dit venster is ook met de Amiga-O toetscombinatie
op te roepen.



VERANDERINGEN IN VERSIE 1.1
===========================

* Een aantal kengetallen werden ten onrechte gezien als foutief
  telefoonnummer. Deze worden nu wel correct geconverteerd. (Met dank aan
  Niels van Willigenburg voor het vinden van deze fout.)
* Het telefoonnummer kan nu ook als één groot nummer opgegeven worden. Dus
  bijvoorbeeld "023282002" in plaats van "023-282002".



AREXX
=====

Om het eenvoudig te maken telefoonnummers (van)uit andere programma's
(data-bases, textverwerkers, dialers, etc.) te converteren, beschikt het
programma over een ARexx poort. De naam van de ARexx poort is met de
informatie requester op te vragen en is altijd CONVTEL. De commando's zijn:

SHOW    Toont de grafische gebruikers interface. RC=10 als niet gelukt.
HIDE    Verbergt de grafische gebruikers interface. RC is altijd 0.
ABOUT   Toont de informatie requester. RC is altijd 0.
QUIT    Verwijdert Convtel uit het geheugen. RC is altijd 0.
CONVERT Met als parameter het te converteren telefoonnummer. De RC is 0
        als het converteren gelukt is. RESULT bevat dan het nieuwe
        telefoonnummer. Wanneer het opgegeven nummer niet bestaat is de
        RC 5. Bij het ontbreken of foutief gebruik van de parameter NUMBER
        is de RC 10.

Bij een onbekende opdracht is de RC 20 en bij een niet ondersteunde actie
21.

Via de ARexx poort kun je dus via de convert opdracht heel eenvoudig een
nummer converteren en vanuit een script, meerdere nummers. Probeer (wanneer
het programma ConvTel aktief is) maar eens de volgende opdrachtregel in de
CLI (dit is een 1-regelig ARexx programma):

 rx "Options Results; ADDRESS CONVTEL Convert '023-282002'; Say RESULT"

Deze opdracht zou als het goed is de tekst:
 023-5282002
op moeten leveren (mocht je het nummer willen draaien, doe dat dan met je
modem want dit is het nummer van het Amiga Online BBS Heemstede).

Het formaat van het te converteren argument heeft als enige eis dat er een
geldig telefoonnummer uit te halen moet zijn, bestaande uit het netnummer
en het abonneenummer. De string mag niet langer zijn dan 14 tekens, wat
ruim voldoende is voor een telefoonnummer. Of je dus "023-282002",
"023/282002", "+23-282002", "023282002", "23282002", "023 282002" of welke
variatie ook neemt, maakt niet uit. Wel moet er bij de laatste op gelet
worden dat de string met quotes omgeven is, omdat er een spatie in
voorkomt!

Het resultaat zal altijd een string van 11 tekens zijn in het formaat:
 netnummer-abonneenummer
waarbij het netnummer inclusief de 0 is.

Tot slot nog een klein ARexx scriptje wat om nummers blijft vragen en deze
converteert tot er niets meer ingevoerd wordt. Een dergelijk script kan
bijvoorbeeld als CLI-Door op een BBS draaien als service naar de
gebruikers:


/*******************************************************\
* ARexx script. 2 april 1995 door K.P. van Beem         *
* Converteert telefoonnummers vanaf de command-line     *
* tot er niets meer ingevoerd wordt.                    *
\*******************************************************/

/* Om een resultaat vragen */
Options Results

/* Stuur opdrachten naar ConvTel */
Address CONVTEL

Say 'TelConv, Telefoonnummer omzet programma van K.P. van Beem.'
/* 'Oneindige' loop */
DO FOREVER
   SAY 'Geef het oude telefoonnummer (enter om te stoppen): '
   PULL Telefoon
   /* Bij lege invoer stoppen */
   IF Telefoon = "" THEN EXIT
   CONVERT Telefoon
   IF RC=0 THEN SAY 'Nieuw nummer: ' RESULT
   ELSE SAY "Onbekend nummer!"
END


