初期化に関するもの
INIT "dev:","spec"[,size]
dev=S1|S2
spec=M|F|P where M=extended memory, F=file device, P=program module
size=2..32 even integer, program module size in KB, remaining area is used as extended memory, available on either S1 or S2 on spec="P"
INIT "dev:"
dev=X to initialize diskette
INIT "dev:",size
dev=COM1|COM2
size=buffer size in byte, recommended size is >= 80 (<=9600 bps), 130 (19200 bps), 1100 (38400 bps)
NEW "dev:"[,size]
dev=S0|S1|S2 where S0=internal memory
size=reserved memory size from top of specified module, never used by BASIC interpreter (remember +0..+C5h is used as header and RSV)
メモリーアクセスに関するもの
PEEK(addr)
returns the content of address addr of current bank
PEEK#(bank, addr)
returns the content of address addr of specified bank, where bank=0..7
POKE [#bank,]addr,val[,val]*
poke value(s) into memory area beginning at address in specified bank where default bank is 0
CALL [#bank,]addr[,var]
if var is an integer (-32768..+32767): call with DE=value of var, returns DE into var if C=1
if var is a string: call with DE:B=address:length of value of var, returns DE:B into var if C=1
データの入出力に関するもの
MAXFILES=n
n=1..15
OPEN "dev:" FOR mode AS #n
dev=
mode=INPUT|OUTPUT|APPEND
n=1..maxfiles
PRINT #n,...
INPUT #n,...
CLOSE #n
EOF(n)
プログラムの入出力に関するもの
SAVE [*]"dev:fnam"[,A]
*:save BASIC program remarks as text excluding line numbers and remark symbols
,A:save whole BASIC program as text including line numbers
dev=S0|S1|S2|X|Y|COM|COM1|COM2|CAS
fnam=8.3 style file name
BSAVE "dev:fnam",sadr,eadr[,xadr]
dev=S0|S1|S2|X|Y|COM|COM1|COM2|CAS
fnam=8.3 style file name
sadr=0..&FFFF as start address of memory region to save
eadr=0..&FFFF as end address of memory region to save
xadr=0..&FFFF as executing address when loaded without specifying address to load
LOAD [*]"dev:fnam"
BLOAD "dev:fnam"
設定に関するもの
SETCOM "dev:"[,baud[,charbits[,parity[,stopbits[,xonxoff[,siso]]]]]]
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
baud=50..38400, charbits=5..8, parity=N/O/E, stopbits=1..2, xonxoff=X/N, siso=S/N
SETDEV "dev:"[,spec]*
dev=COM1|COM2|COM(current COM port)
spec=PO/KI (no spec --> change current COM port)
送信に関するもの
SNDSTAT "dev:",prot,timeout
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
prot:&00..&FF, meaning of every bit is as followings: 0='must be high (space)', 1='must be low (mark)'
timeout: 0..255, 1=0.5s, 0=forever
OUTSTAT "dev:",code
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
code=0..3, meaning of every bit is as followings: 0='high (space)', 1='low (mark)'
bit
line
1
RTS
0
DTR
SNDBRK "dev:",count
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
count=1..255 (number of break signals sent out)
PCONSOLE "dev:",width[,eol]
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
width=0|16..255 where 0=infinite
eol=0..2 where 0=CR, 1=LF, 2=CRLF
PZONE "dev:",width
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
width=8..255 for COM1, 8..80 for COM2
受信に関するもの
RCVSTAT "dev:",prot[,timeout]
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
prot:&00..&FF, meaning of every bit is as followings: 0='must be high (space)', 1='must be low (mark)'
timeout: 0..255, 1=0.5s, 0=forever
INSTAT("dev:")
dev=COM1|COM2|COM(current COM port, selected with SETDEV)
returns binary value, meaning of every bit is as followings: 0='high (space)', 1='low (mark)'
RXD$
returns exsisting (in buffer) received data
KEYSTAT port[,repeat[,click]]
port=0..2 where 0=keyboard, 2=current serial port (mixed-in with input from keyboard)
repeat=0..1 where 0=off, 1=on
click=0..1 where 0=off, 1=on
その他
ON COMn GOSUB
COMn ON|OFF|STOP
ON PHONE GOSUB
PHONE ON|OFF|STOP