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).
Kt. 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)