MILC logo

IndexVorigeVolgendeLeeg

New modem basic (1)
Genic Clubguide, 00-00-00


    
   - Met toestemming overgenomen van Future Magazine #8 -


               N E W   M O D E M   B A S I C
              ===============================

                         INLEIDING

In   MSX-land  wordt   het  gebruik   van  de  modem  steeds 
interessanter voor  de gebruikers. Begonnen we eerst nog met 
een  zeer onderontwikkeld communicatieprogramma van Philips, 
nu is het al mogelijk om met behulp van 'New Modem Basic' uw 
eigen communicatieprogramma te schrijven in basic!

'New Modem  Basic', de  naam zegt  het eigenlijk  al, is een 
schitterende  uitbreiding op de bestaande MSX-Basic. Er zijn 
een  flink  aantal  extra  instructies die  d.m.v. een  call 
opdracht kunnen  worden gegeven.  Er is  al een  interessant 
voorbeeld programma geschreven met die nieuwe instructies en 
dat  werkt buitengewoon goed en is bovenal compatible met al 
uw uitbreidingen!

Hieronder  vindt  u  een  beknopt  overzicht  van  de  extra 
commando's die  mogelijk zijn  in combinatie  met 'New Modem 
Basic'.

Commando + Syntax:

_ANSWER(I)         Wordt    alleen    gebruikt    in   een 
                   BBS-programma. Kijkt  op welke snelheid 
                   de beller zit.
                   De ANSWER routine kent 3 snelheden:
                   I=1 er wordt gebeld op 300R/300T
                   I=2 "    ""    ""   "" 1200R/75T
                   I=3 ""   ""    ""   "" 75R/1200T
                   Heeft I  een andere  waarde, dan is het 
                   geen modemgebruiker of  deze zit op een 
                   onbekende snelheid.
                   Note:
                   Het  NMS-Modem kent meerdere snelheden, 
                   maar mij  is in  de praktijk  gebleken, 
                   dat  dit  door  de ANSWER-routine  niet 
                   herkend   wordt.  Belt  iemand  bv  met 
                   Equalizer  aan  dan wordt  dit door  de 
                   ANSWER-routine gedetecteerd als zou dit 
                   een gewone snelheid zijn.

_BREAK             Stelt  de   breaktoets  in.  Nu  kunnen 
                   bepaalde routines eventueel onderbroken 
                   worden.  (MRING en  DIAL) De  standaard 
                   ingestelde     break-toets     is    de 
                   CODE-toets.   Dit   commando  mag   ook 
                   achterwege    gelaten     worden.    De 
                   break-toets   staat  dan  ingesteld  op 
                   CTRL-STOP   (Niet   aan   te   bevelen, 
                   aangezien  een  basic-programma  zonder 
                   ONSTOPGOSUB dan afbreekt)

_CARRIER(:GOSUB .) Wordt  alleen   gebruikt  in   een  BBS 
                   programma. Achter GOSUB het regelnummer 
                   invullen   waar  naartoe   gegaan  moet 
                   worden  als   de  carrier  weg  is.  De 
                   carrier   kan  door  onbekende  oorzaak 
                   wegvallen  of  de  beller  heeft zomaar 
                   opgehangen.

_CHKMDM(I)         Controleer of  modem aanwezig is. I = 0 
                   :  modem  aanwezig,  anders geen  modem 
                   aanwezig.

_CONNECT(I)        Wordt    alleen    gebruikt    in   een 
                   Terminal-programma. Maakt verbinding op 
                   de met INIMDM ingestelde snelheid.
                   I = 0 : error
                   I = 2 : carrier detected. Verbinding!
                   I = 3 : routine afgebr. via CODE-toets
                   I = 4 : nummer is in gesprek

_DTRON             DTR  signaal aan.  DTR =  Data Terminal 
                   Ready

_DTROFF            DTR signaal uit.

_ECHOON            Verstuurde   tekens    gaan   naar   de 
                   telefoon-lijn EN naar het  scherm.  Dit 
                   commando   wordt   gebruikt   als   het 
                   programmma fungeert als een BBS.

_ECHOOFF           Verstuurde  tekens gaan  ALLEEN naar de 
                   telefoon-lijn. Alleen     binnenkomende 
                   tekens worden op het scherm gezet. Dit 
                   commando  moet dus  gebruikt worden als 
                   het programma fungeert     als      een 
                   Terminal.(Bel-programma)

I=0:_FILEOUT(A$),I Verstuurt een tekstfile. A$       heeft 
                   (drive)+filenaam.
                   I bepaalt of meer j/n aan is of uit.
                   I = 0  meer j/n staat aan.
                   I = 1  meer j/n staat uit.
                   Na afloop bevat I een controle-code.
                   0 = tekstfile goed verzonden
                   3 = afgebroken via CTRL-C of C
                   7 = file niet gevonden.

