SET PRINT ON/OFF
SET CONSOLE ON/OFF
SETCONSON([param1],[param1],[param1],[param1],[param1],[param1],[param1])
SET PRINTER TO [tiedosto]

Parametrit

SET PRINT/CONSOLE/PRINTER -käskyillä voidaan ohjata "?" ja "??" käskyt menemään tiedostoon.
Nykyään on mielekkäämpää käyttää erilaisia fcreate()/fwrite() -funktiota.
setsonsole() -funktiota voidaan käyttää myös COM portteihin tapahtuvaan lähetykseen (kt. esimerkki).

Selitys

Kt. esimerkki.

Esimerkki

set console off /* sammutetaan ?/?? käskyjen ohjautuminen kuvaruutuun */
set printer to aa.bak /* ohjataan ?/?? käskyjen ohjautuminen tiedostoon aa.bak */
set print on /* aktivoidaan ohjautuminen päälle */
?? 1
? 33
set print off /* sammutetaan ?/?? käskyjen ohjautuminen tiedostoon */
set printer to /* suljetaan tiedosto aa.bak */
set console on /* palautetaan ?/?? käskyjen ohjautuminen kuvaruutuun */

Saman toiminnon saa nykyaikaisemmin:

han=fcreate("aa.bak")
fwriteline(han,"1")
fwrite(han,"33")
fclose(han)

Erilaisia UART/Serial -toimintoja voi tehdä seuraavasti käyttäen koodinumeroita 100-102:

log=space(350) /* luodaan muistia virheilmoituksille */
hcom=setconson(101,"\\.\COM4",log) /* avaa yhteys COM4 -portille, jos epäonnistuu hcom saa 0, log saa jonkin tekstin */
aa=setconson(102,hcom,log,"Hello") /* lähetetään viesti porttiin, aa saa numeron kuinka monta merkkiä meni */
aa=setconson(102,hcom,log,"Hello",197) /* lähetetään viesti porttiin, aa saa numeron kuinka monta merkkiä meni */
/* 197 on ohjelmalle tuleva komento kun viesti tulee COM portista */
setconson(100,hcom) /* suljetaan portti */

Käytä porttina laiteympäristöön sopivia tunnisteita, esim. "\\.\COM16" jne..
Alla olevassa esimerkissä luodaan ikkuna ja kerrotaan, että tulostetaan kellonaika päivä kun jotain tulee tästä portista (saadaan koodi 197). Kun jotain tulee sen pituus tallentuu getlist -muuttujaan.

vanikku=setwindow()
ikku=winnew("",0,0,400,300)
setwindow(ikku)
log=space(350)
hcom=setconson(101,"\\.\COM16",log)
setconson(102,hcom," ",log,ikku,197)
DO WHILE .t.
   apu=getmessage()
   DO CASE
      CASE apu=256
           DO CASE
              CASE nappain=27
                   EXIT
           endcase
      CASE apu=273
           DO CASE
              CASE nappain=197
                   ? timeh()
                   ? left(lokiv,getlist)
           endcase
   ENDcase
ENDDO
setconson(100,hcom)
setwindow(vanikku)
destroywin(ikku)

Katso myös FCREATE(), FWRITE(), FCLOSE()