_FILEOUT           kan   in  een   terminal-programma  ook 
                   gebruikt    worden    om    een    zgn. 
                   ASCII-upload te  doen. De Meer j/n moet 
                   dan  uiteraard UIT  staan. Afbreken via 
                   CTRL-C of C


_GET(I)            Haalt een  teken van  toetsenbord en/of 
                   telefoon-lijn.  Bij LINEOFF  alleen van 
                   toetsenbord.  De  ASCII-waarde van  het 
                   teken  komt  in  I.  Eventueel vertalen 
                   naar een  letter via bv IN$=CHR$(I). De 
                   routine  wacht  op  een  toets  en komt 
                   terug in Basic als dit gebeurt.


I=3:_INIMDM(I)     Stelt   het  modem   op  een   bepaalde 
                   snelheid in.  I mag  de waarden 0 t/m 7 
                   hebben. Zie modemsnelheden.

_INITMD            Stelt het communicatie-protocol in.
                   Staat standaard op X8N1.
                   X = Xon/Xoff protocol aan
                   8 = 8 data-bits
                   N = non parity
                   1 = 1 stopbit

_LINEON            Telefoon-lijn aan.

_LINEOFF           Telefoon-lijn uit.
                   Tijdens   een  verbinding  kan  dus  de 
                   telefoonlijn aan  en uit  gezet worden. 
                   Dit heeft geen invloed op de verbinding 
                   die   blijft  gewoon  bestaan.  In  een 
                   BBS-programma   kan   _LINEOFF   worden 
                   gebruikt om  als sysop lokaal even iets 
                   te  doen,zonder dat  de beller kan zien 
                   wat er  gebeurt.Hij staat  dan even  op 
                   non-actief  Er  wordt  niets  naar  hem 
                   toegestuurd  en hij  kan zelf ook niets 
                   sturen.Een  _LINEON   maakt  dit   weer 
                   ongedaan.

_LO(A$)            Stuurt de tekst in A$ naar scherm en/of 
                   telefoon-lijn.      Afhankelijk     van 
                   ECHOON/ECHOOFF    en    LINEON/LINEOFF. 
                   Eventueel  binnenkomende  tekens worden 
                   genegeerd,  behalve   de  toetsen  voor 
                   pauzeren,  afbreken en weer verder. Dit 
                   houdt  tevens  in,dat  de  buffers,waar 
                   toetsen  in  komen,  leeg  blijven.  Er 
                   worden  geen  toetsen "onthouden".  Dit 
                   voorkomt als  men bv  in een  BBS op de 
                   commandoregel  staat en  men drukt  per 
                   ongeluk de  Return toets een poosje in, 
                   dat  dan  de  regel vele  malen opnieuw 
                   wordt    afgedrukt.    _LO    is    het 
                   gebruikelijke  commando om regels tekst 
                   menu's e.d. te versturen.

_LB(A$)            Zelfde  als   _LO(A$),nu  is  de  tekst 
                   alleen  te  pauzeren  via CTRL-S,echter 
                   niet af te breken. Binnenkomende tekens 
                   tijdens   het   versturen   worden   nu 
                   "onthouden".
                   (Toetsenbord-buffer   en   modem-buffer 
                   blijven  intact) Gebruik  _LB ALTIJD in 
                   een  input-routine   om  de   ingetypte 
                   tekens  weer terug  te sturen  en/of op 
                   het scherm te zetten.


_LS(A$)            Zelfde als _LO(A$),met dit verschil dat 
                   eventuele   eindspaties   niet   worden 
                   afgedrukt.
                   A$ is bv "BBS-programma."
                   Via   _LO(A$)  wordt   de  hele  string 
                   verstuurd,ook    de    eind-spaties.Met 
                   _LS(A$) wordt  dan als laatste teken de 
                   "." verstuurd.


De  commando's  _LO(A$)  en _LS(A$)  kunnen op  4 manieren 
gebruikt
worden:

1. _LO(A$)      Stuurt een Return + Linefeed mee.
   _LS(A$)

2. _LO(A$);     Nu geen Return + Linefeed.
   _LS(A$);

3. _LO(A$),I    Zelfde als bij 1,controle-code komt in I.
   _LS(A$),I    I = 0 : string is geheel verzonden.
                I = 3 : afgebroken met CTRL-C of C.

4. _LO(A$);,I  Zelfde als bij 3,nu geen Return + Linefeed.
   _LS(A$);,I

Op   commando  _LB(A$)   zijn  alleen  punt  1  en  2  van 
toepassing.


    

Index

Vorige

Volgende