i99-basic - interface2.7.11 on error resume next.....172 2.7.12 on key gosub.....174 2.7.13 on stop...

342
i99-BASIC 標準コマンド コマンドリファレンス

Upload: others

Post on 19-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASIC

標準コマンド

コマンドリファレンス

Page 2: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

2

目 次

はじめに 13

第 1 章 定数 / 変数 / 式 / 演算 14

1.1 定数について ........................................................................................................................... 14 1.1.1 文字型定数.................................................................................................................... 14 1.1.2 数値型定数.................................................................................................................... 15 1.1.3 整数型定数.................................................................................................................... 15 1.1.4 実数型定数.................................................................................................................... 17 1.1.5 論理型定数.................................................................................................................... 18 1.1.6 列挙型定数.................................................................................................................... 18

1.2 変数について ........................................................................................................................... 19 1.2.1 変数名............................................................................................................................ 19 1.2.2 変数の型........................................................................................................................ 19 1.2.3 論理型変数.................................................................................................................... 20 1.2.4 構造体型変数................................................................................................................ 20

1.3 式と演算について ................................................................................................................... 21 1.3.1 算術演算子.................................................................................................................... 21 1.3.2 関係演算子.................................................................................................................... 21 1.3.3 論理演算子.................................................................................................................... 22 1.3.4 演算の優先順位 ............................................................................................................ 23

1.4 特殊記号について ................................................................................................................... 24

第 2 章 標準コマンド 25

2.1 コマンド一覧 ........................................................................................................................... 25 2.2 i99-BASIC メイン操作に関する関数・命令 ......................................................................... 31

2.2.1 AUTO................................................................................................................................ 31 2.2.2 BREAK.............................................................................................................................. 32 2.2.3 CLS.................................................................................................................................. 33 2.2.4 COLOR.............................................................................................................................. 33 2.2.5 CONFIG............................................................................................................................ 34 2.2.6 CONSOLE.......................................................................................................................... 36 2.2.7 CONT................................................................................................................................ 36 2.2.8 CONTTRACE...................................................................................................................... 36 2.2.9 COPY................................................................................................................................ 37 2.2.10 CSRLIN.......................................................................................................................... 37 2.2.11 DATA.............................................................................................................................. 37 2.2.12 DELETE.......................................................................................................................... 38 2.2.13 DSKF.............................................................................................................................. 38 2.2.14 EDIT.............................................................................................................................. 39 2.2.15 END................................................................................................................................ 39 2.2.16 ERL................................................................................................................................ 39

Page 3: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

3

2.2.17 ERM$.............................................................................................................................. 40 2.2.18 ERR................................................................................................................................ 40 2.2.19 ERROR............................................................................................................................ 41 2.2.20 FILEPASSWD.................................................................................................................. 42 2.2.21 GUARD ON/OFF.............................................................................................................. 42 2.2.22 HELP SHOW.................................................................................................................... 43 2.2.23 HIBERNATE.................................................................................................................... 43 2.2.24 HIDDEN ON/OFF............................................................................................................ 44 2.2.25 KEY................................................................................................................................ 45 2.2.26 KEY LIST...................................................................................................................... 45 2.2.27 LIST/LLIST.................................................................................................................. 46 2.2.28 LOAD.............................................................................................................................. 47 2.2.29 LOCATE.......................................................................................................................... 47 2.2.30 LPAGE............................................................................................................................ 48 2.2.31 LPRINT , LPRINT USING ............................................................................................ 48 2.2.32 NEW................................................................................................................................ 48 2.2.33 POS................................................................................................................................ 49 2.2.34 POWER ON...................................................................................................................... 49 2.2.35 QUIT, SYSTEM.............................................................................................................. 50 2.2.36 READ.............................................................................................................................. 50 2.2.37 REBOOT, NEW ON.......................................................................................................... 51 2.2.38 REM, ‘........................................................................................................................ 51 2.2.39 RENUM............................................................................................................................ 52 2.2.40 RESTORE........................................................................................................................ 53 2.2.41 RUN................................................................................................................................ 54 2.2.42 SAVE.............................................................................................................................. 55 2.2.43 SHELL............................................................................................................................ 56 2.2.44 SHUTDOWN...................................................................................................................... 56 2.2.45 SINGLETRACE................................................................................................................ 57 2.2.46 SINGLETRACEOVER ........................................................................................................ 57 2.2.47 SLEEP............................................................................................................................ 57 2.2.48 USLEEP , MSLEEP ........................................................................................................ 58 2.2.49 STOP.............................................................................................................................. 58 2.2.50 TRACE............................................................................................................................ 58 2.2.51 TRON/TROFF.................................................................................................................. 59 2.2.52 WATCH............................................................................................................................ 60 2.2.53 VER$.............................................................................................................................. 60

2.3 数値・文字列に関する関数・命令........................................................................................ 61 2.3.1 ABS.................................................................................................................................. 61 2.3.2 ASC.................................................................................................................................. 61 2.3.3 ASCB................................................................................................................................ 62 2.3.4 ATN.................................................................................................................................. 62 2.3.5 BIN$................................................................................................................................ 62 2.3.6 BOOL................................................................................................................................ 63 2.3.7 CDBL................................................................................................................................ 64 2.3.8 CHR$................................................................................................................................ 64

Page 4: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

4

2.3.9 CHRB$.............................................................................................................................. 65 2.3.10 CINT.............................................................................................................................. 65 2.3.11 CLEAR............................................................................................................................ 65 2.3.12 CLNG.............................................................................................................................. 66 2.3.13 CONST............................................................................................................................ 66 2.3.14 CONST BOOL.................................................................................................................. 66 2.3.15 COS................................................................................................................................ 67 2.3.16 CSNG.............................................................................................................................. 67 2.3.17 CVD................................................................................................................................ 68 2.3.18 CVI................................................................................................................................ 68 2.3.19 CVL................................................................................................................................ 68 2.3.20 CVS................................................................................................................................ 69 2.3.21 DATE$ = “文字列” .................................................................................................. 69 2.3.22 DATE$............................................................................................................................ 70 2.3.23 DATECALC$.................................................................................................................... 71 2.3.24 DATEDIFF...................................................................................................................... 71 2.3.25 DATENUM........................................................................................................................ 72 2.3.26 DAY................................................................................................................................ 72 2.3.27 DEFBOL.......................................................................................................................... 72 2.3.28 DEFDBL.......................................................................................................................... 73 2.3.29 DEFINE STRUCT~END STRUCT .................................................................................... 73 2.3.30 DEFINT.......................................................................................................................... 74 2.3.31 DEFLNG.......................................................................................................................... 74 2.3.32 DEFSNG.......................................................................................................................... 74 2.3.33 DEFSTR.......................................................................................................................... 75 2.3.34 ENUM~END ENUM.......................................................................................................... 75 2.3.35 EXP................................................................................................................................ 76 2.3.36 FIRSTDAY$.................................................................................................................... 76 2.3.37 FIX................................................................................................................................ 76 2.3.38 GRP$.............................................................................................................................. 77 2.3.39 HEX$.............................................................................................................................. 77 2.3.40 HOUR.............................................................................................................................. 78 2.3.41 INKEY$.......................................................................................................................... 78 2.3.42 INSTR............................................................................................................................ 79 2.3.43 INT................................................................................................................................ 79 2.3.44 JUDGE$.......................................................................................................................... 80 2.3.45 LASTDAY$...................................................................................................................... 81 2.3.46 LCASE$.......................................................................................................................... 81 2.3.47 LEFT$............................................................................................................................ 82 2.3.48 LEFTB$.......................................................................................................................... 82 2.3.49 LEN................................................................................................................................ 83 2.3.50 LENB.............................................................................................................................. 83 2.3.51 LET................................................................................................................................ 84 2.3.52 LINSTR.......................................................................................................................... 85 2.3.53 LOCAL............................................................................................................................ 85 2.3.54 LOCAL BOOL.................................................................................................................. 86

Page 5: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

5

2.3.55 LOCAL CONST................................................................................................................ 86 2.3.56 LOCAL CONST BOOL ...................................................................................................... 87 2.3.57 LOCAL ENUM~END ENUM .............................................................................................. 87 2.3.58 LOCAL STRUCT.............................................................................................................. 88 2.3.59 LOG................................................................................................................................ 88 2.3.60 LTRIM$.......................................................................................................................... 89 2.3.61 MID$ = “文字列” .................................................................................................... 89 2.3.62 MID$.............................................................................................................................. 90 2.3.63 MIDB$ = “文字列” .................................................................................................. 91 2.3.64 MIDB$............................................................................................................................ 92 2.3.65 MINUTE.......................................................................................................................... 92 2.3.66 MKD$.............................................................................................................................. 93 2.3.67 MKI$.............................................................................................................................. 93 2.3.68 MKL$.............................................................................................................................. 93 2.3.69 MKS$.............................................................................................................................. 94 2.3.70 MONTH............................................................................................................................ 94 2.3.71 OCT$.............................................................................................................................. 94 2.3.72 RANDOMIZE.................................................................................................................... 95 2.3.73 REPLACE$...................................................................................................................... 95 2.3.74 RIGHT$.......................................................................................................................... 96 2.3.75 RIGHTB$........................................................................................................................ 96 2.3.76 RND................................................................................................................................ 97 2.3.77 ROUND............................................................................................................................ 98 2.3.78 RTRIM$.......................................................................................................................... 98 2.3.79 SECOND.......................................................................................................................... 99 2.3.80 SGN................................................................................................................................ 99 2.3.81 SIN................................................................................................................................ 99 2.3.82 SPACE$, SPC.............................................................................................................. 100 2.3.83 SPLIT$........................................................................................................................ 100 2.3.84 SQR.............................................................................................................................. 101 2.3.85 STR$............................................................................................................................ 101 2.3.86 STRCOMP...................................................................................................................... 102 2.3.87 STRCOMPB.................................................................................................................... 102 2.3.88 STRDEL$...................................................................................................................... 103 2.3.89 STRDELB$.................................................................................................................... 103 2.3.90 STRING$...................................................................................................................... 104 2.3.91 STRINS$...................................................................................................................... 105 2.3.92 STRINSB$.................................................................................................................... 105 2.3.93 STRUCT........................................................................................................................ 106 2.3.94 SWAP............................................................................................................................ 107 2.3.95 TAB.............................................................................................................................. 108 2.3.96 TAN.............................................................................................................................. 108 2.3.97 TIME$ = “文字列” ................................................................................................ 109 2.3.98 TIME$.......................................................................................................................... 109 2.3.99 TIMECALC$.................................................................................................................. 110 2.3.100 TIMEDIFF.................................................................................................................. 110

Page 6: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

6

2.3.101 TIMENUM.................................................................................................................... 111 2.3.102 TIMER........................................................................................................................ 111 2.3.103 TRIM$........................................................................................................................ 111 2.3.104 TRUNC........................................................................................................................ 112 2.3.105 UCASE$...................................................................................................................... 112 2.3.106 USING$...................................................................................................................... 113 2.3.107 VAL............................................................................................................................ 114 2.3.108 WEEK.......................................................................................................................... 115 2.3.109 WEEKS........................................................................................................................ 115 2.3.110 YEAR.......................................................................................................................... 116

2.4 配列に関する関数・命令 ..................................................................................................... 117 2.4.1 CDIM.............................................................................................................................. 118 2.4.2 DIM................................................................................................................................ 118 2.4.3 ERASE............................................................................................................................ 120 2.4.4 LDIM.............................................................................................................................. 121 2.4.5 SEARCH.......................................................................................................................... 122 2.4.6 SPLIT............................................................................................................................ 123

2.5 繰り返し・条件分岐に関する関数・命令.......................................................................... 124 2.5.1 DO~LOOP...................................................................................................................... 124 2.5.2 DO~LOOP UNTIL.......................................................................................................... 124 2.5.3 DO~LOOP WHILE.......................................................................................................... 125 2.5.4 DO UNTIL~LOOP.......................................................................................................... 125 2.5.5 DO WHILE~LOOP.......................................................................................................... 126 2.5.6 EXIT DO........................................................................................................................ 126 2.5.7 EXIT FOR...................................................................................................................... 127 2.5.8 EXIT WHILE.................................................................................................................. 127 2.5.9 FOR~TO~STEP~NEXT ................................................................................................ 128 2.5.10 IF~THEN~ELSE~END IF ........................................................................................ 129 2.5.11 SELECT CASE~END SELECT ...................................................................................... 130 2.5.12 WHILE~WEND.............................................................................................................. 131

2.6 ファイル・フォルダに関する関数・命令.......................................................................... 132 2.6.1 ATTR$............................................................................................................................ 132 2.6.2 CHAIN............................................................................................................................ 132 2.6.3 CHDIR............................................................................................................................ 133 2.6.4 CLOSE............................................................................................................................ 133 2.6.5 COMMON.......................................................................................................................... 134 2.6.6 DIREXISTS.................................................................................................................... 134 2.6.7 EOF................................................................................................................................ 135 2.6.8 FIELD............................................................................................................................ 136 2.6.9 FILECMP........................................................................................................................ 137 2.6.10 FILECOPY.................................................................................................................... 137 2.6.11 FILEEXISTS................................................................................................................ 138 2.6.12 FILES.......................................................................................................................... 139 2.6.13 FIND............................................................................................................................ 140 2.6.14 FINPUT........................................................................................................................ 140 2.6.15 FINPUT ALL................................................................................................................ 141

Page 7: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

7

2.6.16 FPRINT, FPRINT USING ............................................................................................ 142 2.6.17 GET.............................................................................................................................. 143 2.6.18 GREP............................................................................................................................ 144 2.6.19 INCLUDE...................................................................................................................... 145 2.6.20 INFILE........................................................................................................................ 146 2.6.21 INPUT.......................................................................................................................... 147 2.6.22 INPUT$...................................................................................................................... 148 2.6.23 KILL............................................................................................................................ 149 2.6.24 LINE FINPUT.............................................................................................................. 150 2.6.25 LINE INPUT................................................................................................................ 150 2.6.26 LINFILE...................................................................................................................... 151 2.6.27 LOC.............................................................................................................................. 152 2.6.28 LOF.............................................................................................................................. 152 2.6.29 LSET............................................................................................................................ 153 2.6.30 MKDIR.......................................................................................................................... 153 2.6.31 NAME............................................................................................................................ 154 2.6.32 OPEN............................................................................................................................ 155 2.6.33 PRINT, ? , PRINT USING ........................................................................................ 156 2.6.34 PUT.............................................................................................................................. 158 2.6.35 RMDIR.......................................................................................................................... 159 2.6.36 RSET............................................................................................................................ 159 2.6.37 SET.............................................................................................................................. 160 2.6.38 SPOOL ON/OFF............................................................................................................ 161 2.6.39 USERFS RW/RO............................................................................................................ 161 2.6.40 WIDTH.......................................................................................................................... 162 2.6.41 WRITE.......................................................................................................................... 162

2.7 サブルーチンに関する関数・命令...................................................................................... 163 2.7.1 (ラベル):.................................................................................................................... 165 2.7.2 CALL.............................................................................................................................. 165 2.7.3 DEF FN, FUNCTION~END FUNCTION .......................................................................... 166 2.7.4 EXIT FUNCTION............................................................................................................ 167 2.7.5 EXIT SUB...................................................................................................................... 167 2.7.6 GOSUB............................................................................................................................ 168 2.7.7 GOTO.............................................................................................................................. 169 2.7.8 KEY ON/OFF/STOP........................................................................................................ 170 2.7.9 ON ERROR GOSUB.......................................................................................................... 171 2.7.10 ON ERROR GOTO.......................................................................................................... 172 2.7.11 ON ERROR RESUME NEXT ............................................................................................ 172 2.7.12 ON KEY GOSUB............................................................................................................ 174 2.7.13 ON STOP GOSUB.......................................................................................................... 175 2.7.14 ON TIME$ GOSUB........................................................................................................ 176 2.7.15 ON TIMER GOSUB........................................................................................................ 177 2.7.16 ON ~ GOSUB.............................................................................................................. 178 2.7.17 ON ~ GOTO................................................................................................................ 179 2.7.18 RESUME........................................................................................................................ 180 2.7.19 RETURN........................................................................................................................ 181

Page 8: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

8

2.7.20 STOP ON/OFF/STOP .................................................................................................... 181 2.7.21 SUB~END SUB............................................................................................................ 182 2.7.22 TIME$ ON/OFF/STOP .................................................................................................. 183 2.7.23 TIMER ON/OFF/STOP .................................................................................................. 184

2.8 スレッドに関する関数・命令.............................................................................................. 185 2.8.1 ATTACH THREAD............................................................................................................ 188 2.8.2 DETACH THREAD............................................................................................................ 189 2.8.3 SELECT THREAD............................................................................................................ 190 2.8.4 THREAD STATUS............................................................................................................ 190 2.8.5 THREAD INFO................................................................................................................ 191

2.9 グラフィック描画に関する関数・命令.............................................................................. 192 2.9.1 ARC................................................................................................................................ 192 2.9.2 CIRCLE.......................................................................................................................... 193 2.9.3 DRAWFILE...................................................................................................................... 194 2.9.4 DRAWSTYLE.................................................................................................................... 195 2.9.5 DRAWTEXT...................................................................................................................... 196 2.9.6 LINE.............................................................................................................................. 197 2.9.7 PRESET.......................................................................................................................... 197 2.9.8 PSET.............................................................................................................................. 198 2.9.9 RECTANGLE.................................................................................................................... 198

2.10 Linux 連携の関数・命令 .................................................................................................... 199 2.10.1 SHMLOW OPEN.............................................................................................................. 199 2.10.2 SHMLOW CLOSE............................................................................................................ 199 2.10.3 SHMLOW WRITE............................................................................................................ 200 2.10.4 SHMLOW READ.............................................................................................................. 201

2.11 その他の関数・命令 ........................................................................................................... 202 2.11.1 ASSERT........................................................................................................................ 202 2.11.2 CLOCK.......................................................................................................................... 202 2.11.3 HOSTNAME$.................................................................................................................. 202 2.11.4 MSGBOX........................................................................................................................ 203

第 3 章 ネットワーク制御 204

3.1 コマンド一覧 ......................................................................................................................... 204 3.2 ネットワークに関する関数・命令(i99-BASIC 専用) ....................................................... 206

3.2.1 NWOPEN.......................................................................................................................... 206 3.2.2 NWCLOSE........................................................................................................................ 207 3.2.3 NWSEND.......................................................................................................................... 208 3.2.4 NWRECV$........................................................................................................................ 209 3.2.5 NWRECVTIME.................................................................................................................. 210 3.2.6 NWMYNAME...................................................................................................................... 210 3.2.7 NWCONFBUF.................................................................................................................... 211 3.2.8 NWSETBUF...................................................................................................................... 212 3.2.9 NWGETBUF$.................................................................................................................... 213 3.2.10 NW ON/OFF/STOP........................................................................................................ 214 3.2.11 ON NW GOSUB.............................................................................................................. 215 3.2.12 NWGETMAC$.................................................................................................................. 216

Page 9: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

9

3.3 ネットワークに関する関数・命令(ソケット互換) .......................................................... 217 3.3.1 NWIFCONFIG.................................................................................................................. 217 3.3.2 NWIFCONFIG$................................................................................................................ 218 3.3.3 NWSOCKET...................................................................................................................... 220 3.3.4 NWCLOSESOCK................................................................................................................ 221 3.3.5 NWLISTEN...................................................................................................................... 221 3.3.6 NWACCEPT...................................................................................................................... 222 3.3.7 NWCONNECT.................................................................................................................... 222 3.3.8 NWSENDSOCK.................................................................................................................. 223 3.3.9 NWRECVSOCK$................................................................................................................ 224 3.3.10 NWSENDFILE................................................................................................................ 225 3.3.11 NWRECVFILE................................................................................................................ 226 3.3.12 NWRECVTIME................................................................................................................ 227 3.3.13 NWGETSNAME$.............................................................................................................. 227 3.3.14 NWGETPNAME$.............................................................................................................. 227 3.3.15 NWSETMULTICAST........................................................................................................ 229 3.3.16 NWADDMEMBERSHIP ...................................................................................................... 230 3.3.17 NWDROPMEMBERSHIP .................................................................................................... 230 3.3.18 NWSENDMAIL................................................................................................................ 231 3.3.19 NWMAILLOF.................................................................................................................. 232 3.3.20 NWMAILLIST................................................................................................................ 233 3.3.21 NWMAILGET$................................................................................................................ 234 3.3.22 NWMAILDEL.................................................................................................................. 235 3.3.23 NWPING........................................................................................................................ 236 3.3.24 NWARP$........................................................................................................................ 236 3.3.25 NWMOUNT...................................................................................................................... 237 3.3.26 NWUMOUNT.................................................................................................................... 237 3.3.27 NWWAKEONLAN, NWWOL ................................................................................................ 238 3.3.28 SOCKET ON/OFF/STOP ................................................................................................ 239 3.3.29 ON SOCKET GOSUB ...................................................................................................... 240

第 4 章 グラフィカルユーザインタフェース(GUI) 241

4.1 コマンド一覧 ......................................................................................................................... 241 4.2 GUI に関する関数・命令 ...................................................................................................... 243

4.2.1 @FONT = “文字列” .................................................................................................. 243 4.2.2 @FONT............................................................................................................................ 244 4.2.3 @SIZE = “文字列” .................................................................................................. 245 4.2.4 @SIZE............................................................................................................................ 245 4.2.5 @POSI = “文字列” .................................................................................................. 246 4.2.6 @POSI............................................................................................................................ 247 4.2.7 @TIP = “文字列” .................................................................................................... 248 4.2.8 @TIP.............................................................................................................................. 248 4.2.9 GUADD CMB.................................................................................................................... 249 4.2.10 GUADD RDO.................................................................................................................. 250 4.2.11 GUADD SCR.................................................................................................................. 251 4.2.12 GUADD TAB.................................................................................................................. 252

Page 10: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

10

4.2.13 GUADD TBL.................................................................................................................. 253 4.2.14 GUBTN.......................................................................................................................... 254 4.2.15 GUCHK.......................................................................................................................... 255 4.2.16 GUCMB.......................................................................................................................... 256 4.2.17 GUDEL.......................................................................................................................... 257 4.2.18 GUDSP.......................................................................................................................... 258 4.2.19 GUGARC........................................................................................................................ 259 4.2.20 GUGCIRCLE.................................................................................................................. 260 4.2.21 GUGCLS........................................................................................................................ 261 4.2.22 GUGCOLOR.................................................................................................................... 261 4.2.23 GUGDRAWFILE.............................................................................................................. 262 4.2.24 GUGDRAWSTYLE............................................................................................................ 263 4.2.25 GUGDRAWTEXT.............................................................................................................. 264 4.2.26 GUGET$........................................................................................................................ 265 4.2.27 GUGETMS...................................................................................................................... 266 4.2.28 GUGLINE...................................................................................................................... 267 4.2.29 GUGPLOT HISTGRAM .................................................................................................... 268 4.2.30 GUGPLOT PIE.............................................................................................................. 270 4.2.31 GUGPRESET.................................................................................................................. 272 4.2.32 GUGPSET...................................................................................................................... 272 4.2.33 GUGRECTANGLE............................................................................................................ 273 4.2.34 GUGWAVE...................................................................................................................... 274 4.2.35 GUIMG.......................................................................................................................... 276 4.2.36 GULBL.......................................................................................................................... 277 4.2.37 GUMOV.......................................................................................................................... 278 4.2.38 GUPIC.......................................................................................................................... 279 4.2.39 GURDO.......................................................................................................................... 280 4.2.40 GUSCALE...................................................................................................................... 281 4.2.41 GUSHW.......................................................................................................................... 283 4.2.42 GUSWITCH.................................................................................................................... 283 4.2.43 GUTAB.......................................................................................................................... 285 4.2.44 GUTBL.......................................................................................................................... 286 4.2.45 GUTXA.......................................................................................................................... 287 4.2.46 GUTXT.......................................................................................................................... 288 4.2.47 GUUPD.......................................................................................................................... 289 4.2.48 GUWIN.......................................................................................................................... 290 4.2.49 ON GUEVT~GOSUB ...................................................................................................... 291

第 5 章 帳票作成 292

5.1 コマンド一覧 ......................................................................................................................... 292 5.2 帳票作成に関する関数・命令.............................................................................................. 293

5.2.1 RPCRT............................................................................................................................ 293 5.2.2 RPDEL CAO.................................................................................................................... 293 5.2.3 RPFILL.......................................................................................................................... 294 5.2.4 RPIMGSFC CRT.............................................................................................................. 294 5.2.5 RPLINE.......................................................................................................................... 295

Page 11: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

11

5.2.6 RPMOVE.......................................................................................................................... 295 5.2.7 RPPAINT........................................................................................................................ 296 5.2.8 RPPAINTA...................................................................................................................... 296 5.2.9 RPPDF SFC.................................................................................................................... 297 5.2.10 RPRCTG........................................................................................................................ 298 5.2.11 RPROTATE.................................................................................................................... 299 5.2.12 RPSET FONTF.............................................................................................................. 300 5.2.13 RPSET FONTS.............................................................................................................. 301 5.2.14 RPSET LINE, CAP ...................................................................................................... 301 5.2.15 RPSET LINE, JOIN .................................................................................................... 302 5.2.16 RPSET LINE, WIDTH .................................................................................................. 302 5.2.17 RPSET LINESPC.......................................................................................................... 303 5.2.18 RPSET SRC, RGB........................................................................................................ 304 5.2.19 RPSET SRC, RGBA ...................................................................................................... 305 5.2.20 RPSET SRC, SFC........................................................................................................ 306 5.2.21 RPSFC DEL.................................................................................................................. 306 5.2.22 RPSHWPAGE.................................................................................................................. 307 5.2.23 RPSHWTXT.................................................................................................................... 307 5.2.24 RPSTRK........................................................................................................................ 308

第 6 章 データベース 309

6.1 コマンド一覧 ......................................................................................................................... 309 6.2 データベースに関する関数・命令...................................................................................... 310

6.2.1 @DBINFO = “文字列” .............................................................................................. 310 6.2.2 @DBINFO........................................................................................................................ 310 6.2.3 DBOPEN.......................................................................................................................... 311 6.2.4 DBCLOSE........................................................................................................................ 312 6.2.5 DBEOF............................................................................................................................ 312 6.2.6 DBLOC............................................................................................................................ 313 6.2.7 DBLOF............................................................................................................................ 313 6.2.8 DBWHERE........................................................................................................................ 314 6.2.9 DBORDER........................................................................................................................ 314 6.2.10 DBFIELD...................................................................................................................... 316 6.2.11 DBGET.......................................................................................................................... 317 6.2.12 DBPUT.......................................................................................................................... 318 6.2.13 DBTRANS...................................................................................................................... 319 6.2.14 DBSETOPT.................................................................................................................... 320

第 7 章 サンプルプログラム 321

7.1 サンプルプログラム ............................................................................................................. 321

第 8 章 エラーコードリファレンス 323

8.1 エラーコードリファレンス ................................................................................................. 323

第 9 章 アスキーコード一覧 326

Page 12: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

12

第 10 章 コマンドの制限事項 327

10.1 プログラム内で使用できないコマンド............................................................................ 327 10.2 プログラム内でのみ使用できるコマンド ........................................................................ 327 10.3 トレース実行で使用できないコマンド............................................................................ 328

第 11 章 N88-BASIC のコマンドとの互換性について 329

索引 335

ご利用にあたっての重要な事項 340

Page 13: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

はじめに

本ドキュメントは、i99-BASIC および i99-REAL(開発中)の各種コマンドおよび関数の説明を記載して

おります。IO制御コマンドおよびシステム監視コマンドは、別マニュアルを用意しています。

本ドキュメントでは、説明で表現している表記として下記のように定義します。

・コマンドの書式の説明において、[ ]内の引数は省略できます。

・文字の大小について

コマンドは大文字/小文字のどちらでも動作します。

変数名は大文字/小文字も同じものとして扱われます。

ファイル名は大文字/小文字で区別されます。

本ドキュメント記載の、i99-REALは、処理の定時性と確実性を確保した実行環境です。

i99-REALが組み込まれた専用環境でのみ動作可能です。

- - Interface Corporation

13

Page 14: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第1章 定数 / 変数 / 式 / 演算

1.1 定数について

定数とは、それぞれ固有の値を持ったデータのことで、プログラム中等に直接表記されるものです。

定数は、次のように分類することができます。

定数の表記法は、型によってそれぞれ異なります。

定数

文字型

数値型

文字列

2 進形式

8 進形式

16 進形式

整数型

実数型単精度実数型

倍精度実数型

10 進形式

論理型

列挙型 列挙値

論理値

1.1.1 文字型定数

文字型定数とは、文字をつなぎ、その前後をダブルクォーテーション( " " )で囲んだ文字列データの

ことです。数値も、ダブルクォーテーションで囲うと、文字型定数になります。

ダブルクォーテーション( " " )そのものを文字型定数としたい場合、例のようにCHR$(&H22) を使う

方法またはダブルクォーテーションを2つ続けて書く( "" )方法を用います。

文字列同士は、+を使ってつなげることができます。

<例>

"Good Morning"

"1 2 3 4 5 6 7 8 9"

"産業用パソコンA"

"i99-BASIC"

CHR$(&H22)+ "TEST"+ CHR$(&H22)

"""TEST"""

文字列はUTF-8形式で処理されています。

文字列の 大長は、メモリが確保できる範囲までです。

Ver.2.20以降から、文字列中にダブルクォーテーションを2つ続ける事で、ダブルク

ォーテーション1文字と解釈されます。

Interface Corporation - -

14

Page 15: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

15

1.1.2 数値型定数

数値型定数とは、算術演算を行うことのできる数値データを直接表記したものです。

数値型定数は大きく分けて、整数型, 実数型, 論理型, 列挙型があります。

表記の種類 例

数値形式 255

-13965

3.1415

2進形式 &B01101110

8進形式 &O377

16進形式 &HFF

1.1.3 整数型定数

整数型定数は、表記上の観点から、2進・8進・10進・16進の4つの形式に分類されます。

■10進形式(単精度整数型, 倍精度整数型)

整数のデータです。

単精度整数型の範囲は、-2,147,483,648~2,147,483,647です。

倍精度整数型の範囲は、-9,223,372,036,854,775,808~9,223,372,036,854,775,807です。

負の整数の場合、数値の前には必ずマイナス符号を付けなければなりません。

また、同じ範囲内の実数の後に%または&をつけると、小数点以下は丸め込まれ、整数型の定数とみ

なされます。

<例>

32767

-123

31100.5% ←整数を表す。(単精度)

31100.5& ←整数を表す。(倍精度)

■2進形式(単精度整数型)

数値の前に&Bを付けた、0と1の数字の並びです。

範囲は、&B0~&B11111111111111111111111111111111(32ビット)です。

<例>

&B10101110

Page 16: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

■8進形式(単精度整数型)

数値の前に&0または、&を付けた0から7までの数字の並びです。

範囲は、&0~&37777777777です。

<例>

&12345

&07777

■16進形式(単精度整数型, 倍精度整数型)

数値の前に&Hを付けた、0からFまでの並びです。

後に&を付けると、倍精度整数型になります。

範囲は、&H0~&HFFFFFFFF(倍精度整数型では&HFFFFFFFFFFFFFFFF&)です。

<例>

&H100

&HCFFF

&HF0000000&

2進形式, 8進形式または16進形式で入力された数値は、PRINT等出力文では10進形式で出

力されます。

10進以外の形式で出力する時は、それぞれBIN$, OCT$, HEX$を使って文字列として出力し

てください。

精度範囲外の定数値を与えようとしないでください。エラーもしくは不定の値が得られま

す。

Interface Corporation - -

16

Page 17: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

1.1.4 実数型定数

実数型定数は、単精度実数型と倍精度実数型に分けられます。

■単精度実数型定数

有効桁7桁の精度をもつ実数のデータです。出力時は8桁目が四捨五入され、7桁以下で表示されます。

単精度実数型の範囲は、-3.402823E+38~3.402823E+38です。

単精度実数型の定数には、表記上の分類により、次の3つの形式があります。

・ 7桁以下の実数

・ 後に!をともなった数

・ Eを使った指数形式

<例>

3525.68

3.14!

-7.09E-06

■倍精度実数型定数

有効桁が15桁をもつ実数のデータです。出力の時は15桁以下で表示されます。

倍精度実数型の範囲は、-1.79769313486232E+308~1.79769313486232E+308です。

i99-BASICでは、特に型宣言をしない場合、数値はすべて倍精度実数型として扱われます。

倍精度実数型の定数には、表記上の分類により、次の3つの形式があります。

・ 8桁以上の実数

・ 後に#をともなった数

・ Eを使った指数形式

<例>

1234567.89

45678.9#

-1.09432E-58

精度範囲外の定数値を与えようとしないでください。エラーもしくは不定の値が得られま

す。

実数の取り扱いについて、基本マニュアルの第8章 Tipsも合わせて ご覧ください。

- - Interface Corporation

17

Page 18: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

18

1.1.5 論理型定数

真偽を表すデータです。真偽はそれぞれ以下のように分類されます。

真 偽

TRUE FALSE

0以外の値 0

整数型変数に代入した場合、TRUEは1、FALSEは0になります。

1.1.6 列挙型定数

整数型定数を任意の名前で扱うことができるデータ集合です。

ENUM~END ENUMコマンドで定義した列挙名を指示する事で、条件分岐等で実際の値を意識せずに処理

できます。

<例>

ENUM

SUNDAY

MONDAY

TUESDAY

WEDNESDAY

THURSDAY

FRIDAY

SATURDAY

END ENUM

PRINT MONDAY

Page 19: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

1.2 変数について

変数は、プログラム中に使うデータをしまっておくことができる入れ物のことで、自由に名前(変数名)

をつけられます。

変数は、演算, 参照等に使うことができます。

変数に値を入れる前は、数値変数の値は0, 文字変数は空の文字列であるとみなされます。

1.2.1 変数名

変数名は、英文字で始まる英数文字とアンダーバー( _ )で組み合わせた可変長の文字列で表します。

例えば、次の2つの変数は異なった変数名として解釈されます。

COUNTER_OF_TABLE_DATA_999888777666555_01

COUNTER_OF_TABLE_DATA_999888777666555_02

変数名は予約語であってはなりませんが、予約語を含んだものは構いません。

1.2.2 変数の型

変数の型にも定数と同様、入れるデータに応じた型があります。

変数に値を入れるためには、代入文やINPUT等を用いますが、いずれの場合にも変数の型は、入れる

データの型と一致していなければなりません。

変数

文字型

数値型

整数型

実数型単精度実数型

倍精度実数型

論理型

列挙型

単精度整数型

倍精度整数型

構造体型

文字型と数値型は、文字型の 後に$を付けることによって区別します。

添字が省略されている場合は倍精度実数型の変数となります。

- - Interface Corporation

19

Page 20: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

型の種類のおける変数名後の添字と例は下記の表のようになります。

型の種類 変数名後の添字 例

文字型 $ X$

整数

% 単精度整数型(-2147483648~2147483647)

& 倍精度整数型(-9223372036854775808~9223372036854775807)

X%

X&

実数 ! 単精度実数型(有効桁数7桁,

-3.402823E+38~3.402823E+38)

# 倍精度実数型(有効桁数15桁,

-1.79769313486232E+308~1.79769313486232E+308)

X!

X#

論理 BOOLコマンドで変数を宣言します。 X

数値型

列挙 ENUMコマンドで変数を宣言します。 X

構造体型 STRUCTコマンドで変数を宣言します。 X

精度の低い型を精度の高い型に変換すると、変換前の型の有効桁数より小さい部分に無効

な数値が現れます。

(変換前の型の有効桁数+1桁目で四捨五入すると、正しい値になります。)

例:単精度実数から倍精度実数へ変換した場合

PRINT CDBL(1.53!)

→1.52999997138977

精度の高い型を精度の低い型に変換すると、変換後の型の有効桁数に丸められます。

(変換後の型の有効桁数+1桁目で四捨五入されます。)

例:単精度実数から単精度整数へ変換した場合

PRINT CINT(1.53!)

→2

1.2.3 論理型変数

真偽を表すデータを格納する変数型です。BOOLコマンドにより宣言します。

<例>

BOOL A = TRUE

1.2.4 構造体型変数

色々な種類の互いに関連するデータをまとめて格納できるデータです。DEFINE STRUCT~END STRUCTに

より構造を定義し、STRUCTコマンドにより変数を宣言します。

<例>

DEFINE STRUCT MEMBER

NAME$

AGE

END STRUCT

STRUCT MEMBER V

V.NAME$=”太郎”

V.AGE=20

Interface Corporation - -

20

Page 21: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

1.3 式と演算について

1.3.1 算術演算子

演算内容 記号 記号の読み方例 書き方例 書式例と結果

加算 + プラス X + Y 5+2は7

減算, 負号 - マイナス X - Y 5-2は3

乗算 * アスタリスク X * Y 5*2は10

整数の除算 \ バックスラッシュ X \ Y 5\2は2

実数の除算 / スラッシュ X / Y 5/2は2.5

指数演算 ^ ハット、キャロット X ^ Y 5^2は25

剰余算 MOD モッド、モジュラス A MOD B 5 MOD 2は1

整数の除算記号( \ )は、一部のキーボードでは「\」キーで入力可能です。

1.3.2 関係演算子

演算内容 記号 記号の読み方例 書き方例 書式例と結果

等しい = イコール X = Y XとYは等しい

等しくない <> 小なり大なり、

ノットイコール

X <> Y XとYは等しくない

大小比較(小なり) < 小なり X < Y XはYより小さい

大小比較(大なり) > 大なり X > Y XはYより大きい

大小比較(小なりイコール) <= 小なりイコール X <= Y XはY以下

大小比較(大なりイコール) >= 大なりイコール X >= Y XはY以上

- - Interface Corporation

21

Page 22: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

22

1.3.3 論理演算子

演算内容 記述内容 読み方例 書き方例

否定 NOT ノット NOT X

論理積 AND アンド X AND Y

論理和 OR オア X OR Y

排他的論理和 XOR エックスオア X XOR Y

包含 IMP アイエムピー X IMP Y

同値 EQV イーキューブイ X EQV Y

※ ビット演算とブール演算のどちらでも扱うことができます。

論理演算子の書式例を、以下に示します。

NOTの演算結果例:

式 結果

NOT TRUE FALSE

NOT FALSE TRUE

AND、OR、XOR、IMP、EQVの演算結果例:

式1 式2 AND結果 OR結果 XOR結果 IMP結果 EQV結果

TRUE TRUE TRUE TRUE FALSE TRUE TRUE

TRUE FALSE FALSE TRUE TRUE FALSE FALSE

FALSE TRUE FALSE TRUE TRUE TRUE FALSE

FALSE FALSE FALSE FALSE FALSE TRUE TRUE

Page 23: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

23

1.3.4 演算の優先順位

各演算には優先順位があり、以下の順番で処理されます。 1. 括弧で括られた式 2. 関数 3. 指数演算( ^ ) 4. 負号( - ) 5. 乗算( * )、実数の除算( / ) 6. 整数の除算( \ ) 7. 整数の剰余(MOD) 8. 加算( + )、減算( - ) 9. 関係演算子( =, <, > など) 10. NOT 11. AND 12. OR 13. XOR 14. IMP 15. EQV

Page 24: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

24

1.4 特殊記号について

i99-BASICで使用できる文字は次の通りです。

算術演算子(+, -, *, /)等の他にも特別な意味を持つ記号があります。

記 号 機 能

コロン( : ) ・マルチステートメントの区切りとして使います。

<例>

A=B+C:PRINT A

・ラベル名の終端に付けます。

<例>

LABEL:

コンマ( , ) パラメータが並ぶ場合、その区切りとして使います。

<例>

INPUT A, B, C

COLOR 7, 0

セミコロン( ; ) PRINT等の出力文中でパラメータが並ぶ場合、その区切り

として使います。

<例>

PRINT "A=";A

アポストロフィ( ’ ) REM(コメント文)の代用として使います。

クエッションマーク( ? ) PRINTの代用として使います。

アットマーク( @ ) 各項目の識別子を表す記号として使います。

<例>

@FONT

エクスクラメーションマーク( ! ) 単精度実数として使います。

シャープ( # ) 倍精度実数として使います。

パーセント( % ) 単精度整数として使います。

アンド( & ) 倍精度整数として使います。

スペース 原則として文字型定数に含まれているスペース以外のス

ペースは無視されますが、コマンドの名前の直後には必ず

半角スペースを入れなければなりません。

Page 25: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第2章 標準コマンド

i99-BASICで使用できる標準コマンドの使い方について記載します。

コマンド名・関数名の右側に「i99-REAL」と記載されていれば、i99-REALから使用可

能となります。

i99-REALで利用する際の制限事項については、「注意」に記載しています。

2.1 コマンド一覧

名前 内容

i99-BASICメイン操作に関する関数・命令

AUTO コンソール画面で入力時、行番号を自動的に発生します。

BREAK カーソル行にブレークポイントを設定/解除します。

CLS 画面をクリアします。

COLOR 表示する文字の文字色・背景色を変更します。

CONFIG i99-BASICの設定を行います。

CONSOLE コンソール画面のファンクション・ツールバーの表示を切り替えます

CONT STOPまたはブレークポイントによって停止したプログラムを再開します。

CONTTRACE STOPまたはブレークポイントによって停止したプログラムを自動トレースで

再開します。

COPY 画面のコピーを印刷します。

CSRLIN テキスト画面上の現在のカーソル位置(Y座標)を返します。

DATA READで読み込まれる数値定数、文字定数を定義します。

DELETE プログラムリストの指定範囲を削除します。

DSKF ディスクの空き容量をKB単位で返します。

EDIT コンソール画面で、指定された行を画面上に表示し、Page Up / Page Down

キーなどによるプログラム編集を可能にします。

END プログラムを終了します。

ERL 後に発生したエラーの行番号を返します。

ERM$ 後に発生したエラーメッセージを返します。

ERR 後に発生したエラーコードを返します。

ERROR エラー発生のシミュレート、エラーコードのユーザー定義を行います。

FILEPASSWD プログラムのパスワード設定確認ダイアログを起動します。

GUARD ON / OFF プログラムリストの指定範囲を編集不可に設定します。

HELP SHOW マニュアルを表示します。

HIBERNATE システムをハイバネートします。

HIDDEN ON / OFF プログラムリストの指定範囲を隠し行に設定します。

KEY ファンクションキーに文字列を割り付けます。

KEY LIST ファンクションキーに割り付けられている文字列のリストを表示します。

LIST メモリにあるプログラムの全部、または一部を表示します。

LLIST メモリにあるプログラムの全部、または一部を印刷します。

LOAD ファイルのプログラムをメモリにロードします。

LOCATE カーソルの位置を変更します。

LPAGE LPRINTしたデータをプリンタに出力します。

LPRINT, LPRINT USING 文字列や数値等のデータをプリンタに出力します。

NEW メモリにあるプログラムを抹消し、変数を初期化します。

POS テキスト画面上の現在のカーソル位置(X座標)を返します。

- - Interface Corporation

25

Page 26: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

26

名前 内容

POWER ON 自動起動プログラムを登録します。

QUIT, SYSTEM i99-BASICを終了します。

READ DATAで用意した数値や文字のデータを読み込み、変数に代入します。

REBOOT, NEW ON システムを再起動します。

REM, ‘ プログラムにコメントを入れます。

RENUM プログラムの行番号を新しく付け直します。

RESTORE READで読み込むDATA行の先頭行を指定します。

RUN メモリのプログラムを実行します。

SAVE メモリのプログラムをファイルに保存します。

SHELL 外部プログラムを呼び出します。

SHUTDOWN システムをシャットダウンします。

SINGLETRACE メモリのプログラムをステップインでシングルトレース実行します。

SINGLETRACEOVER メモリのプログラムをステップオーバーでシングルトレース実行します。

SLEEP 指定の秒数の間だけ休止します。

USLEEP, MSLEEP 指定の時間単位の間だけ休止します。

STOP プログラムの実行を一時中断します。

TRACE メモリのプログラムを指定の待ち時間を挟んで自動トレース実行します。

TRON/TROFF プログラムの実行状態を追跡します。

WATCH モニタする変数を指定します。

VER$ i99-BASICのバージョンを返します。

数値・文字列に関する関数・命令

ABS 絶対値を返します。

ASC 文字のキャラクターコードを返します。

ASCB 文字の先頭の1バイトデータを返します。

ATN 逆正接を返します。

BIN$ 10進数を2進数の文字列に変換します。

BOOL 論理型変数を宣言します。

CDBL 単精度整数値, 倍精度整数値, 単精度実数値を、倍精度実数値に変換します。

CHR$ 指定したキャラクターコードが持つ文字列を返します。

CHRB$ 指定したバイトデータ値を持つバイトデータ文字列を返します。

CINT 倍精度整数値, 単精度実数値, 倍精度実数値を、単精度整数値に変換します。

CLEAR すべての変数を初期化します。

CLNG 単精度整数値, 単精度実数値, 倍精度実数値を、倍精度整数値に変換します。

CONST 定数を宣言します。

CONST BOOL 論理型定数を宣言します。

COS 余弦を返します。

CSNG 単精度整数値, 倍精度整数値, 倍精度実数値を、単精度実数値に変換します。

CVD 文字列を数値データに変換します。

CVI 文字列を数値データに変換します。

CVL 文字列を数値データに変換します。

CVS 文字列を数値データに変換します。

DATE$ = "文字列" 日付を設定します

DATE$ 日付を返します。

DATECALC$ 指定日から指定日数を加減算した日を返します。

DATEDIFF 指定日1から指定日2までの日数を返します。

DATENUM 指定日を日数に換算して返します。

DAY 指定日の日を返します。

DEFBOL 指定された文字で始まる変数を論理型に定義します。

DEFDBL 指定された文字で始まる変数を倍精度実数型に定義します。

DEFINE STRUCT~END STRUCT 構造体を宣言します。

DEFINT 指定された文字で始まる変数を単精度整数型に定義します。

DEFLNG 指定された文字で始まる変数を倍精度整数型に定義します。

DEFSNG 指定された文字で始まる変数を単精度実数型に定義します。

DEFSTR 指定された文字で始まる変数を文字型に定義します。

Page 27: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

27

名前 内容

ENUM~END ENUM 列挙型定数を宣言します。

EXP 底がeである指数関数の値を返します。

FIRSTDAY$ 指定日の月初日を返します。

FIX 引数の整数部分を返します。

GRP$ 指定したグラフィック文字を返します。

HEX$ 10進数を16進数の文字列に変換します。

HOUR 指定時刻の時を返します。

INKEY$ 押されているキーの情報を得ます。

INSTR 文字列中の指定文字列を検索します。

INT 引数を超えない 大の整数値を返します。

JUDGE$ 判定式の値判定を行います。

LASTDAY$ 指定日の月末日を返します。

LCASE$ 文字列中の大文字(半角英字)を小文字に変換します。

LEFT$ 文字列の左側から任意の長さの文字列を抜き出します。

LEFTB$ 文字列の左側から任意のバイト数分の文字列を抜き出します。

LEN 文字列の長さを文字数で返します。

LENB 文字列の長さをバイト数で返します。

LET 変数に値を代入します。

LINSTR 文字列中の指定文字列を検索し、その数を返します。

LOCAL ローカル変数を宣言します。

LOCAL BOOL 論理型ローカル変数を宣言します。

LOCAL CONST ローカル定数を宣言します。

LOCAL CONST BOOL 論理型ローカル定数を宣言します。

LOCAL ENUM~END ENUM 列挙型ローカル定数を宣言します。

LOCAL STRUCT ローカル構造体変数を宣言します。

LOG 自然対数を返します。

LTRIM$ 文字列の前から全半角スペースを削除します。

MID$ = “文字列” 文字列の一部を置き換えます。

MID$ 文字列の中から任意の長さの文字列を抜き出します。

MIDB$ = “文字列” 文字列の一部をバイト単位で置き換えます。

MIDB$ 文字列の中から任意のバイト数分の文字列を抜き出します。

MINUTE 指定時刻の分を返します。

MKD$ 数値データを、数値の内部表現に対応した文字列に変換します。

MKI$ 数値データを、数値の内部表現に対応した文字列に変換します。

MKL$ 数値データを、数値の内部表現に対応した文字列に変換します。

MKS$ 数値データを、数値の内部表現に対応した文字列に変換します。

MONTH 指定日の月を返します。

OCT$ 10進数を8進数の文字列に変換します。

RANDOMIZE 新しい乱数系列を設定します。

REPLACE$ 文字列中の指定文字を別の文字列に置き換えます。

RIGHT$ 文字列の右側から任意の長さの文字列を抜き出します。

RIGHTB$ 文字列の右側から任意のバイト数分の文字列を抜き出します。

RND 0以上1未満の乱数を返します。

ROUND 指定数値を指定位置で四捨五入します。

RTRIM$ 文字列の後から全半角スペースを削除します。

SECOND 指定時刻の秒を返します。

SGN 符号を調べます。

SIN 正弦を返します。

SPACE$, SPC 任意の数の空白文字を返します。

SPRIT$ 区切り文字列から文字列を区切り、1次元配列の文字列を生成します。

SQR 平方根を返します。

STR$ 数値を文字列に変換します。

STRCOMP 2つの文字列を比較した結果を返します。

STRCOMPB 2つのバイナリ文字列を比較した結果を返します。

Page 28: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

28

名前 内容

STRDEL$ 文字列の中から任意の位置から指定した文字長の文字列を削除します。

STRDELB$ 文字列の中から任意の位置から指定したバイト長の文字列を削除します。

STRING$ 任意の文字を任意の数だけ連結した文字列を返します。

STRINS$ 文字列の中から任意の位置に文字列を挿入します。

STRINSB$ 文字列の中から任意の位置にバイトデータ文字列を挿入します。

STRUCT 構造体変数を宣言します。

SWAP 2つの整数の値を入れ替えます。

TAB 出力対象行の任意の位置まで空白を出力します。

TAN 正接を返します。

TIME$ = "文字列" 時刻を設定します

TIME$ 時刻を返します。

TIMECALC$ 指定時刻から指定秒数を加減算した時刻を返します。

TIMEDIFF 指定時刻1から指定時刻2までの秒数を返します。

TIMENUM 指定時刻を秒数に換算して返します。

TIMER 紀元(1970-01-01 00:00:00(UTC))からの経過秒数を返します。

TRIM$ 文字列の前後から全半角スペースを削除します。

TRUNC 指定数値を指定位置で切り捨てます。

UCASE$ 文字列中の小文字(半角英字)を大文字に変換します。

USING$ 文字列や数値等を指定した書式に変換します。

VAL 文字列表記の数値を実際の数値に変換します。

WEEK 指定日の曜日を返します。

WEEKS 指定日が今年の第何週目かを返します。

YEAR 指定日の年を返します。

配列に関する関数・命令

CDIM 配列の次元数を返します。

DIM 配列変数を宣言します。

ERASE 配列変数を削除します。

LDIM 配列の要素数を返します。

SEARCH 配列変数の中から指定された値を持つ要素を返します。

SPLIT 文字列を指定した区切り文字で分割し、配列変数へ格納します。

繰り返し・条件分岐に関する関数・命令

DO ~ LOOP DOからLOOPまでの区間中にある一連の命令を、無条件に繰り返して実行しま

す。

DO~LOOP UNTIL DOからLOOPまでの区間中にある一連の命令を、指定条件を満たさない(FALSE)

間、繰り返して実行します。

DO~LOOP WHILE DOからLOOPまでの区間中にある一連の命令を、指定条件を満たす(TRUE)間、

繰り返して実行します。

DO UNTIL~LOOP DOからLOOPまでの区間中にある一連の命令を、指定条件を満たさない(FALSE)

間、繰り返して実行します。

DO WHILE~LOOP DOからLOOPまでの区間中にある一連の命令を、指定条件を満たす(TRUE)間、

繰り返して実行します。

EXIT DO DO~LOOP文の繰り返しから脱出します。

EXIT FOR FOR~NEXT文の繰り返しから脱出します。

EXIT WHILE WHILE~WEND文の繰り返しから脱出します。

FOR ~ TO ~ STEP ~ NEXT FORからNEXTまでの区間中にある一連の命令を、繰り返して実行します。

IF ~ THEN ~ ELSE ~ END IF 式の値の条件判定を行います。

SELECT CASE ~ END SELECT 式の値と続くCASE文に従い、処理を分岐します。

WHILE ~ WEND WHILEからWENDまでの区間中にある一連の命令を、指定条件を満たす(TRUE)

間、繰り返します。

ファイル・フォルダに関する関数・命令

ATTR$ ファイルの属性を返します。

CHAIN メモリ上のプログラムからファイル上のプログラムへ実行を移します。

CHDIR 作業フォルダを変更します。

CLOSE ファイルをクローズします。

Page 29: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

29

名前 内容

COMMON CHAIN実行時に移されたプログラムに変数を引き継ぎます。

DIREXISTS フォルダが存在するか確認し、結果を返します。

EOF ファイルの終了コードを調べます。

FIELD ランダムバッファにフィールド変数を割り当てます。

FILECMP ファイルを比較します。

FILECOPY ファイルをコピーします。

FILEEXISTS ファイルが存在するか確認し、結果を返します。

FILES 指定されたフォルダにあるファイルの名前を出力します。

FIND 指定されたファイルの中から指定された文字列を探し、該当行を出力します。

FINPUT ファイルのデータを変数に入力します。

FINPUT ALL ファイルの全データを変数に入力します。

FPRINT, FPRINT USING 文字列や数値等のデータをファイルに出力します。

GET ファイルのデータをランダムバッファに読み込みます。

GREP 指定されたフォルダにあるファイルの中から指定された文字列を探し、該

当行を出力します。

INCLUDE メモリ上のプログラムから、ファイルのプログラムを参照できるように追加

します。

INFILE ファイル中の指定文字列を検索し、見つかった行を返します。

INPUT キーボードやファイルから入力されたデータを変数に代入します。

INPUT$ キーボードやファイルから指定された長さの文字列を読み込みます。

KILL ファイルを削除します。

LINE FINPUT ファイルから1行単位のデータを文字型変数に代入します。

LINE INPUT キーボードやファイルから入力された1行単位のデータを文字型変数に代入

します。

LINFILE ファイル中の指定文字列を検索し、その行数を返します。

LOC ファイル内の論理的な現在位置を返します。

LOF ファイルの大きさを返す。

LSET ランダムバッファのフィールドに左詰めでデータを代入します。

MKDIR フォルダを作成します。

NAME ファイル/フォルダの名前を変更します。

OPEN ファイルをオープンします。

PRINT, ?,PRINT USING 文字列や数値等のデータを画面、またはファイルに出力します。

PUT ランダムバッファのデータをファイルに書き出します。

RMDIR フォルダを削除します。

RSET ランダムバッファのフィールドに右詰めでデータを代入します。

SET ファイルの属性を設定します。

SPOOL ON/OFF コンソールの出力内容をファイルに書き出します。

USERFS RW/RO ユーザ領域の書き込み許可・禁止を切り替えます。

WIDTH 画面やファイルに対して1行の長さを指定します。

WRITE 文字列や数値等のデータを画面、またはファイルに出力します。

サブルーチンに関する関数・命令

(ラベル): サブルーチンのラベルを設定します。

CALL SUB~END SUBで定義したサブルーチンを呼び出します。

DEF FN ユーザ定義関数を定義します。

FUNCTION ~ END FUNCTION ユーザ定義関数を定義します。

EXIT FUNCTION ユーザ定義関数から脱出します。

EXIT SUB 引数を使用するサブルーチンから脱出します。

GOSUB 指定したラベル名または行番号のサブルーチンを呼び出します。

GOTO 指定したラベル名または行番号へ移動し、そこからプログラムを実行します。

KEY ON/OFF/STOP ファンクションキーによる割り込みの許可, 禁止, 停止を指定します。

ON ERROR GOSUB エラーが発生した際に分岐するサブルーチンを定義します。

ON ERROR GOTO エラーが発生した際の移動先を定義します。

ON ERROR RESUME NEXT エラーが発生した際に次の行から再開するよう定義します。

ON KEY GOSUB ファンクションキー押下により分岐するサブルーチンを定義します。

Page 30: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

30

名前 内容

ON STOP GOSUB Pause/Ctrl+Cキー押下により分岐するサブルーチンを定義します。

ON TIME$ GOSUB 指定時刻に分岐するサブルーチンを定義します。

ON TIMER GOSUB 指定間隔で分岐するサブルーチンを定義します。

ON ~ GOSUB 指定したいずれかのサブルーチンを呼び出します。

ON ~ GOTO 指定したいずれかの行へ移動し、そこからプログラムを実行します。

RESUME ON ERROR GOTO処理を終了し、指定の移動先からプログラムを再開します。

RETURN サブルーチンを終了し、元のプログラムに処理を戻します。

STOP ON/OFF/STOP Pause/Ctrl+Cキーによる割り込みの許可, 禁止, 停止を指定します。

SUB~END SUB 引数を使用するサブルーチンを定義します。

TIME$ ON/OFF/STOP TIME$割り込みの許可, 禁止, 停止を指定します。

TIMER ON/OFF/STOP TIMER割り込みの許可, 禁止, 停止を指定します。

スレッドに関する関数・命令

ATTACH THREAD スレッドを作成します。

DETACH THREAD スレッドを終了します。

SELECT THREAD 指定のスレッドをカレントにします。

THREAD STATUS スレッドの状態を取得します。

THREAD INFO スレッドの情報を取得します。

グラフィック描画に関する関数・命令

ARC コンソール画面に円弧を描画します。

CIRCLE コンソール画面に円を描画します。

DRAWFILE コンソール画面に指定ファイルの画像を描画します。

DRAWSTYLE 図形描画のスタイルを設定します。

DRAWTEXT コンソール画面に文字を描画します。

LINE コンソール画面に線分を描画します。

PRESET コンソール画面に描画された点を消去します。

PSET コンソール画面に点を描画します。

RECTANGLE コンソール画面に矩形を描画します。

Linux連携の関する関数・命令

SHMLOW OPEN 共有メモリを使用開始します。

SHMLOW CLOSE 共有メモリを使用終了します。

SHMLOW WRITE 共有メモリに値を書き込みます。

SHMLOW READ 共有メモリから値を読み取ります。

その他の関数・命令

ASSERT 式を評価し、結果が偽の場合にエラーとします。

CLOCK 経過時間の指標となる値を秒単位で得ます。

HOSTNAME$ システムのホスト名を取得します。

MSGBOX メッセージボックスを表示します。

Page 31: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

31

2.2 i99-BASICメイン操作に関する関数・命令

2.2.1 AUTO

命令 i99-BASIC -

機 能 コンソール画面で入力時、行番号を自動的に発生します。

書 式 AUTO <行番号> [, <増分>]

指定した行番号から、行番号を自動的に発生します。

AUTO

前回中断した行番号から、行番号を自動的に発生します。

LOAD, NEWコマンド呼び出し時、前回中断した行番号の情報はクリアされます。

<行番号>

自動的に発生させる 初の行番号を指定します。

省略時、10です。

<増分>

行番号付きプログラムを入力した後、次に発生させる行番号の増分を指定します。

省略時、10です。

プログラム入力編集中に、直接コマンド実行や、Pause/Ctrl+Cを押下すると、行番号の自

動発生は終了します。

また、中身の無い行番号を入力しても、行番号の自動発生は終了します。

注 意 ・行番号の自動発生は、プログラム入力中のみ有効です。

・コンソール画面でのみサポートされます。

・プログラム内では使用できません。

使用例1 AUTO

10

<行番号>を省略すると、行番号10から開始されます。

以降、1行入力してEnterキーを押す度に20,30…と行番号が10ずつ増加しながら自動的

に表示されます。

使用例2 AUTO 100

100

<行番号>を指定すると、指定された行番号から開始されます。

以降、1行入力してEnterキーを押す度に110,120…と行番号が10ずつ増加しながら自動

的に表示されます。

使用例3 AUTO 1000, 100

1000

<行番号>と<増分>を指定すると、指定された行番号から開始され、

以降、1行入力してEnterキーを押す度に1100,1200…と行番号が<増分>で指定した値だ

け増加しながら自動的に表示されます。

Page 32: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

32

2.2.2 BREAK

命令 i99-BASIC i99-REAL

機 能 指定行にブレークポイントを設定/解除します。

ブレークポイントを掛ける行が設定済みの場合、ブレークポイントは解除されます。何

も設定されてない場合、ブレークポイントは設定されます。

書 式 BREAK <行番号>

指定行をブレークポイントに設定します。

BREAK <行番号>, <条件文>

条件付きで指定行をブレークポイントに設定します。

BREAK CLEAR

すべてのブレークポイントを解除します。

BREAK LIST

ブレークポイントのリストを表示します。

<行番号>

ブレークポイントに設定する行を正数で指定します。

<条件文>

ブレークを掛ける条件を指定します。

注 意 プログラム内では使用できません。

備 考 ブレークポイントによって停止したプログラムはCONT(→「2.2.7 CONT」)で再開でき

ます。

使用例1 BREAK 5

行番号5にブレークポイントを設定します。

使用例2 BREAK 5, "I=10"

<条件文>を指定すると、指定された行番号に到達した時点で指定された条件を満たして

いる場合にブレークが掛かるようにブレークポイントが設定されます。

使用例3 BREAK 5, "A$="+CHR$(34)+”5”+CHR$(34)

文字列の比較を用いる場合、ダブルクォーテーション(“)は、CHR$(34)に読み替えます。

使用例4 BREAK CLEAR

設定されているすべてのブレークポイントを解除します。

Page 33: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

33

2.2.3 CLS

命令 i99-BASIC i99-REAL

機 能 画面をクリアします。

書 式 CLS [<モード>]

<モード>

画面クリア時のモードを指定します。

1:テキストのみクリア(デフォルト)

2:グラフィック画面のみクリア

3:テキストとグラフィック画面をクリア

備 考 ・COLOR(→「2.2.4 COLOR」)で変更した文字色, 背景色はリセットされます。

・LOCATEで移動したカーソル位置はリセットされます。

使用例1 CLS

<モード>を省略すると、1が指定されたものとして動作します。

入力された文字列およびコマンドの実行によって出力された文字列をクリアします。

使用例2 CLS 2

グラフィック描画に関する関数、命令(→「2.9 グラフィック描画に関する関数・命令

」)によって出力された図形や文字列をクリアします。

2.2.4 COLOR

命令 i99-BASIC -

機 能 表示する文字の文字色・背景色を変更します。

書 式 COLOR <文字色> [, <背景色>]

<文字色>, <背景色>

色を以下の値で指定します。背景色を省略した場合、文字色だけを変更します。

0:黒

1:青

2:赤

3:紫

4:緑

5:シアン

6:黄

7:白

備 考 ・COLORにより設定された色はグラフィック描画に関する関数・命令(→「2.9 グラフ

ィック描画に関する関数・命令」)の表示結果に反映されます。

・COLORにより設定された色は次にCOLORが実行されるまで保持されます。

使用例1 COLOR 0, 1

文字色を黒、背景色を青に設定します。

使用例2 COLOR 2

文字色を赤に設定します。

Page 34: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

34

2.2.5 CONFIG

命令 i99-BASIC i99-REAL

機 能 i99-BASICの設定を行います。

書 式 書式1>CONFIG UPDATE

書式2>CONFIG PASSWORD

書式3>CONFIG SET LPTNAME = <ネットワークプリンタ名>

書式4>CONFIG SYSKEY

<書式1>

第1引数が「UPDATE」の場合、BASICパッケージを更新します。

CONFIG UPDATE BASIC

外部記憶デバイスに入った更新用パッケージを、i99-BASIC更新用の予約領域にコ

ピーします。(外部記憶デバイスを必ず接続した状態で行ってください)

次回起動時、コピーされた更新用パッケージを使って、BASICおよびドライバが更新

されます。

<書式2>

第1引数が「PASSWORD」の場合、システムのパスワード設定確認のダイアログが出現します。

CONFIG PASSWORD

システムのパスワード設定確認ダイアログを起動します。

このパスワードは、自動起動プログラムの登録やパッケージ更新など、システムの設

定を変更する際の認証に用いられます。

<書式3>

第1引数が「SET」で、第2引数が「LPTNAME」の場合、LLISTコマンド等の印刷対象となるプ

リンタ名を指定できます。

CONFIG SET LPTNAME= <プリンタ名>

印刷したいプリンタ名の記述形式は、以下の3通りがあります。

形式1.「cups: <プリンタ名>」

Linuxの標準印刷システムである、cupsサービスを使った印刷を行います。

ここで <プリンタ名> は、印刷したいプリンタ名を指定します。

省略して、単に「cups:」とのみすると、cupsサービスで指定した標準プリンタが採

用されます。

形式2.「direct: <ネットワークプリンタのIPアドレス>」

ネットワークプリンタの中には、9100番ポートに対して直接印刷機能を有するものが

あり、この機能を利用して直接印刷を行います。

例えば、ネットワークプリンタのIPアドレスが、「192.168.0.1」の場合、記述する

ネットワークプリンタは、「direct:192.168.0.1」となります。

形式3.「pdf: <PDFファイル名>」

プリンタに印刷する代わりに、指定したPDFファイル名に、PDFファイルを出力します。

例えば、LLISTコマンドを複数回呼び出すと、上書きされるので注意ください。

<書式4>

第1引数が「SYSKEY」の場合、復旧用USB鍵の登録管理ダイアログが出現します。

復旧用USB鍵を用いる事で、対話入力が無効状態のi99-BASICからの復旧手段を与えます。

即ち、「POWER ON」コマンドの「S」オプションで、対話入力を無効した i99-BASICに対し

Page 35: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

35

て、システムに復旧用USB鍵を差し込むと、対話入力ができるようになります。

登録管理ダイアログでは、復旧用USB鍵の登録と、登録済みUSB鍵の削除が行えます。

復旧用USB鍵として用いる事が出来るのは、USBメモリのみです。

登録すると、USBメモリに対して、システムの管理ファイルが追加されます。

注 意 プログラム内では使用できません。

使用例1 CONFIG UPDATE BASIC

USBメモリに入っているi99-BASICの更新用パッケージで、i99-BASICの更新予約を行い

ます。

使用例2 CONFIG SET LPTNAME=”cups:PRINTER001”

cups印刷のプリンタ名を、PRINTER001に設定します。

Page 36: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

36

2.2.6 CONSOLE

命令 i99-BASIC -

機 能 ファンクション・ツールバーおよびボタンツールバーの表示を切り替えます。

書 式 CONSOLE <スイッチ1> [, <スイッチ2> ]

<スイッチ1>

1 : ファンクション・ツールバーを表示します(デフォルト)

0 : ファンクション・ツールバーの表示を消します

<スイッチ2>

1 : ボタンツールバーを表示します(デフォルト)

0 : ボタンツールバーの表示を消します

使用例1 CONSOLE 0

ファンクション・ツールバーを非表示にします。

使用例2 CONSOLE 1,0

ファンクション・ツールバーを表示し、ボタンツールバーを非表示にします。

2.2.7 CONT

命令 i99-BASIC i99-REAL

機 能 STOPまたはブレークポイントによって停止したプログラムを再開します。

書 式 CONT

注 意 プログラム内では使用できません。

また、実行停止のタイミングや、実行停止中にプログラムを修正した場合の内容により継

続不可能と判断された場合、再開できません。

使用例 CONT

2.2.8 CONTTRACE

命令 i99-BASIC i99-REAL

機 能 STOPまたはブレークポイントによって停止したプログラムを自動トレースで再開しま

す。

書 式 CONTTRACE <待ち時間[ms]>

<待ち時間[ms]>

待ち時間を0~999で指定します。

注 意 プログラム内では使用できません。

使用例 CONTTRACE 500

プログラムを停止行から500ms間隔でトレース実行します。

Page 37: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

37

2.2.9 COPY

命令 i99-BASIC -

機 能 画面のコピーを印刷します。

書 式 COPY

使用例 COPY

2.2.10 CSRLIN

関数 i99-BASIC i99-REAL

機 能 テキスト画面上の現在のカーソル位置(Y座標)を返します。

書 式 CSRLIN

備 考 カーソル位置のX座標はPOS(→「2.2.33 POS」)により取得できます。

使用例 Y = CSRLIN

変数Yに現在のカーソル位置(Y座標)を代入します。

2.2.11 DATA

命令 i99-BASIC i99-REAL

機 能 READで読み込まれる数値定数, 文字定数を定義します。DATA行を複数置いた場合、READ

は先頭行から順番にDATA行を読み込んでいきます。

書 式 DATA <定数> [, <定数> …]

<定数>

READで読み込むデータを指定します。

備 考 ・文字定数にカンマや空白を置きたい場合は、その文字定数をダブルクォーテーション

(“)で括ります。

・READ(→「2.2.36 READ」)と組み合わせて使用します。

注 意 ・直接コマンドでは使用できません。

・変数は指定できません。指定した場合は、変数名の文字定数として扱われます。

使用例 10 READ NAME$,ID,ADDR$

20 DATA “Yamada”, 10, “Hiroshima”

30 PRINT NAME$

40 PRINT ID

50 PRINT ADDR$

RUN

Yamada

10

Hiroshima

READで指定した変数にDATAで指定した値を順に代入します。

上記のREAD,DATAによる値の代入は下記の文と等価です。

NAME = “Yamada”

ID = 10

ADDR$ = “Hiroshima”

Page 38: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.12 DELETE

命令 i99-BASIC i99-REAL

機 能 プログラムリストの指定範囲を削除します。

書 式 DELETE <始点行番号> [ – <終点行番号>]

パラメータの指定と削除範囲の関係は、以下の通りです。

パラメータ 動 作

<始点行番号> - <終点行番号> 始点行番号から終点行番号までのプログラ

ムを削除します。

<始点行番号> 始点行番号のプログラムを削除します。

始点行番号および終点行番号の両方とも、安全の為に省略はできません。

注 意 プログラム内では使用できません。

始点行番号、終点行番号の両方とも、整数型定数のみ指定できます。

指定範囲に編集不可行があると、削除できません。GUARD OFFコマンドで編集可能にして再

度実行してください。

「LOAD」コマンドで読み込まれたプログラムファイルに対してのみ設定できます。ワーカー

スレッドおよび「INCLUDE」コマンドで読み込んだファイルは設定できません。

使用例1 DELETE 10-40

行番号10から40までのコードをすべて削除します。

使用例2 DELETE 20

行番号20のコード1行分を削除します。

2.2.13 DSKF

関数 i99-BASIC i99-REAL

機 能 ディスクの空き容量をKB単位で返します。

書 式 DSKF(<ディスク>)

<ディスク>

空き容量を求めるディスクを以下の値で指定します。

0:システム領域(i99-BASIC更新パッケージ、コマンド追加パッケージ用)

1:ユーザ領域(BASICプログラム保存用)

使用例 PRINT DSKF(0)

システム領域の空きディスク容量をKB単位で表示します。

Interface Corporation - -

38

Page 39: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

39

2.2.14 EDIT

命令 i99-BASIC -

機 能 コンソール画面で、指定された行を画面上に表示し、Page Up / Page Downキーなどに

よるプログラム編集を可能にします。

書 式 EDIT <行番号>

<行番号>

編集する行を指定します。

このコマンドを呼び出すと、一旦テキスト画面がクリアされ、指定行が表示されます。

この後、Page Upキーで上の行が、Page Downキーで下の行が表示&スクロールされます。

編集中に、Pause/Ctrl+Cを押下すると、本編集モードは終了します。

注 意 ・コンソール画面でのみ使用できます。

・プログラム内では使用できません。

・Page Up → Page Down および Page Down → Page Up時、進行方向に対して中途の文字が

表示されている時に、2行分ほど表示がスキップする場合があります。

使用例 EDIT 20

上記の例では、実行後に行番号20のコードが画面上に表示されます。

その後Page Upキーを押すと行番号10のコード、Page Downキーを押すと行番号30のコード

が追加で表示され、コードを1行ずつ確認しながら編集することができます。

2.2.15 END

命令 i99-BASIC i99-REAL

機 能 プログラムを終了します。

書 式 END

備 考 メインスレッドから呼ばれると、全てのスレッドを終了させます。

ワーカースレッドから呼ばれると、自身のスレッドのみ終了させます。

使用例 END

2.2.16 ERL

関数 i99-BASIC i99-REAL

機 能 後に発生したエラーの行番号を返します。

書 式 ERL

使用例 C = ERL

変数Cに 後に発生したエラーの行番号を代入します。

Page 40: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

40

2.2.17 ERM$

関数 i99-BASIC i99-REAL

機 能 後に発生したエラーメッセージを返します。

書 式 ERM$

備 考 エラーコードリファレンス(→「8.1 エラーコードリファレンス」)にエラーメッセー

ジの一覧があります。

使用例 SMP$ = ERM$

変数SMP$に 後に発生したエラーメッセージ代入します。

2.2.18 ERR

関数 i99-BASIC i99-REAL

機 能 後に発生したエラーコードを返します。

書 式 ERR

備 考 エラーコードリファレンス(→「8.1 エラーコードリファレンス」)にエラーコードの

一覧があります。

使用例 C = ERR

変数Cに 後に発生したエラーコードを代入します。

Page 41: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

41

2.2.19 ERROR

命令 i99-BASIC i99-REAL

機 能 エラー発生のシミュレート、エラーコードのユーザー定義を行います。

書 式 ERROR <エラーコード>

<エラーコード>

発生させるエラーコードを指定します。

エラーコードには任意の値を指定できます。ON ERROR GOSUBを使用することで、独自

のエラー処理を行うことができます。

使用例1 ERROR 6

エラーコード6のエラーを発生させます。

使用例2 10 ON ERROR GOSUB ONERR

100 ERROR 1234

200 END

210 ONERR:

220 IF ERR = 1234 THEN

300 END IF

310 RETURN

行番号100を実行した時点でエラーコード1234のエラーが発生し、

ON ERROR GOSUB(→「2.7.9 ON ERROR GOSUB」)の記述に従ってサブルーチンONERRが実

行されます。ON ERROR GOSUBにより実行されるサブルーチン内でエラーコードの取得・

判定を行うことで、独自のエラーとエラー発生時の処理を定義することができます。

Page 42: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.20 FILEPASSWD

命令 i99-BASIC i99-REAL

機 能 プログラムのパスワード設定確認ダイアログを起動します。

書 式 FILEPASSWD

備 考 このパスワードは、編集不可行・隠し行の設定・解除など、プログラムの設定を変更す

る際の認証に用いられます。

パスワードはファイル単位で保存されます。

一回認証されると、別プログラムに切り替えるまではパスワード入力が省略されます。

注 意 プログラム内では使用できません。

メインスレッドのプログラムに対してのみ設定できます。ワーカースレッドおよびINCLUDE

で読み込んだファイルは設定できません。

使用例 FILEPASSWD

実行すると、パスワードの設定ダイアログが開きます。ダイアログにて新パスワードと

新パスワード(確認入力)を入力してOKボタンを押すと、パスワードが設定されます。

2.2.21 GUARD ON/OFF

命令 i99-BASIC i99-REAL

機 能 プログラムリストの指定範囲を編集不可に設定します。

書 式 GUARD ON <始点行番号> [ – <終点行番号>]

指定範囲を編集不可にします。

GUARD OFF <始点行番号> [ – <終点行番号>]

設定範囲を編集可能にします。

パラメータの指定と設定範囲の関係は、以下の通りです。

パラメータ 動 作

<始点行番号> - <終点行番号> 始点行番号から終点行番号までのプログラ

ムを設定します。

<始点行番号> 始点行番号のプログラムを設定します。

始点行番号および終点行番号の両方とも、安全の為に省略はできません。

備 考 パスワードはファイル単位で保存されます。

一回認証されると、別プログラムに切り替えるまではパスワード入力が省略されます。

注 意 プログラム内では使用できません。

始点行番号、終点行番号の両方とも、整数型定数のみ指定できます。

編集不可に設定すると、DELETEコマンドによる削除、行番号指定による削除、行内容の更

新はできなくなります。

「LOAD」コマンドで読み込まれたプログラムファイルに対してのみ設定できます。ワーカー

スレッドおよび「INCLUDE」コマンドで読み込んだファイルは設定できません。

使用例1 GUARD ON 10-40

行番号10から40までのコードを編集不可にします。

使用例2 GUARD OFF 10-40

行番号10から40までのコードを編集可能にします。

Interface Corporation - -

42

Page 43: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

43

2.2.22 HELP SHOW

命令 i99-BASIC i99-REAL

機 能 マニュアルを表示します。

書 式 HELP SHOW [<マニュアル>]

<マニュアル>

表示するマニュアルを以下の数値で指定します。

省略した場合は、0になります。

0:コマンドリファレンス(標準コマンド)

1:基本マニュアル

2:マニュアル 導入編

3:マニュアル IDE編

4:コマンドリファレンス(システム監視コマンド)

5:コマンドリファレンス(I/Oコマンド)

6:データベース利用マニュアル

使用例1 HELP SHOW

コマンドリファレンス(標準コマンド)を表示します。

使用例2 HELP SHOW 1

基本マニュアルを表示します。

2.2.23 HIBERNATE

命令 i99-BASIC -

機 能 システムをハイバネートします。

次回電源投入時、作業途中の状態から再開する事ができます。

書 式 HIBERNATE

注 意 使用するコンピュータのモデルによっては、本機能を利用できない場合があります。利

用にあたっては、コンピュータの仕様を確認ください。

使用例 HIBERNATE

Page 44: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.24 HIDDEN ON/OFF

命令 i99-BASIC i99-REAL

機 能 プログラムリストの指定範囲を隠し行に設定します。

書 式 HIDDEN ON <始点行番号> [ – <終点行番号>]

指定範囲を隠し行にします。

HIDDEN OFF <始点行番号> [ – <終点行番号>]

設定範囲の隠し行を解除します。

パラメータの指定と設定範囲の関係は、以下の通りです。

パラメータ 動 作

<始点行番号> - <終点行番号> 始点行番号から終点行番号までのプログラ

ムを設定します。

<始点行番号> 始点行番号のプログラムを設定します。

始点行番号および終点行番号の両方とも、安全の為に省略はできません。

備 考 パスワードはファイル単位で保存されます。

一回認証されると、別プログラムに切り替えるまではパスワード入力が省略されます。

注 意 プログラム内では使用できません。

始点行番号、終点行番号の両方とも、整数型定数のみ指定できます。

隠し行のプログラムは編集できません。

「LOAD」コマンドで読み込まれたプログラムファイルに対してのみ設定できます。ワーカー

スレッドおよび「INCLUDE」コマンドで読み込んだファイルは設定できません。

使用例1 HIDDEN ON 10-40

行番号10から40までのコードを非表示にします。

使用例2 HIDDEN OFF 10-40

行番号10から40までのコードを表示します。

Interface Corporation - -

44

Page 45: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.25 KEY

命令 i99-BASIC -

機 能 ファンクションキーに文字列を割り付けます。

書 式 KEY <キー番号>, “<文字列>”

<キー番号>

割り当てるファンクションキーを指定します。

1~12:F1~F12 に相当

101~112:SHIFT+F1~F12に相当

<文字列>

ファンクションキーを入力した際に、カーソル位置に挿入される文字列を指定します。

以下の文字列を与えると、カーソル位置に文字列を挿入するのでなく、ショートカット

動作を行います。

パラメータ 動 作

*STOP Ctrl+Cキーを押下したと同じに、実行中のプログラムを強

制停止させます。

*CON / *IDE 画面切り替えを行います。

*INSLINE 次の行に空行を挿入して、カーソルを移動します。

使用例1 KEY 1, “Hello”

F1キーを入力すると「Hello」という文字列がカーソル位置に挿入されるよう

設定します。

使用例2 KEY 104, “LIST”+CHR$(10)

SHIFT+F4キーを入力するとLISTコマンドが実行されるよう設定します。

(文字列と改行コードをカーソル位置に挿入することで、改行コード以前の文字列をコ

マンドとして実行するという動作になります。)

2.2.26 KEY LIST

命令 i99-BASIC -

機 能 ファンクションキーに割り付けられている文字列のリストを表示します。

書 式 KEY LIST

使用例 KEY LIST

- - Interface Corporation

45

Page 46: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.27 LIST/LLIST

命令 i99-BASIC i99-REAL

機 能 メモリにあるプログラムの全部、または一部を表示あるいは印刷します。

書 式 LIST [<始点行番号>] [ – <終点行番号>]

メモリにあるプログラムの全部、または一部を表示します。

LLIST [<始点行番号>] [ – <終点行番号>]

メモリにあるプログラムの全部、または一部を印刷します。

パラメータの指定とリストの表示関係は、以下の通りです。

パラメータ 動 作

<始点行番号> - <終点行番号> 始点行番号から終点行番号までのリストを

表示します。

<始点行番号> - 始点行番号からプログラム終了行までのリ

ストを表示します。

- <終点行番号> プログラム開始行から終点行番号までのリ

ストを表示します。

<始点行番号> 始点行番号のみをリスト表示します。

行番号指定を省略 全てのプログラムをリスト表示します。

備 考 以下は、LISTコマンドのみ有効です。

現在のカーソル位置から 下行まで一旦クリアした後、画面にリスト表示されます。

画面表示中に スペースキーを押下すると、画面表示を一時停止できます。解除は別のキー

を押下します。

画面表示中に、Pause/Ctrl+Cを押下すると、表示は中断します。

Ver.2.20以降より、コンソール画面では中断行を黄色表示します。

注 意 プログラム内では使用できません。

始点行番号、終点行番号の両方とも、整数型定数のみ指定できます。

「INCLUDE」コマンドで読み込んだプログラムは表示できません。

使用例1 LIST

メモリにあるプログラムをすべて表示します。

使用例2 LIST 100 – 200

メモリにあるプログラムのうち、行番100から200までのコードを表示します。

使用例3 LLIST

メモリにあるプログラムをすべて印刷します。

Interface Corporation - -

46

Page 47: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

47

2.2.28 LOAD

命令 i99-BASIC i99-REAL

機 能 ファイルのプログラムをメモリにロードします。

書 式 LOAD <ファイル名>

<ファイル名>

ロードするファイル名を指定します。

作業が完了すると、現在のカーソル位置から 下行まで一旦クリアされます。

読み取れない時、拡張子「.BAS」がないと、自動的に付加して再試行します。

注 意 プログラム内では使用できません。

コンソール画面で、行番号が付加されてないプログラムをロードした時、編集操作に行

番号が必要な為、自動的に行番号が付加されます。(「RENUM」コマンド呼び出しと同

じ効果) IDE画面では、プログラムエリアの行番号が自明な為、特に何も行われません。

使用例1 LOAD "SAMPLE.BAS"

SAMPLE.BASを開きます。

使用例2 LOAD "SAMPLE"

適切な拡張子が指定されていない時、<ファイル名> で指定したファイル名に 「.BAS」

を自動付加して開きます。SAMPLE.BASを開きます。

2.2.29 LOCATE

命令 i99-BASIC i99-REAL

機 能 カーソルの位置を変更します。左上を0, 0とします。

書 式 LOCATE <横位置>, <縦位置>

<横位置>, <縦位置>

位置を0以上のウィンドウサイズより小さい値で指定します。

使用例 LOCATE 1,1

PRINT “Hello.”

LOCATE 2,2

PRINT “World”

RUN

Hello.

World

コンソール上で横1,縦1の位置から Hello を表示、横2,縦2の位置から World を表示し

ます。

Page 48: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

48

2.2.30 LPAGE

命令 i99-BASIC -

機 能 LPRINTしたデータをプリンタに出力します。

書 式 LPAGE

使用例 A=5

LPRINT "A="; A

LPAGE

RUN

「A=5」 という文字列を印刷します。

2.2.31 LPRINT , LPRINT USING

命令 i99-BASIC -

機 能 文字列や数値等のデータをプリンタに出力します。

ENDかLPAGEを実行すると印刷を開始します。

書 式 LPRINT [USING <書式制御文字列>;] <文字列/数値> [; | , <文字列/数値> …] [; | ,]

LPRINTは出力先がプリンタになったPRINTです。

書式について詳しくは、PRINTの説明をご参照ください。

使用例1 A=5

LPRINT "A="; A

LPAGE

RUN

「A=5」 という文字列を印刷します。

使用例2 A=123456789

LPRINT USING "###, ###. ###"; A

LPAGE

RUN

「123,456,7890」という文字列を印刷します。

使用例3 LPRINT USING "@=$$### "; "Books", 2550, "Tickets", 1440, "Drinks", 4300

LPAGE

RUN

「Books=\2550 Tickets=\1440 Drinks=\4300」という文字列を印刷します。

2.2.32 NEW

命令 i99-BASIC i99-REAL

機 能 メモリにあるプログラムを抹消し、変数を初期化します。

書 式 NEW

作業が完了すると、現在のカーソル位置から 下行まで一旦クリアされます。

注 意 プログラム内では使用できません。

使用例 NEW

Page 49: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.33 POS

関数 i99-BASIC i99-REAL

機 能 テキスト画面上の現在のカーソル位置(X座標)を返します。

書 式 POS

備 考 カーソル位置のY座標はCSRLIN (→「2.2.10 CSRLIN」)により取得できます。

使用例 X=POS

カーソル位置のX座標を変数Xへ代入します。

2.2.34 POWER ON

命令 i99-BASIC i99-REAL

機 能 自動起動プログラムを登録します。

電源投入時、登録したプログラムが自動で実行されます。

書 式 POWER ON <ファイル名>[, <スイッチ>]

<ファイル名>

自動起動させるプログラムのファイル名を指定します。

空の文字列を指定すると、登録されている自動起動プログラムが解除されます。

<スイッチ>

自動起動プログラム登録後の動作を指定します。

スイッチ 動 作

R 再起動しますS 次回起動時からコマンド入力を禁止します

※事前にCONFIG SYSKEYでコマンド入力を許可に

戻すためのUSBドングルキーを作成してください。

※各スイッチはORで指定できます。

注 意 ・ 行番号が付加されてないプログラムをコンソール画面でロードすると、自動的に行番号

が付加されますが、「POWER ON」コマンドで自動実行される場合は、行番号を付けない

まま実行されます。このプログラムを修正する場合は、「RENUM」で行番号を付加してく

ださい。

・ BASIC管理領域がRead Onlyの場合に、「管理領域が書き込み不可に設定されています。

設定を更新できません」とエラー警告が出される場合があります。

この時は、USERFSコマンド(P.161)を用いて読み書き可能に変更してから、再度コマンド

を実行してください。

使用例1

POWER ON “START.BAS”

次回以降電源投入時に START.BAS を自動実行する様にします。

使用例2

POWER ON “”

電源投入時にプログラムを自動実行しない様にします。

使用例3

POWER ON “START.BAS”, RS

次回以降電源投入時に START.BAS をコマンド入力禁止で自動実行する様にし、再起動

を行います。

- - Interface Corporation

49

Page 50: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

50

2.2.35 QUIT, SYSTEM

命令 i99-BASIC i99-REAL

機 能 i99-BASICを終了します。

呼び出し元に復帰します。

書 式 QUIT

SYSTEM

使用例1 QUIT

使用例2 SYSTEM

2.2.36 READ

命令 i99-BASIC i99-REAL

機 能 DATAで用意した数値や文字のデータを読み込み、変数に代入します。

始めから、あるいは途中からDATAを読み直すにはRESTOREを使います。

書 式 READ <変数> [, <変数> …]

<変数>

DATAから読み込んだデータを格納する変数を指定します。

数値定数を読み込む場合は、文字変数と数値変数のいずれでも指定できます。

備 考 変数の数がDATAのデータ数を超えた場合は、次のDATAのデータを続けて読み込みます。

変数の数がDATAのデータ数よりも少ない場合は、読まれなかったデータから次のREAD

が読み始めます。

READ全体の変数の数がDATA全体のデータ数を超えた場合は、エラーとなります。READ

全体の変数の数がDATA全体のデータ数よりも少ない場合は、余分のデータは無視されま

す。

READでDATAを読み進めている途中にDELETEでプログラムの一部が削除された場合、次の

READは先頭行からDATAを検索し直します。

注 意 直接コマンドでは使用できません。

使用例

10 DATA 1, 2

20 DATA 3,4,5,6

30 READ A, B, C

40 PRINT A

50 PEINT B

60 PRINT C

RUN

1

2

3

DATAコマンドで指定した値 [1,2,3,4,5,6] を 先頭からREADコマンドで指定した変数

へ代入します。

Page 51: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

51

2.2.37 REBOOT, NEW ON

命令 i99-BASIC -

機 能 システムを再起動します。

書 式 REBOOT

NEW ON

使用例1 REBOOT

使用例2 NEW ON

2.2.38 REM, ‘

命令 i99-BASIC i99-REAL

機 能 プログラムにコメントを入れます。

書 式 REM <コメント>

‘ <コメント>

<コメント>

一行コメントを入力します。

使用例1

REM SAMPLE1

文字列 「SAMPLE1」がコメント扱いになります。

使用例2 ‘ SAMPLE2

文字列 「SAMPLE2」がコメント扱いになります。

Page 52: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

52

2.2.39 RENUM

命令 i99-BASIC i99-REAL

機 能 プログラムの行番号を新しく付け直します。

書 式 RENUM [<新行番号>][, <旧行番号>][, <増分>]

RENUM DELETE

プログラムの行番号をすべて削除します。

<新行番号>

新しく付ける行番号の初期値を指定します。

省略した場合、10になります。

<旧行番号>

行番号を付け替え始める行を指定します。

省略した場合、プログラムの先頭行になります。

<増分>

新しく付ける行番号の増分を指定します。

省略した場合、10になります。

備考1 GOTO, GOSUBで参照する行番号も新しい行番号に更新します。

備考2 プログラム内に編集不可行・隠し行があると、行番号を付け直す前にパスワードの認証

が行われます。

パスワードはファイル単位で保存されます。

一回認証されると、別プログラムに切り替えるまではパスワード入力が省略されます。

注意1 プログラム内では使用できません。

注意2 プログラムの行番号をすべて削除する場合、プログラム内に行番号を参照するGOTO,

GOSUBがあれば、ラベルを参照するように事前に修正してください。

使用例1

RENUM

プログラムの先頭から順にすべての行に対して10,20,30… と10から開始し10ずつ増加

しながら行番号を付けます。

使用例2

RENUM 100

<新行番号>を指定すると、プログラムの先頭から順にすべての行に対して指定した

<新行番号> から開始して100,110,120… と10ずつ増加しながら行番号を付けます。

使用例3

RENUM 1000, 100

<新行番号>,<旧行番号>を指定すると、指定した<旧行番号>以降の行に対して指定した<

新行番号> から開始して1000,1010,1020… と10ずつ増加しながら行番号を付けます。

指定した<旧行番号>より前の行番号は保持されます。

使用例4

RENUM 100, 10, 20

<新行番号>,<旧行番号>,<増分>を指定すると、指定した<旧行番号>以降の行に対して指

定した<新行番号> から開始して100,120,140… と<増分>で指定した値だけ増加しなが

ら行番号を付けます

使用例5

RENUM DELETE

すべての行番号を削除します。

Page 53: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

53

2.2.40 RESTORE

命令 i99-BASIC i99-REAL

機 能 READで読み込むDATA行の先頭行を指定します。

書 式 RESTORE [<ラベル名/行番号>]

<ラベル名/行番号>

READで読み込むDATA行の先頭行を指定します。

省略した場合、プログラムの先頭行からDATA行を読み込みます。

注 意 直接コマンドでは使用できません。

使用例1 10 DATA 1,2,3

20 READ A,B,C

30 DATA 4,5,6

40 RESTORE

50 READ D,E,F

60 PRINT D

70 PRINT E

80 PRINT F

RUN

1

2

3

<ラベル名/行番号>を省略すると、READでの読込み位置が先頭になり、行番号[50]での

値取得時にDATAコマンドでセット済みの値[1,2,3,4,5,6]を先頭から読み込みます。

使用例2 10 DATA 1,2,3

20 DATA 4,5,6

30 RESTORE 20

40 READ D,E,F

50 PRINT D

60 PRINT E

70 PRINT F

RUN

4

5

6

<ラベル名/行番号>を指定すると、DATAコマンドでの読み出しREADでの読込み位置を任

意の場所に指定できます。

行番号[30]でRESTORコマンドを 20 で実行しているので、開始位置は行番号[20]の

DATA 4,5,6 となります。

Page 54: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

54

2.2.41 RUN

命令 i99-BASIC i99-REAL

機 能 メモリのプログラムを実行します。

書 式 RUN [<ファイル名>]

指定ファイルのプログラムをロードし、実行します。

RUN <開始行>

指定行からプログラムを実行します。

<ファイル名>

実行するファイル名を指定します。

<開始行>

実行開始する行番号を指定します。省略した場合、先頭行から実行します。

注 意 プログラム内では使用できません。

実行中のスレッドがある場合、停止&クリアされます。

使用例1

RUN

プログラムを先頭行から実行します。

使用例2

RUN "SAMPLE.BAS"

<ファイル名> で指定したプログラムを新たにロードし、先頭行から実行します。

使用例3

RUN 10

<開始行>で指定した行番号からプログラムを実行します。

Page 55: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.2.42 SAVE

命令 i99-BASIC i99-REAL

機 能 メモリのプログラムをファイルに保存します。

書 式 SAVE <ファイル名> [, <スイッチ>]

<ファイル名>

保存するファイル名を指定します。

拡張子「.BAS」がないと、自動的に付加します。

<スイッチ>

スイッチ ファイル形式 ファイルが存在する場合

指定なし 上書き保存

H編集不可・隠し行があればBASIC標準形式

無ければBASICテキスト形式 バックアップ

B 上書き保存

BHBASIC標準形式

バックアップ

A 上書き保存

AHBASICテキスト形式

バックアップ

※バックアップ

すでに存在するファイル名を指定した場合、そのファイルは修正時刻付きの名前にリ

ネームされて残ります。

<ファイル名>_<年>-<月>-<日>_<時>-<分>-<秒>.BAS

作業が完了すると、現在のカーソル位置から 下行まで一旦クリアされます。

備 考 ・i99-BASICでは、以下のファイル形式をサポートしています。

ファイル形式 解 説

BASIC標準形式 「編集不可」や「表示を隠す」、パスワード等の各種情報

を保持できます。

BASICテキスト形式 上記各種情報は保持されませんが、外部に持ち出してテキ

ストエディタで、UTF-8形式で閲覧できます。

・保存先のBASファイルにパスワードが設定されている場合、保存先のBASファイルに設

定されているパスワードの入力を求めます。

注 意 プログラム内では使用できません。

保存されるのは、新規に作成したプログラムか「LOAD」コマンドで開いたプログラムのみ

です。ワーカースレッドのプログラムや「INCLUDE」コマンドなどで開いたプログラムは保

存できません。

使用例1

SAVE "SAMPLE.BAS"

SAMPLE.BAS というファイル名でプログラムをファイルに保存します。

使用例2

SAVE "SAMPLE.BAS", A

SAMPLE.BAS というファイル名でBASICテキスト形式 としてプログラムをファイルに保

存します。

- - Interface Corporation

55

Page 56: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

56

2.2.43 SHELL

命令 i99-BASIC i99-REAL

機 能 外部プログラムを呼び出します。

(作業フォルダは/root/mybasic/user/です。)

書 式 SHELL "<外部プログラム引数>"

指定のプログラムを呼び出します。

SHELL DIRECT "<Linuxコマンド>"

指定のLinuxコマンドを呼び出します。

<外部プログラム引数>

呼び出す外部プログラムと引数のリストを指定します。

呼び出す外部プログラムは、/root/mybasic/user/に配置してください。

<Linuxコマンド>

呼び出すLinuxコマンドを指定します。

備 考 呼び出される時、作業フォルダ以下(/root/mybasic/user/)がカレントとなって呼ばれ

ます。

注 意 VFATでフォーマットされたUSBメモリにあるプログラムは実行できません。

(実行権限を設定できないため)

呼 び 出 す プ ロ グ ラ ム お よ び Linux コ マ ン ド か ら 、 作 業 フ ォ ル ダ 以 下

(/root/mybasic/user)以外のフォルダや隠しフォルダ等を、不用意に削除しようとしな

いでください。

通常時、ファイルシステムは保護されていますが、意図して書き込み可能にした状態で、

例えばシステムファイルを削除すると、システムが正常に起動しなくなる恐れがありま

す。

使用例1 SHELL "myexe hoge.txt"

myexeという実行ファイルにhoge.txtを引数に与え、実行します。

使用例2 SHELL DIRECT "ls > files.txt"

入力値の ls > files.txt というコマンドを実行します。

2.2.44 SHUTDOWN

命令 i99-BASIC -

機 能 システムをシャットダウンします。

書 式 SHUTDOWN

使用例 SHUTDOWN

Page 57: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

57

2.2.45 SINGLETRACE

命令 i99-BASIC i99-REAL

機 能 メモリのプログラムをステップインでシングルトレース実行します。

書 式 SINGLETRACE

注 意 プログラム内では使用できません。

使用例 10 A = 1

20 B = 2

30 PRINT “A+B=”;A+B

SINGLETRACE

break in 20

[code] 20 B = 2

SINGLETRACE

break in 30

[code] 30 PRINT “A+B=”;A+B

メモリのプログラムを1行ずつ実行してブレークを掛けます。SINGLETRACEの実行時に、

プログラムがブレークにより停止中であれば次の1行、プログラムが実行されていない

場合は先頭の1行を実行し、ブレークを掛けます。

2.2.46 SINGLETRACEOVER

命令 i99-BASIC i99-REAL

機 能 メモリのプログラムをステップオーバーでシングルトレース実行します。

書 式 SINGLETRACEOVER

注 意 プログラム内では使用できません。

備 考 基本的な動作はSINGLETRACE(→「2.2.45 SINGLETRACE」)と同じですが、

SINGLETRACEOVERによるプログラムの実行でサブルーチンの呼び出しがあった場合、サブ

ルーチン内のコードでブレークを掛けず、サブルーチンを実行し終わった次の行でブレー

クを掛けます。

使用例 SINGLETRACEOVER

2.2.47 SLEEP

命令 i99-BASIC i99-REAL

機 能 指定の秒数の間だけ休止します。

書 式 SLEEP <休止時間(秒)>

<休止時間(秒)>

休止時間を0以上の倍精度実数で指定します。

使用例1 SLEEP 5

5秒間プログラムの実行を休止します。

使用例2 SLEEP 0.001

0.001秒間プログラムの実行を休止します。

Page 58: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

58

2.2.48 USLEEP , MSLEEP

命令 - i99-REAL

機 能 指定の秒数の間だけ休止します。

書 式 USLEEP <休止時間(マイクロ秒)>

MSLEEP <休止時間(ミリ秒)>

<休止時間(マイクロ秒・ミリ秒)>

休止時間を0以上の倍精度実数で指定します。

使用例1 USLEEP 200

200マイクロ秒間プログラムの実行を休止します。

使用例2 MSLEEP 100

100ミリ秒間プログラムの実行を休止します。

2.2.49 STOP

命令 i99-BASIC i99-REAL

機 能 プログラムの実行を一時中断します。

書 式 STOP

使用例 10 PRINT “Hallo.”

20 STOP

30 PRINT ”World”

RUN

Hallo.

行番号[10]で Hallo. を表示後に行番号[20]STOPコマンドが実行された所でプログラ

ムは一時停止状態になります。再開するまで次行以降の処理は実行されません。

2.2.50 TRACE

命令 i99-BASIC i99-REAL

機 能 メモリのプログラムを指定の待ち時間を挟んで自動トレース実行します。

書 式 TRACE <待ち時間[ms]>

<待ち時間[ms]>

待ち時間を0~999で指定します。

注 意 プログラム内では使用できません。

使用例 TRACE 500

プログラムを先頭行から500ms間隔でトレース実行します。

Page 59: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

59

2.2.51 TRON/TROFF

命令 i99-BASIC i99-REAL

機 能 プログラムの実行状態を追跡します。

書 式 TRON

実行しているプログラムの行番号をカギカッコ[ ] 付きで表示します。

TROFF

プログラムの追跡を終了します。

備 考 LOAD, NEWを実行した場合もプログラムの追跡を終了します。

使用例1 10 TRON

20 PRINT “Hello.”

30 TROFF

40 PRINT “”

50 PRINT “World”

RUN

[20] Hello.

[30]

World

行番号[20]の時は追跡が有効なので、[20] Hello.と表示します。

また、行番号[50]では追跡を終了しているので、World とだけ表示します。

Page 60: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

60

2.2.52 WATCH

命令 i99-BASIC i99-REAL

機 能 モニタする変数を指定します。

書 式 WATCH ADD <変数名> [, <変数名> …]

モニタする変数を追加します。

WATCH DELETE <変数名> [, <変数名> …]

モニタする変数を削除します。

WATCH CLEAR

モニタする変数をすべて削除します。

WATCH LIST

モニタしている変数のリストを表示します。

<変数名>

モニタする変数名を指定します。

IDE画面上では、モニタする変数と値は変数表示ウィンドウに表示されます。

コンソール画面上では、プログラムを実行した時、1行進む毎に、「(変数名=値) 」と

いう形式でモニタする変数と値が、出力表示されます。

注意1 プログラム内では使用できません。

注意2 モニタできる変数には、制限があります。

文字型や数値型は指定できますが、構造体型全体はモニタできません。(メンバ名の指定が

必要です。)

注意3 コンソール画面上で、本機能を使用する際、「TRON」コマンドと併用すると、実行行と変

数の値が確認でき、便利です。

使用例1 WATCH ADD A, B

変数 AとBをモニタできる様にします。

使用例2 WATCH DELETE A, B

モニタできる変数からAとBを解除します。

使用例3 WATCH CLEAR

モニタできるすべての変数を解除します。

2.2.53 VER$

関数 i99-BASIC i99-REAL

機 能 i99-BASICのバージョンを返します。

書 式 VER$

使用例 PRINT VER$

i99-BASICのバージョンを 1.00-01 の様に文字列で表示します。

Page 61: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

61

2.3 数値・文字列に関する関数・命令

2.3.1 ABS

関数 i99-BASIC i99-REAL

機 能 絶対値を返します。

書 式 ABS(<数式>)

<数式>

絶対値を求める数式を指定します。

使用例 NUM = ABS(-3)

変数NUMに3(-3の絶対値)を代入します。

2.3.2 ASC

関数 i99-BASIC i99-REAL

機 能 文字のキャラクターコードを返します。

書 式 ASC(<文字>)

<文字>

キャラクターコードを求める文字を指定します。

文字列を入力した場合は、先頭の1文字だけを判定します。

備 考 ・ Ver.2.0未満の動き:

キャラクターコードを求める文字は、ASCII文字(0~127)のみサポートしています。

・ Ver.2.0以降の動き:

キャラクターコードを求める文字は、ユニコード文字(UCS-4)をサポートしています。

・ キャラクターコードは10進数で返します。

・ 「第9章 アスキーコード一覧」に載っていないコードは、画面表示が文字化けする

恐れがあります。

使用例1 C = ASC("Z")

変数Cに90(”Z”のキャラクターコード)を代入します。

使用例2 C = ASC(“歩”)

変数Cに&h6b69(“歩”のユニコード値)を代入します。

Page 62: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

62

2.3.3 ASCB

関数 i99-BASIC i99-REAL

機 能 文字の先頭の1バイトデータを返します。

書 式 ASCB(<文字>)

<文字>

先頭の1バイトデータを求める文字を指定します。

文字列を入力した場合でも、先頭の1バイトだけを判定します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 文字列中、先頭1バイト目を数値にして返します。(0~255)

・ 「第9章 アスキーコード一覧」に載っていないコードは、画面表示が文字化けする

恐れがあります。

使用例 C = ASCB(CHRB$(&h80))

変数Cに&h80(CHRB$でバイトデータ化された値)を代入します。

2.3.4 ATN

関数 i99-BASIC i99-REAL

機 能 逆正接を返します。

書 式 ATN(<数式>)

<数式>

逆正接を求める数式を指定します。

使用例 NUM = ATN(1)

変数NUMにtan-1(1)≒0.785398163397448を代入します。

2.3.5 BIN$

関数 i99-BASIC i99-REAL

機 能 10進数を2進数の文字列に変換します。

書 式 BIN$(<数値>)

<数値>

2進数を求める数値を指定します。

指定された数値が整数でない場合は、四捨五入されてから評価されます。

使用例 SMP$ = BIN$(255)

変数SMP$に”11111111”(255の2進数表示)を代入します。

Page 63: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

63

2.3.6 BOOL

命令 i99-BASIC i99-REAL

機 能 論理型変数を宣言します。

書 式 BOOL <変数名> [= <真偽>] [, <変数名> …]

<変数名>

論理型で宣言する変数名を指定します。

<真偽>

変数が真(TRUE)か偽(FALSE)かを指定します。

使用例1

10 BOOL A = TRUE,B = FALSE

20 IF A THEN

30 PRINT ”AはTrueです。”

40 ELSE

50 PRINT “AはFalseです。”

60 END IF

70 IF B THEN

80 PRINT ”BはTrueです。”

90 ELSE

100 PRINT “BはFalseです。”

110 END IF

RUN

AはTrueです。

BはFalseです。

行番号[10]で指定した変数A,Bの真偽をそれぞれIf文で評価し、処理を分岐させていま

す。

使用例2 BOOL A,B

A = TRUE

B = FALSE

例2のように、変数宣言と真偽の指定を分ける事もできます。

Page 64: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

64

2.3.7 CDBL

関数 i99-BASIC i99-REAL

機 能 単精度整数値, 倍精度整数値, 単精度実数値を、倍精度実数値に変換します。

書 式 CDBL(<数式>)

<数式>

倍精度実数値を求める数式を指定します。

備 考 数値型の詳細は変数の型(→「1.2.2 変数の型」)を参照。

使用例 NUM# = CDBL(1.23!)

入力値を倍精度実数値へ変換して変数NUMに代入します。

2.3.8 CHR$

関数 i99-BASIC i99-REAL

機 能 指定したキャラクターコードが持つ文字を返します。

書 式 CHR$(<キャラクターコード>)

<キャラクターコード>

文字を求めるキャラクターコードを指定します。

Ver.2.0未満:0~127

Ver.2.0以降:UCS-4

備 考 ・ Ver.2.0未満の動き:

キャラクターコードは、ASCII文字の範囲のみサポートしています。

・ Ver.2.0以降の動き:

キャラクターコードは、ユニコード文字(UCS-4)の範囲をサポートしています。

・ 「第9章 アスキーコード一覧」に載っていないコードは、画面表示が文字化けする

恐れがあります。

使用例1 SMP$ = CHR$(65)

変数SMP$へ”A”(キャラクターコード 65 に該当する文字)を代入します。

使用例2 SMP$ = CHR$(&h6B69)

変数SMP$へ”歩”(ユニコード値 &h6B69 に該当する文字)を代入します。

Page 65: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

65

2.3.9 CHRB$

関数 i99-BASIC i99-REAL

機 能 指定したバイトデータ値を持つバイトデータ文字列を返します。

書 式 CHRB$(<バイトデータ>)

<バイトデータ>

バイトデータ値(0~255)を指定します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 「第9章 アスキーコード一覧」に載っていないコードは、画面表示が文字化けする

恐れがあります。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

使用例 SMP$ = CHR$(&h80)

変数SMP$へ1バイトの&h80を保持するバイトデータ(文字列形式)を代入します。

2.3.10 CINT

関数 i99-BASIC i99-REAL

機 能 倍精度整数値, 単精度実数値, 倍精度実数値を、単精度整数値に変換します。

数値の小数点以下は四捨五入されます。

書 式 CINT(<数式>)

<数式>

単精度整数値を求める数式を指定します。

備 考 数値型の詳細は変数の型(→「1.2.2 変数の型」)を参照。

結果の値が精度範囲内に無い場合はエラーとなります。

使用例 NUM% = CINT(1.23#)

入力値を単精度整数値へ変換して変数NUMに代入します。

2.3.11 CLEAR

命令 i99-BASIC -

機 能 すべての変数を初期化します。

書 式 CLEAR

備 考 システム定義以外の全てのグローバル/ローカル変数をクリアします。ローカル変数を

クリアする為に、ユーザー関数やサブルーチンのスタック履歴もクリアされます。

文 例 CLEAR

Page 66: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

66

2.3.12 CLNG

関数 i99-BASIC i99-REAL

機 能 単精度整数値, 単精度実数値, 倍精度実数値を、倍精度整数値に変換します。

数値の小数点以下は四捨五入されます。

書 式 CLNG(<数式>)

<数式>

倍精度整数値を求める数式を指定します。

備 考 数値型の詳細は変数の型(→「1.2.2 変数の型」)を参照。

結果の値が精度範囲内に無い場合はエラーとなります。

使用例 NUM& = CLNG(1.23#)

入力値を倍精度整数値へ変換して変数NUMに代入します。

2.3.13 CONST

命令 i99-BASIC i99-REAL

機 能 定数を宣言します。

書 式 CONST <定数名> = <値> [, <定数名> …]

<定数名>

定数名を指定します。

<値>

定数の値を指定します。

使用例 CONST A = 100

定数Aを宣言し、100で初期化します。

以降の処理でAの値は変更できません。

2.3.14 CONST BOOL

命令 i99-BASIC i99-REAL

機 能 論理型定数を宣言します。

書 式 CONST BOOL <定数名> = <真偽> [, <定数名> …]

<定数名>

論理型で宣言する定数名を指定します。

<真偽>

定数が真(TRUE)か偽(FALSE)かを指定します。

備 考 論理型変数BOOL(→「2.3.6 BOOL」)を定数として扱えるコマンドです。

使用例 CONST BOOL A = TRUE

論理型定数Aを宣言し、TRUEで初期化します。

以降の処理でAの値は変更できません。

Page 67: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

67

2.3.15 COS

関数 i99-BASIC i99-REAL

機 能 余弦を返します。

書 式 COS(<数式>)

<数式>

余弦を求める数式を指定します。

使用例 NUM = COS(1)

変数NUMへ cos(1)≒0.54030230586814を代入します。

2.3.16 CSNG

関数 i99-BASIC i99-REAL

機 能 単精度整数値, 倍精度整数値, 倍精度実数値を、単精度実数値に変換します。

書 式 CSNG(<数式>)

<数式>

単精度実数値を求める数式を指定します。

備 考 数値型の詳細は変数の型(→「1.2.2 変数の型」)を参照。

使用例 NUM! = CSNG(1.23#)

入力値を単精度実数値へ変換して変数NUMに代入します。

Page 68: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

68

2.3.17 CVD

関数 i99-BASIC i99-REAL

機 能 文字列を数値データに変換します。MKD$関数を用いてランダムデータファイルに書き込

まれた文字列を、数値データに戻す際に使用します。

書 式 CVD(<8文字の文字列>)

<8文字の文字列>

数値データを求める8文字の文字列を指定します。

備 考 関数MKD$(→「2.3.66 MKD$」) によって出力された文字列を数値に変換します。

使用例 TMP$ = MKD$(12345)

NUM = CVD(TMP$)

変数NUMに12345(MKDの引数として与えた元の数値)を代入します。

2.3.18 CVI

関数 i99-BASIC i99-REAL

機 能 文字列を数値データに変換します。MKI$関数を用いてランダムデータファイルに書き込

まれた文字列を、数値データに戻す際に使用します。

書 式 CVI(<4文字の文字列>)

<4文字の文字列>

数値データを求める4文字の文字列を指定します。

備 考 関数MKI$(→「2.3.67 MKI$」) によって出力された文字列を数値に変換します。

使用例 TMP$ = MKI$(12345)

NUM = CVI(TMP$)

変数NUMに12345(MKIの引数として与えた元の数値)を代入します。

2.3.19 CVL

関数 i99-BASIC i99-REAL

機 能 文字列を数値データに変換します。MKL$関数を用いてランダムデータファイルに書き込

まれた文字列を、数値データに戻す際に使用します。

書 式 CVL(<8文字の文字列>)

<8文字の文字列>

数値データを求める8文字の文字列を指定します。

備 考 関数MKL$(→「2.3.68 MKL$」) によって出力された文字列を数値に変換します。

使用例 TMP$ = MKL$(12345)

NUM = CVL(TMP$)

変数NUMに12345(MKLの引数として与えた元の数値)を代入します。

Page 69: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

69

2.3.20 CVS

関数 i99-BASIC i99-REAL

機 能 文字列を数値データに変換します。MKS$関数を用いてランダムデータファイルに書き込ま

れた文字列を、数値データに戻す際に使用します。

書 式 CVS(<4文字の文字列>)

<4文字の文字列>

数値データを求める4文字の文字列を指定します。

備 考 関数MKS$(→「2.3.69 MKS$」) によって出力された文字列を数値に変換します。

使用例 TMP$ = MKS$(12345)

NUM = CVS(TMP$)

変数NUMに12345(MKSの引数として与えた元の数値)を代入します。

2.3.21 DATE$ = “文字列”

命令 i99-BASIC -

機 能 日付を設定します。

書 式 DATE$ = <日付>

<日付>

設定する日付をYYYY/MM/DD形式で指定します。

年, 月, 日のいずれかを-1に指定した場合、その年, 月, 日は現在の値が採用されま

す。

備 考 設定できる日時の範囲は、1970/01/01~2038/01/18です(上限値は 32ビット環境時の

みの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例 DATE$ = “2013/01/01”

システムの日付を 2013/01/01 に設定します。

Page 70: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

70

2.3.22 DATE$

関数 i99-BASIC i99-REAL

機 能 日付を返します。

書 式 DATE$

今日の日付を返します。

DATE$(<日数>)

紀元(1970-01-01 00:00:00(UTC))から指定日数だけ前後した日付を返します。

DATE$(<年>, <月>, <日>)

今日から指定の期間だけ前後した日付を返します。

<日数>

求める日付の紀元から数えた日数を指定します。

<年>, <月>, <日>

求める日付の今日から数えた期間を指定します。

過去の場合は負数で指定します。例えば、1日前は-1で表します。

備 考 扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

使用例1 SMP$ = DATE$

実行時点での日付が2012年1月1日の場合、"2012/01/01"を変数SMP$ へ代入します。

使用例2 SMP$ = DATE$(14)

1970/01/01 から 14 日後の日付 1970/01/15 を変数SMP$ へ代入します。

使用例3 SMP$ = DATE$(1, -2, 3)

今日の日付へ+1年,-2ヶ月,+3日した日付を変数SMP$へ代入します。

例えば、実行時点での日付が2012年1月1日の場合、"2012/11/04"を代入します。

Page 71: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

71

2.3.23 DATECALC$

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)から指定日数を加減算した日を返します。

書 式 DATECALC$(<文字列>, <日数>)

<文字列>

計算の基点となる日付を指定します。

<日数>

加減算する日数を指定します。

備 考 <文字列>が日付でない場合、エラーを返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM$ = DATECALC$("2013/07/15", 17)

日付 2013/07/15 へ 17 日加算した日付 2013/08/01 を変数NUM$へ代入します。

使用例2 NUM$ = DATECALC$("2013/07/15", -15)

日付 2013/07/15 から 15 日減算した日付 2013/06/30 を変数NUM$へ代入します。

2.3.24 DATEDIFF

関数 i99-BASIC i99-REAL

機 能 指定日1(文字列1)から指定日2(文字列2)までの日数を返します。

書 式 DATEDIFF(<文字列1>, <文字列2>)

<文字列1>

計算の基点となる日付を指定します。

<文字列2>

計算の終点となる日付を指定します。

備 考 <文字列1>、<文字列2>が日付でない場合、エラーを返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = DATEDIFF("2013/07/15", “2013/08/01”)

日付 2013/07/15 から 2013/08/01 までの日付 17 を変数NUMへ代入します。

使用例2 NUM = DATEDIFF("2013/07/15", “2013/06/30”)

日付 2013/07/15 から 2013/06/30 までの日付 – 15 を変数NUMへ代入します。

Page 72: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

72

2.3.25 DATENUM

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)を日数に換算して返します。

書 式 DATENUM(<文字列>)

<文字列>

計算する日付を指定します。

備 考 紀元(1970-01-01 00:00:00(UTC))を起点として換算します。

<文字列>が日付でない場合、エラーを返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = DATENUM("1970/01/15")

日付 1970/01/01 から 指定日 1970/01/15 までの日数 14 を変数NUMへ代入します。

使用例2 NUM = DATENUM("1969/12/01")

日付 1970/01/01 から 指定日 1969/12/01 までの日数 -31 を変数NUMへ代入します。

2.3.26 DAY

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)の日を返します。

書 式 DAY(<文字列>)

<文字列>

日を求める日付を指定します。

備 考 <文字列>が日付でない場合、0を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = DAY("2013/07/15")

入力値 2013/07/15 の日付部分 15 を変数NUMへ代入します。

2.3.27 DEFBOL

命令 i99-BASIC i99-REAL

機 能 指定された文字で始まる変数を論理型に定義します。

変数名の 後に型宣言文字がある場合、型宣言文字による指定が優先されます。

書 式 DEFBOL <文字の範囲> [, <文字の範囲> …]

<文字の範囲>

論理型に定義する変数名の先頭文字を範囲指定します。

使用例 DEFBOL A-C, K

ABC = TRUE

DEFBOLで変数名が AからCの間に含まれる文字(AorBorC)またはKで始まる変数を論理型

として定義します。変数ABCは変数名がAから始まるため、BOOL(→「2.3.6 BOOL」)

を省略しても論理型の変数として宣言されます。

Page 73: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

73

2.3.28 DEFDBL

命令 i99-BASIC i99-REAL

機 能 指定された文字で始まる変数を倍精度実数型に定義します。

変数名の 後に型宣言文字がある場合、型宣言文字による指定が優先されます。

書 式 DEFDBL <文字の範囲> [, <文字の範囲> …]

<文字の範囲>

倍精度実数型に定義する変数名の先頭文字を範囲指定します。

使用例 DEFDBL A-C, K

ABC = 1.2345

変数名が AからCの間に含まれる文字(AorBorC)またはKで始まる変数を倍精度実数型と

して定義します。変数ABCは変数名がAから始まるため、倍精度実数型の変数として宣言

されます。

2.3.29 DEFINE STRUCT~END STRUCT

命令 i99-BASIC i99-REAL

機 能 構造体を宣言します。

書 式 DEFINE STRUCT <構造体名>

<変数名>

END STRUCT

<構造体名>

構造体名を指定します。

<変数名>

構造体メンバの変数名を指定します。

注意1 構造体自体のPRINT, 構造体同士の代入はできません。

注意2 直接コマンドでは使用できません。

用例 10 DEFINE STRUCT SITE

20 ID

30 ADDR$

40 END STRUCT

50

60 STRUCT SITE OFFICE(2)

70

80 OFFICE(0).ID = 1

90 OFFICE(0).ADDR$ = "HIROSHIMA"

100 PRINT OFFICE(0).ID, OFFICE(0).ADDR$

行番号[10]~[40]でSITEという名前の構造体を宣言します。

行番号[20],[30]で構造体SITEのメンバである ID,ADDR$ を指定しています。

行番号[60]でSTRUCT SITE型の OFFICE という変数を配列で宣言しています。

行番号[80],[90]で値の格納、行番号[100]で値を呼び出して使用しています。

Page 74: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

74

2.3.30 DEFINT

命令 i99-BASIC i99-REAL

機 能 指定された文字で始まる変数を単精度整数型に定義します。

変数名の 後に型宣言文字がある場合、型宣言文字による指定が優先されます。

書 式 DEFINT <文字の範囲> [, <文字の範囲> …]

<文字の範囲>

単精度整数型に定義する変数名の先頭文字を範囲指定します。

使用例 DEFINT A-C, K

ABC = 123

変数名が AからCの間に含まれる文字(AorBorC)またはKで始まる変数を単精度整数型と

して定義します。変数ABCは変数名がAから始まるため、「%」記号を省略しても単精度

整数型の変数として宣言されます。

2.3.31 DEFLNG

命令 i99-BASIC i99-REAL

機 能 指定された文字で始まる変数を倍精度整数型に定義します。

変数名の 後に型宣言文字がある場合、型宣言文字による指定が優先されます。

書 式 DEFLNG <文字の範囲> [, <文字の範囲> …]

<文字の範囲>

倍精度整数型に定義する変数名の先頭文字を範囲指定します。

使用例 DEFLNG A-C, K

ABC = 123

変数名が AからCの間に含まれる文字(AorBorC)またはKで始まる変数を倍精度整数型と

して定義します。変数ABCは変数名がAから始まるため、「&」記号を省略しても倍精度

整数型の変数として宣言されます。

2.3.32 DEFSNG

命令 i99-BASIC i99-REAL

機 能 指定された文字で始まる変数を単精度実数型に定義します。

変数名の 後に型宣言文字がある場合、型宣言文字による指定が優先されます。

書 式 DEFSNG <文字の範囲> [, <文字の範囲> …]

<文字の範囲>

単精度実数型に定義する変数名の先頭文字を範囲指定します。

使用例 DEFSNG A-C, K

ABC = 1.2345

変数名が AからCの間に含まれる文字(AorBorC)またはKで始まる変数を単精度実数型と

して定義します。変数ABCは変数名がAから始まるため、「!」記号を省略しても単精度

実数型の変数として宣言されます。

Page 75: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

75

2.3.33 DEFSTR

命令 i99-BASIC i99-REAL

機 能 指定された文字で始まる変数を文字型に定義します。

変数名の 後に型宣言文字がある場合、型宣言文字による指定が優先されます。

使用式 DEFSTR <文字の範囲> [, <文字の範囲> …]

<文字の範囲>

文字型に定義する変数名の先頭文字を範囲指定します。

使用例 DEFSTR A-C, K

ABC = “STRING”

変数名が AからCの間に含まれる文字(AorBorC)またはKで始まる変数を文字型として定

義します。変数ABCは変数名がAから始まるため、「$」記号を省略しても文字型の変数

として宣言されます。

2.3.34 ENUM~END ENUM

命令 i99-BASIC i99-REAL

機 能 列挙型定数を宣言します。

書 式 ENUM

<定数名> [= <整数値>]

END ENUM

<定数名>

列挙型で宣言する定数名を指定します。

<整数値>

列挙型定数の値を指定します。

注 意 直接コマンドでは使用できません。

使用例 ENUM

A = 1

B = 2

END ENUM

定数A,Bを列挙型で宣言します。Aを1、Bを2で初期化します。

Page 76: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

76

2.3.35 EXP

関数 i99-BASIC i99-REAL

機 能 底がeである指数関数の値を返します。

書 式 EXP(<数式>)

<数式>

指数関数の値を求める数式を指定します。

備 考 結果が無限大の場合はinfを返します。

使用例 NUM = EXP(1)

eの1乗である 2.71828182845905 を変数NUMへ代入します。

2.3.36 FIRSTDAY$

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)の月初日を返します。

書 式 FIRSTDAY$(<文字列>)

<文字列>

月初日を求める日付を指定します。

備 考 <文字列>が日付でない場合、空文字列を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例 SMP$ = FIRSTDAY$("2013/07/15")

変数SMP$へ指定日「2013/07/15」の月初日「2013/07/01」という文字列を代入します。

2.3.37 FIX

関数 i99-BASIC i99-REAL

機 能 引数の整数部分を返します。

書 式 FIX(<数値>)

<数値>

整数部分を求める数値を指定します。

使用例1 NUM = FIX(9.99)

変数NUMへ指定値「9.99」の整数部分「9」を代入します。

使用例2 NUM = FIX(-9.99)

変数NUMへ指定値「-9.99」の整数部分「-9」を代入します。

Page 77: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.3.38 GRP$

関数 i99-BASIC -

機 能 指定したグラフィック文字を返します。

書 式 GRP$(<数値>)

<数値>

グラフィック文字を求める数値を0~255の16進数で指定します。

255より大きい値を指定した場合は、下位8ビットのみ扱います。

各数値は以下の文字に対応します。

1の位

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

0x00

0x10

0x20

0x30

0x40

0x50

0x60

0x70

0x80

0x90

0xA0

0xB0

0xC0

0xD0

0xE0

16の位

0xF0

使用例 SMP$ = GRP$(188)

変数SMP$へ指定値「188」に対応するグラフィック文字「▼」を代入します。

2.3.39 HEX$

関数 i99-BASIC i99-REAL

機 能 10進数を16進数の文字列に変換します。

書 式 HEX$(<数値>)

<数値>

16進数を求める数値を指定します。

指定された数値が整数でない場合は、四捨五入されてから評価されます。

使用例 SMP$ = HEX$(255)

変数SMP$へ”FF”(10進数の指定値「255」を16進数へ変換した値の文字列)を代入し

ます。

- - Interface Corporation

77

Page 78: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

78

2.3.40 HOUR

関数 i99-BASIC i99-REAL

機 能 指定時刻(文字列)の時を返します。

書 式 HOUR(<文字列>)

<文字列>

時を求める時刻を指定します。

備 考 <文字列>が時刻でない場合、0を返します。

時刻の書式は、24時間表記とします。

閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例 NUM=HOUR("14:03:15")

変数NUMに指定時刻「14:03:15」から時の部分「14」を代入します。

2.3.41 INKEY$

関数 i99-BASIC -

機 能 押されているキーの情報を得ます。

書 式 INKEY$

備 考 押されているキーが英字の場合、大文字で得られます。

使用例 10 PRINT “Yキーを押すと終了します。”

20 While true

30 If INKEY$ = “Y” Then

40 Exit While

50 End If

60 Wend

70 PRINT “終了”

80 End

行番号[20]から始まるWhile文の中で、INKEY$コマンドを用いて Y キーが押されるまで

待機する例です。Y キーが押されると、行番号[30]のIf文に指定した条件が真となり行

番号[40]が実行されます。

Page 79: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

79

2.3.42 INSTR

関数 i99-BASIC i99-REAL

機 能 文字列中の指定文字列を検索します。

見つからない場合は、0を返します。

書 式 INSTR([<開始位置> ,] <文字列>, <指定文字列>)

<開始位置>

検索を始める位置を1以上、文字列の長さ以下で指定します。

省略した場合は、先頭から検索します。

<文字列>

検索対象の文字列を指定します。

<指定文字列>

検索する文字列を指定します。

備 考 <指定文字列>に空の文字列を指定すると、<開始位置>を返します。

使用例1 NUM= INSTR ("ABCDEF", "C")

文字列「ABCDEF」から指定文字列「C」を検索し、該当した位置 3 を変数NUMへ数値型

で代入します。

使用例2 NUM= INSTR (4, "ABCABC", "C")

文字列「ABCABC」から開始位置 4 以降で指定文字列「C」を検索し、該当した位置 6 を

変数NUMへ数値型で代入します。

使用例3 NUM= INSTR ("あいうえお", "A")

文字列「あいうえお」から指定文字列「A」を検索し、該当が無いため 0 を変数NUMへ

代入します。

2.3.43 INT

関数 i99-BASIC i99-REAL

機 能 引数を超えない 大の整数値を返します。

書 式 INT(<数値>)

<数値>

整数値を求める数値を指定します。

使用例1 NUM=INT(9.99)

指定値 9.99 を超えない 大の整数値 9 を変数NUMへ代入します。

使用例2 NUM=INT(-9.99)

指定値 -9.99 を超えない 大の整数値 -10を変数NUMへ代入します。

Page 80: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

80

2.3.44 JUDGE$

関数 i99-BASIC i99-REAL

機 能 判定式の値判定を行います。判定式が判定値の場合は、指定値を返します。

判定式が偽の場合は、次の指定値を返します。

判定式を複数使いたい時は指定値の代わりにさらにJUDGE$関数を使います。

書 式 JUDGE$(<判定式>, <判定値>, <指定文字列>[, <判定値>, <指定文字列>…][, <例外文

字列>])

<判定式>

評価対象の式を指定します。

<判定値>

判定対象の値を指定します。

<指定文字列>

判定値と一致した際に返す値を指定します。

<例外文字列>

判定値と一致しない際に返す値を指定します。

指定しない場合、判定式が返ります。

備 考 各引数は判定される際に評価されます。

使用例1 A=1: B=2

SMP$=JUDGE$(A+B, 3, “OK”, “NG”)

判定式「A+B」の結果を判定値「3」と比較し、一致しているので指定文字列「OK」を変数

SMP$へ代入します。

使用例2 A=1: B=2

SMP$=JUDGE$(A+B, 1, “いち” , 2, “に” , 3, “さん”, “NG”)

判定式「A+B」の結果を判定値と比較し、「3」と一致しているので指定文字列「さん」を変数

SMP$へ代入します

使用例3 A=1: B=2

SMP$=JUDGE$(A+B, 4, “OK”, JUDGE(A-B, 0, ‘ZERO”, “NG”))

判定式「A+B」の結果を判定値「4」と比較し、一致していないので次のJUDGEコマンドに指

定されている条件を評価した結果「NG」を変数SMP$へ代入します

使用例4 A$=“ABC”

SMP$=JUDGE$(A$, "ABC", “OK”, “NG”)

判定式「A$」の変数の値を判定値「ABC」と比較し、一致しているので指定文字列「OK」を変

数SMP$へ代入します

使用例5 A$=“ABC”

SMP$=JUDGE$(A$, "DEF", “OK”, “NG”)

判定式「A$」の変数の値を判定値「DEF」と比較し、一致していないので例外文字列「NG」を

変数SMP$へ代入します

使用例6 A$=“ABC”

SMP$=JUDGE$(A$, "DEF", “OK”)

判定式「A$」の変数の値を判定値「DEF」と比較し、一致しておらず例外文字列の指定も無

いので判定式A$の値「ABC」を変数SMP$へ代入します

Page 81: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

81

2.3.45 LASTDAY$

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)の月末日を返します。

書 式 LASTDAY$(<文字列>)

<文字列>

月末日を求める日付を指定します。

備 考 ・<文字列>が日付でない場合、空文字列を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

・月初日を求めるにはFIRSTDAY$(→「2.3.36 FIRSTDAY$」)を使用します。

使用例 SMP$ = LASTDAY$("2013/07/15")

変数SMP$へ指定日「2013/07/15」の月末日「2013/07/31」という文字列を代入します。

2.3.46 LCASE$

関数 i99-BASIC i99-REAL

機 能 文字列中の大文字(半角英字)を小文字に変換します。

書 式 LCASE$(<文字列>)

<文字列>

変換対象の文字列を指定します。

備 考 小文字を大文字に変換するにはUCASE$(→「2.3.105 UCASE$」)を使用します。

使用例1 SMP$=LCASE$("SAMPLE")

変数SMP$へ指定値「SAMPLE」を小文字へ変換した値 「sample」を代入します。

使用例2 SMP$=LCASE$("samPLE")

変数SMP$へ指定値「samPLE」を小文字へ変換した値 「sample」を代入します。

Page 82: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

82

2.3.47 LEFT$

関数 i99-BASIC i99-REAL

機 能 文字列の左側から任意の長さの文字列を抜き出します。

書 式 LEFT$(<文字列>, <抜き出す文字数>)

<文字列>

抜き出し対象の文字列を指定します。

<抜き出す文字数>

抜き出す文字列の長さを0以上で指定します。

<文字列>の長さより大きい場合、<文字列>をそのまま返します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 SMP$=LEFT$("SAMPLE", 4)

SMP$へ指定文字列 「SAMPLE」を左から順に4文字抜き出した値「SAMP」を代入します。

使用例2 SMP$=LEFT$("あいう", 4)

指定文字列 「あいう」の文字数「3」に対し、抜き出す文字数「4」が上回っているので、文

字列「あいう」をそのまま変数SMP$へ代入します。

2.3.48 LEFTB$

関数 i99-BASIC i99-REAL

機 能 文字列の左側から任意のバイト数分の文字列を抜き出します。

書 式 LEFTB$(<文字列>, <抜き出すバイト数>)

<文字列>

抜き出し対象の文字列を指定します。

<抜き出すバイト数>

抜き出す文字列の長さを0以上で指定します。

<文字列>の長さより大きい場合、<文字列>をそのまま返します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

使用例 SRC$=CHRB$(0)+CHRB$(1)+CHRB$(2)+CHRB$(3)

SMP$=LEFTB$(SRC$, 2)

SRC$は、4バイトのバイトデータ(文字列形式)です。

LEFTB$により、先頭2バイトのバイトデータを抜き出し、SMP$には「CHRB$(0)+CHRB$(1)」

のバイトデータが得られます。

Page 83: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

83

2.3.49 LEN

関数 i99-BASIC i99-REAL

機 能 文字列の長さを文字数で返します。

書 式 LEN(<文字列>)

<文字列>

長さを求める文字列を指定します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 NUM=LEN("TEST")

指定文字列「TEST」の文字数「4」を数値型で変数NUMへ代入します。

使用例2 NUM=LEN("あいう")

指定文字列「あいう」の文字数「3」を数値型で変数NUMへ代入します。

2.3.50 LENB

関数 i99-BASIC i99-REAL

機 能 文字列の長さをバイト数で返します。

書 式 LENB(<文字列>)

<文字列>

バイト長さを求める文字列を指定します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 全角文字1文字あたり複数バイト、半角ASCII文字1文字あたり1バイトとして計算

します。

・ Ver.2.0未満の動き:

文字列の内部のバイト値が0を終端として、バイト数計算します。

・ Ver.2.0以上の動き:

文字列の内部バッファの確保サイズを返します(バイト値0を終端扱いしません)。

使用例1 NUM=LENB("TEST")

指定文字列「TEST」のバイト数「4」を数値型で変数NUMへ代入します。

使用例2 NUM=LENB("あいう")

指定文字列「あいう」は全角文字です。各1文字あたり3バイトの為、バイト数「9」を数値

型で変数NUMへ代入します。

Page 84: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

84

2.3.51 LET

命令 i99-BASIC i99-REAL

機 能 変数に値を代入します。

書 式 [LET] <変数名> = <数式>

<変数名>

数式を代入する変数名を指定します。

<数式>

変数に代入する数式を指定します。

使用例1 LET NUM = 1

IF NUM = 1 THEN

END IF

変数NUMへ値 「1」を代入します。

LETキーワードを使用することで、代入で使用する「=」と比較で使用する「=」の区別

を明確にできます。

使用例2 NUM = 1

LET を省略した例です。変数NUMへ値 「1」が代入されます。

Page 85: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

85

2.3.52 LINSTR

関数 i99-BASIC i99-REAL

機 能 文字列中の指定文字列を検索し、その数を返します。

見つからない場合は、0を返します。

書 式 LINSTR([<開始位置> ,] <文字列>, <指定文字列>)

<開始位置>

検索を始める位置を1以上、文字列の長さ以下で指定します。

省略した場合は、先頭から検索します。

<文字列>

検索対象の文字列を指定します。

<指定文字列>

検索する文字列を指定します。

備 考 <指定文字列>に空の文字列を指定すると、0を返します。

指定文字列は左から順に検索します。例えば、文字列が”CCC”で指定文字列が”CC”の場

合、初めの2文字のみが検索対象となり、結果は1となります。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1

NUM=LINSTR ("ABCDEF", "C")

文字列「ABCDEF」の中で指定文字列「C」がいくつあるか検索した結果「1」を変数NUMへ代入

します。

使用例2

NUM=LINSTR (4, "ABCABC", "C")

文字列「ABCABC」の中で指定文字列「C」が開始位置「4」以降にいくつあるか検索した結果

「1」を変数NUMへ代入します。

使用例3

NUM=LINSTR ("ABCABC", "C")

文字列「ABCABC」の中で指定文字列「C」がいくつあるか検索した結果「2」を変数NUMへ代入

します。

使用例4

NUM=LINSTR ("AAAAAAAA", "AAA")

文字列「AAAAAAAA」の中で指定文字列「AAA」がいくつあるか検索した結果「2」を変数NUMへ

代入します。

2.3.53 LOCAL

命令 i99-BASIC i99-REAL

機 能 ローカル変数を宣言します。

書 式 LOCAL <変数名> [, <変数名> …]

<変数名>

ローカル変数名を指定します。

注 意 SUB~END SUB, FUNCTION~END FUNCTION, GOSUB~RETURN等のサブルーチン内でのみ使用で

きます。

使用例

LOCAL A, B

ローカル変数A,Bを宣言します。

Page 86: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

86

2.3.54 LOCAL BOOL

命令 i99-BASIC i99-REAL

機 能 論理型ローカル変数を宣言します。

書 式 LOCAL BOOL <変数名> [= <真偽>] [, <変数名> …]

<変数名>

ローカル変数名を指定します。

<真偽>

ローカル変数が真(TRUE)か偽(FALSE)かを指定します。

注 意 SUB~END SUB, FUNCTION~END FUNCTION, GOSUB~RETURN等のサブルーチン内でのみ使用で

きます。

使用例1 LOCAL BOOL A=TRUE, B=FALSE

論理型ローカル変数A,Bを宣言します。

宣言と同時に変数AはTRUE、変数BはFALSEで初期化します。

使用例2 LOCAL BOOL A

A = TRUE

論理型ローカル変数Aを宣言し、TRUEを代入します。

2.3.55 LOCAL CONST

命令 i99-BASIC i99-REAL

機 能 ローカル定数を宣言します。

書 式 LOCAL CONST <定数名> = <値> [, <定数名> …]

<定数名>

ローカル定数名を指定します。

<値>

ローカル定数の値を指定します。

注 意 SUB~END SUB, FUNCTION~END FUNCTION, GOSUB~RETURN等のサブルーチン内でのみ使用で

きます。

使用例 LOCAL CONST A = 100

ローカル定数Aを宣言し、100で初期化します。

Page 87: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

87

2.3.56 LOCAL CONST BOOL

命令 i99-BASIC i99-REAL

機 能 論理型ローカル定数を宣言します。

書 式 LOCAL CONST BOOL <定数名> = <真偽> [, <定数名> …]

<定数名>

論理型で宣言するローカル定数名を指定します。

<真偽>

ローカル定数が真(TRUE)か偽(FALSE)かを指定します。

注 意 SUB~END SUB, FUNCTION~END FUNCTION, GOSUB~RETURN等のサブルーチン内でのみ使用で

きます。

使用例 LOCAL CONST BOOL A = TRUE

論理型ローカル定数Aを宣言し、TRUEで初期化します。

2.3.57 LOCAL ENUM~END ENUM

命令 i99-BASIC i99-REAL

機 能 列挙型ローカル定数を宣言します。

書 式 LOCAL ENUM

<定数名> [= <整数値>]

:

END ENUM

<定数名>

列挙型で宣言するローカル定数名を指定します。

<整数値>

列挙型ローカル定数の値を指定します。

注意1 SUB~END SUB, FUNCTION~END FUNCTION, GOSUB~RETURN等のサブルーチン内でのみ使用で

きます。

注意2 直接コマンドでは使用できません。

使用例 LOCAL ENUM

A = 1

B = 2

END ENUM

ローカル定数A,Bを列挙型で宣言します。Aは1、Bは2で初期化します。

Page 88: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

88

2.3.58 LOCAL STRUCT

命令 i99-BASIC i99-REAL

機 能 ローカル構造体変数を宣言します。

書 式 LOCAL STRUCT <構造体名> <変数名> [, <変数名>…]

<構造体名>

構造体名を指定します。

<変数名>

ローカル構造体変数の名前を指定します。

注意1 SUB~END SUB, FUNCTION~END FUNCTION, GOSUB~RETURN等のサブルーチン内でのみ使用で

きます。

注意2 構造体自体のPRINT, 構造体同士の代入はできません。

備 考 STRUCT(→「2.3.93 STRUCT」)

使用例 DEFINE STRUCT SITE

ID

ADDR$

END STRUCT

SUB OFFICE_SUB

LOCAL STRUCT SITE OFFICE(2)

OFFICE(0).ID = 1

OFFICE(0).ADDR$ = "HIROSHIMA"

PRINT OFFICE(0).ID, OFFICE(0).ADDR$

END SUB

IDとADDR$をメンバ変数に持つ構造体SITEを宣言し、

SITE型のローカル構造体変数OFFICEを宣言します。

その後、添字0のメンバ変数IDに1、ADDR$に”HIROSHIMA”を設定し、

同じ内容を画面に出力します。

2.3.59 LOG

関数 i99-BASIC i99-REAL

機 能 自然対数を返します。

書 式 LOG(<数式>)

<数式>

自然対数を求める数式を指定します。

備 考 結果が非数の場合はnan、無限大の場合はinfを返します。

使用例 NUM = LOG(1)

変数NUMに自然対数loge1 = 0を代入します。

Page 89: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

89

2.3.60 LTRIM$

関数 i99-BASIC i99-REAL

機 能 文字列の前から全半角スペースを削除します。

書 式 LTRIM$(<文字列>)

<文字列>

スペースを削除する文字列を指定します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例 CHAR$ = LTRIM$(" 123 ")

変数CHAR$に"123 "(文字列の先頭が全半角スペース以外になるように全半角スペース

を削除したもの)を代入します。

2.3.61 MID$ = “文字列”

命令 i99-BASIC i99-REAL

機 能 文字列の一部を置き換えます。

書 式 MID$(<文字変数>, <開始位置> [, <文字数>]) = <文字列>

<文字変数>

置き換え対象の文字変数を指定します。

<開始位置>

置き換える開始位置を1~対象の文字数で指定します。

<文字数>

置き換える文字数を0以上で指定します。

省略した場合や、<文字列>の文字数より大きい値を指定した場合は、<文字列>のすべ

ての文字と置き換えます。0を指定した場合は、置き換えられません。

<文字列>

置き換える文字列を指定します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 SMP$ = "SAMPLE"

MID$(SMP$, 2, 2) = "abc"

変数SMP$に格納されている文字列を"SabPLE"(SMP$の内容の2文字目から2文字分

を”ab”に置き換えた文字列)に変換します。

使用例2 SMP$ = "SAMPLE"

MID$(SMP$, 3) = "abcd"

変数SMP$に格納されている文字列を"SAabcd "(SMP$の内容の3文字目から4文字分

を”abc”に置き換えた文字列)に変換します。

使用例3 SMP$ = "あいうえお"

MID$(SMP$, 3) = "かきく"

変数SMP$の内容を"あいかきく"に変換します。

<文字変数>の内容や<文字列>が全角文字の場合でも使用できます。

Page 90: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

90

2.3.62 MID$

関数 i99-BASIC i99-REAL

機 能 文字列の中から任意の長さの文字列を抜き出します。

書 式 MID$(<文字列>, <開始位置> [, <文字数>])

<文字列>

抜き出し対象の文字列を指定します。

<開始位置>

抜き出す開始位置を1以上で指定します。

<文字列>の文字数より大きければ、空の文字列を返します。

<文字数>

抜き出す文字数を0以上で指定します。

省略した場合や、<開始位置>以降の文字数より大きい値を指定した場合は、<開始位

置>以降の文字列をすべて抜き出します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 SMP$ = MID$("SAMPLE", 2, 3)

変数SMP$に"AMP"(”SAMPLE”の2文字目から3文字取り出した文字列)を代入します。

使用例2 SMP$ = MID$("SAMPLE", 3)

変数SMP$に"MPLE"(”SAMPLE”の3文字目以降を取り出した文字列)を代入します。

使用例3 SMP$ = MID$("あいうえお", 2, 3)

変数SMP$に"いうえ"を代入します。

<文字変数>の内容や<文字列>が全角文字の場合でも使用できます。

Page 91: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

91

2.3.63 MIDB$ = “文字列”

命令 i99-BASIC i99-REAL

機 能 文字列の一部をバイト単位で置き換えます。

書 式 MIDB$(<文字変数>, <開始位置> [, <バイト数>]) = <文字列>

<文字変数>

置き換え対象の文字変数を指定します。

<開始位置>

置き換える開始位置を1~対象のバイト数で指定します。

<バイト数>

置き換えるバイト数を0以上で指定します。

省略した場合や、<文字列>のバイト数より大きい値を指定した場合は、<文字列>のす

べての文字と置き換えます。0を指定した場合は、置き換えられません。

<文字列>

置き換える文字列を指定します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

使用例 SRC$=CHRB$(0)+CHRB$(1)+CHRB$(2)+CHRB$(3)

MIDB$(SRC$, 2, 2)=CHRB$(10)+CHRB$(11)

SRC$は、4バイトのバイトデータ(文字列形式)です。

MIDB$により、先頭2バイト目から2バイトのバイトデータを、右辺のバイトデータに置

き換えます。

結果、SMP$には「CHRB$(0)+CHRB$(10)+CHRB$(11)+ CHRB$(3)」のバイトデータが得られ

ます。

Page 92: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

92

2.3.64 MIDB$

関数 i99-BASIC i99-REAL

機 能 文字列の中から任意のバイト数分の文字列を抜き出します。

書 式 MIDB$(<文字列>, <開始位置> [, <バイト数>])

<文字列>

抜き出し対象の文字列を指定します。

<開始位置>

抜き出す開始位置を1以上のバイト数単位で指定します。

<文字列>のバイト数より大きければ、空の文字列を返します。

<バイト数>

抜き出すバイト数を0以上で指定します。

省略した場合や、<開始位置>以降のバイト数より大きい値を指定した場合は、<開始

位置>以降の文字列をすべて抜き出します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

使用例 SRC$=CHRB$(0)+CHRB$(1)+CHRB$(2)+CHRB$(3)

SMP$=MIDB$(SRC$, 2, 2)

SRC$は、4バイトのバイトデータ(文字列形式)です。

MIDB$により、先頭2バイト目から2バイトのバイトデータを抜き出し、SMP$には

「CHRB$(1)+CHRB$(2)」のバイトデータが得られます。

2.3.65 MINUTE

関数 i99-BASIC i99-REAL

機 能 指定時刻(文字列)の分を返します。

書 式 MINUTE(<文字列>)

<文字列>

分を求める時刻を指定します。

備 考 <文字列>が時刻でない場合、0を返します。

時刻の書式は、24時間表記とします。

閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例1 NUM = MINUTE("14:03:15")

変数NUMにMINUTEの実行結果3を代入します。

Page 93: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

93

2.3.66 MKD$

関数 i99-BASIC i99-REAL

機 能 数値データを数値の内部表現に対応した文字列に変換します。数値データをランダム

データファイルに対して書き出す際、文字列に変換するために使用します。

元に戻すにはCVD関数を使用します。

書 式 MKD$(<倍精度実数値>)

<倍精度実数値>

8文字の文字列を求める倍精度実数値を指定します。

備 考 8文字の文字列に変換できる実数値は実質的にCVD(→「2.3.17 CVD」)によって得られ

る値のみです。

使用例 TMP# = CVD(“ABCDEFGH”)

SMP$ = MKD$(TMP#)

変数SMP$にMKD$の実行結果を代入します。

2.3.67 MKI$

関数 i99-BASIC i99-REAL

機 能 数値データを数値の内部表現に対応した文字列に変換します。数値データをランダム

データファイルに対して書き出す際、文字列に変換するために使用します。

元に戻すにはCVI関数を使用します。

書 式 MKI$(<単精度整数値>)

<単精度整数値>

4文字の文字列を求める単精度整数値を指定します。

備 考 4文字の文字列に変換できる整数値は実質的にCVI(→「2.3.18 CVI」)によって得られ

る値のみです。

使用例 TMP% = CVI(“ABCD”)

SMP$ = MKI$(TMP%)

変数SMP$にMKI$の実行結果を代入します。

2.3.68 MKL$

関数 i99-BASIC i99-REAL

機 能 数値データを数値の内部表現に対応した文字列に変換します。数値データをランダム

データファイルに対して書き出す際、文字列に変換するために使用します。

元に戻すにはCVL関数を使用します。

書 式 MKL$(<倍精度整数値>)

<倍精度整数値>

8文字の文字列を求める倍精度整数値を指定します。

備 考 8文字の文字列に変換できる整数値は実質的にCVL(→「2.3.19 CVL」)によって得られ

る値のみです。

使用例 TMP& = CVL(“ABCDEFGH”)

SMP$ = MKL$(TMP&)

変数SMP$にMKL$の実行結果を代入します。

Page 94: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

94

2.3.69 MKS$

関数 i99-BASIC i99-REAL

機 能 数値データを数値の内部表現に対応した文字列に変換します。数値データをランダム

データファイルに対して書き出す際、文字列に変換するために使用します。

元に戻すにはCVS関数を使用します。

書 式 MKS$(<単精度実数値>)

<単精度実数値>

4文字の文字列を求める単精度実数値を指定します。

備 考 4文字の文字列に変換できる整数値は実質的にCVS(→「2.3.20 CVS」)によって得られ

る値のみです。

使用例 TMP! = CVS(“ABCD”)

SMP$ = MKS$(TMP!)

変数SMP$にMKS$の実行結果を代入します。

2.3.70 MONTH

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)の月を返します。

書 式 MONTH(<文字列>)

<文字列>

月を求める日付を指定します。

備 考 <文字列>が日付でない場合、0を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = MONTH("2013/07/15")

変数NUMにMONTHの実行結果7を代入します。

2.3.71 OCT$

関数 i99-BASIC i99-REAL

機 能 10進数を8進数の文字列に変換します。

書 式 OCT$(<数値>)

<数値>

8進数を求める数値を指定します。

指定された数値が整数でない場合は、四捨五入されてから評価されます。

使用例 SMP$ = OCT$(255)

変数SMP$に255の8進数表示377を代入します。

Page 95: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

95

2.3.72 RANDOMIZE

命令 i99-BASIC i99-REAL

機 能 新しい乱数系列を設定します。

書 式 RANDOMIZE [<数式>]

<数式>

RND関数で発生させる擬似乱数の発生系列を単精度整数型で指定します。

範囲を超えて指定した場合は、単精度整数型に丸められます。

同じ系列を指定すると、RND関数は同じ繰返しで擬似乱数を発生させます。

省略した場合は1になります。

備 考 RND(→「2.3.76 RND」)

使用例1 RANDOMIZE 5

NUM = RND

発生系列に5を指定してRANDOMIZEを実行して乱数系列を設定します。

その後変数NUMにRNDによって生成した乱数を代入します。

使用例2 RANDOMIZE

NUM = RND

RANDOMIZEを実行して乱数系列を設定します。

その後変数NUMにRNDによって生成した乱数を代入します。

2.3.73 REPLACE$

関数 i99-BASIC i99-REAL

機 能 文字列中の指定文字を別の文字列に置き換えます。

書 式 REPLACE$(<文字列>, <指定文字列>, <置換文字列>)

<文字列>

置換対象の文字列を指定します。

<指定文字列>

置換される文字列を指定します。

<置換文字列>

置換する文字列を指定します。

使用例1 CHAR$ = REPLACE$("123456", "123", "ABC")

変数CHAR$に"ABC456"(”123456”の”123”を”ABC”に置き換えた文字列)を代入し

ます。

使用例2 CHAR$ = REPLACE$("あいうえお", "あいう", "かきく")

変数CHAR$に"かきくえお"("あいうえお"の”あいう”を”かきく”に置き換えた文字

列)を代入します。

Page 96: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

96

2.3.74 RIGHT$

関数 i99-BASIC i99-REAL

機 能 文字列の右側から任意の長さの文字列を抜き出します。

書 式 RIGHT$(<文字列>, <抜き出す文字数>)

<文字列>

抜き出し対象の文字列を指定します。

<抜き出す文字数>

抜き出す文字列の長さを0以上で指定します。

<文字列>の長さより大きい場合、<文字列>をそのまま返します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 SMP$ = RIGHT$("SAMPLE", 4)

変数SMP$に"MPLE"(”SAMPLE”の右側4文字を取り出した文字列)を代入します。

使用例2 SMP$ = RIGHT$("あいうえお", 4)

対象の文字列が全角文字でも使用できます。

変数SMP$に"いうえお"を代入します。

使用例3 SMP$ = RIGHT$("SAMPLE", 7)

<抜き出す文字数>が<文字列>の字数を上回っているため、”SAMPLE”をそのまま代入し

ます。

2.3.75 RIGHTB$

関数 i99-BASIC i99-REAL

機 能 文字列の右側から任意のバイト数分の文字列を抜き出します。

書 式 RIGHTB$(<文字列>, <抜き出すバイト数>)

<文字列>

抜き出し対象の文字列を指定します。

<抜き出すバイト数>

抜き出す文字列の長さを0以上で指定します。

<文字列>の長さより大きい場合、<文字列>をそのまま返します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

使用例 SRC$=CHRB$(0)+CHRB$(1)+CHRB$(2)+CHRB$(3)

SMP$=RIGHTB$(SRC$, 2)

SRC$は、4バイトのバイトデータ(文字列形式)です。

RIGHTB$により、後方2バイトのバイトデータを抜き出し、SMP$には「CHRB$(2)+CHRB$(3)」

のバイトデータが得られます。

Page 97: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

97

2.3.76 RND

関数 i99-BASIC i99-REAL

機 能 0以上1未満の乱数を返します。

得られる乱数は、RUNが実行されるごとにいつも同系列となります。

ただし、RANDOMIZEを使用すれば、この系列を変えることができます。

書 式 RND[(<数式>)]

<数式>

本関数の挙動を以下の値で指定します。

省略した場合、正の数を指定したのと同じ機能になります。

負の数: 乱数系列を初期化した後に、乱数の値をとる

0 :1つ前に発生した乱数の値をとる(繰り返す)

正の数: 次の乱数を発生する

備 考 RANDOMIZE(→「2.3.72 RANDOMIZE」)

使用例 10 PRINT RND

20 PRINT RND

30 PRINT RND(0)

RUN

0.447415203064408

0.291984428321935

0.291984428321935

行番号30のRND(0)では行番号20で実行したRNDと同じ値が出力されます。

Page 98: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

98

2.3.77 ROUND

関数 i99-BASIC i99-REAL

機 能 指定数値を指定位置で四捨五入します。

書 式 ROUND(<数値>[, <有効桁数>])

<数値>

四捨五入する数値を指定します。

<有効桁数>

小数点以下の有効桁数を指定します。

省略すると小数点以下1桁目を四捨五入します。

備 考 正の値を指定すると小数点以下を、負の値だと小数点以上を四捨五入します。

使用例1 NUM = ROUND(123.456)

変数NUMに123(123.456の小数第1位を四捨五入した値)を代入します。

使用例2 NUM = ROUND(123.456789, 3)

変数NUMに123.457(123.456789の少数第4位を四捨五入した値)を代入します。

使用例3 NUM = ROUND(123.456, -1)

変数NUMに120(123.456の整数部の1桁目を四捨五入した値)を代入します。

2.3.78 RTRIM$

関数 i99-BASIC i99-REAL

機 能 文字列の後から全半角スペースを削除します。

書 式 RTRIM$(<文字列>)

<文字列>

スペースを削除する文字列を指定します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例 CHAR$ = RTRIM$(" 123 ")

変数CHAR$に" 123"(文字列の終端が全半角スペース以外になるように全半角スペース

を削除したもの)を代入します。

Page 99: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

99

2.3.79 SECOND

関数 i99-BASIC i99-REAL

機 能 指定時刻(文字列)の秒を返します。

書 式 SECOND(<文字列>)

<文字列>

秒を求める時刻を指定します。

備 考 <文字列>が時刻でない場合、0を返します。

時刻の書式は、24時間表記とします。

閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例1 NUM = SECOND("14:03:15")

変数NUMにSECONDの実行結果15を代入します。

2.3.80 SGN

関数 i99-BASIC i99-REAL

機 能 符号を調べます。数式に指定された値の正負により以下の値を返します。

正 : 1

0 : 0

負 : -1

書 式 SGN(<数式>)

<数式>

符号を調べる数式を指定します。

使用例 NUM = SGN(-3)

変数NUMに-1を代入します。

2.3.81 SIN

関数 i99-BASIC i99-REAL

機 能 正弦を返します。

書 式 SIN(<数式>)

<数式>

正弦を求める数式を指定します。

使用例 PI = 3.14159265358979

NUM = SIN(PI / 6)

変数NUMにsin(PI / 6) ≒ 0.5を代入します。

Page 100: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

100

2.3.82 SPACE$, SPC

関数 i99-BASIC i99-REAL

機 能 任意の数の空白文字を返します。

書 式 SPACE$(<空白文字数>)

SPC(<空白文字数>)

<空白文字数>

空白文字の数を0以上で指定します。

使用例1 PRINT "abc"; SPACE$(5); "def"

“abc def”が出力されます。

使用例2 PRINT "abc"; SPC(3); "456"

“abc 456”が出力されます。

2.3.83 SPLIT$

関数 i99-BASIC -

機 能 区切り記号入り文字列に対して、区切り文字列から、文字列を区切り、1次元配列の文

字列を生成します。

書 式 <戻り値> = SPLIT$(<対象文字列> [, <区切り文字列> [, < 大分割数> ] ] )

<対象文字列>

区切り記号入りの文字列。

この文字列を区切り文字列で分割して、1次元の文字列配列を生成します。

<区切り文字列>

区切り記号入り文字列である対象文字列に対する、区切り文字列を指定します。

省略すると、1文字の空白(“ “)となります。

< 大分割数>

返す文字列配列の 大要素数を指定します。

省略すると、全て区切ります(-1)。

<戻り値>

区切り文字列から分割された、1次元配列の文字列です。

注 意 i99-REALでは、マルチバイト文字はご使用いただけません。

使用例 A$ = SPLIT$("hello,i99-BASIC,world", ",")

[“hello”; “i99-BASIC”; “world”] の1次元の文字列配列が得られます。

Page 101: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

101

2.3.84 SQR

関数 i99-BASIC i99-REAL

機 能 平方根を返します。

書 式 SQR(<数式>)

<数式>

平方根を求める数式を指定します。

備 考 結果が非数の場合はnanを返します。

使用例 NUM# = SQR(3)

変数NUM#に√3 ≒ 1.73205080756888を代入します。

2.3.85 STR$

関数 i99-BASIC i99-REAL

機 能 数値を文字列に変換します。

書 式 STR$(<数値>)

<数値>

文字列に変換する数値を指定します。

使用例 SMP$ = STR$(123)

変数SMP$に”123”を代入します。

Page 102: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

102

2.3.86 STRCOMP

関数 i99-BASIC i99-REAL

機 能 2つの文字列を比較した結果を表す数値を返します。

書 式 <戻り値> = STRCOMP(<比較文字列1>, <比較文字列2>)

<比較文字列1>, <比較文字列2>

比較対照となる文字列を与えます。

<戻り値>

比較する文字列は、ユニコード文字列として比較します。

-1 : 比較文字列1 < 比較文字列2

0 : 比較文字列1 = 比較文字列2

1 : 比較文字列1 > 比較文字列2

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例 PRINT STRCOMP("i99-BASIC", "world")

上の例では、-1が返ります。

2.3.87 STRCOMPB

関数 i99-BASIC i99-REAL

機 能 2つのバイナリ文字列を比較した結果を表す数値を返します。

書 式 <戻り値> = STRCOMPB(<比較バイナリ文字列1>, <比較バイナリ文字列2>)

<比較バイナリ文字列1>, <比較バイナリ文字列2>

比較対照となるバイナリ文字列を与えます。

<戻り値>

比較するバイナリ文字列は、全てのデータサイズ分を比較します。

-1 : 比較バイナリ文字列1 < 比較バイナリ文字列2

0 : 比較バイナリ文字列1 = 比較バイナリ文字列2

1 : 比較バイナリ文字列1 > 比較バイナリ文字列2

備 考 CHR$(0)を含んだバイナリ文字列を、STRCOMPで比較すると、ユニコード文字列として比

較するので、等値か否かを判断できません。

STRCOMPBは、バイナリ文字列として比較するので、等値か否かを判別できます。

使用例 PRINT STRCOMPB(“test", "test"+CHR$(0))

上の例では、-1が返ります。仮に、STRCOMPで比較すると、0が返ります。

Page 103: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

103

2.3.88 STRDEL$

関数 i99-BASIC i99-REAL

機 能 文字列の中から任意の位置から指定した文字長の文字列を削除します。

書 式 STRDEL$(<文字列>, <開始位置> [, <削除する文字数>])

<文字列>

操作対象の文字列を指定します。

<開始位置>

削除する開始位置を1以上で指定します。

<文字列>の文字数より大きいと文字長と同じになります。

<削除する文字数>

削除する文字数を0以上で指定します。

省略した場合や、<開始位置>以降の文字数より大きい値を指定した場合は、<開始位

置>以降の文字列をすべて削除します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例 SMP$ = MID$("1い3ろ5は", 2, 3)

文字列 "1い3ろ5は"の2番目から3文字を削除します。

変数SMP$には、”15は”が得られます。

2.3.89 STRDELB$

関数 i99-BASIC i99-REAL

機 能 文字列の中から任意の位置から指定したバイト長の文字列を削除します。

書 式 STRDELB$(<文字列>, <開始位置> [, <削除するバイト数>])

<文字列>

操作対象の文字列を指定します。

<開始位置>

削除する開始位置を1以上で指定します。

<文字列>の格納バイト数より大きいと格納バイト長と同じになります。

<削除するバイト数>

削除するバイト数を0以上で指定します。

省略した場合や、<開始位置>以降のバイト数より大きい値を指定した場合は、<開始

位置>以降の文字列をすべて削除します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例 SRC$=CHRB$(0)+CHRB$(1)+CHRB$(2)+CHRB$(3)

SMP$ = STRDELB$(SRC$, 2, 2)

SRC$は、4バイトのバイトデータ(文字列形式)です。

STRDELB$により、先頭2バイト目から2バイトのバイトデータを削除します。

変数SMP$には、「CHRB$(0)+CHRB$(3)」のバイトデータが得られます。

Page 104: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

104

2.3.90 STRING$

関数 i99-BASIC i99-REAL

機 能 任意の文字を任意の数だけ連結した文字列を返します。

書 式 STRING$(<文字数>, <文字式/数式>)

<文字数>

連結する文字数を指定します。

<文字式/数式>

<文字式>に指定した文字、または<数式>に指定したキャラクターコード(0~127)に該

当する文字を連結します。<文字式>の場合には 初の1文字のみが用いられます。<

数式>の場合には、ASCで得られるキャラクターコードを指定してください。<数式>

が整数でない場合は、四捨五入されてから評価されます。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 SMP$ = STRING$(3, "X")

変数SMP$に"XXX"を代入します。

使用例2 SMP$ = STRING$(3, "あいう")

変数SMP$に"あああ"を代入します。

<文字式>に指定した値は 初の1文字のみが用いられるので、[あいう]のうち[あ]を3

個連結した結果になります。

使用例3 SMP$ = STRING$(3, 88)

変数SMP$に"XXX"を代入します。

Page 105: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

105

2.3.91 STRINS$

関数 i99-BASIC i99-REAL

機 能 文字列の中から任意の位置に文字列を挿入します。

書 式 STRINS$(<文字列>, <開始位置>, <挿入する文字列>)

<文字列>

操作対象の文字列を指定します。

<開始位置>

挿入する開始位置を1以上で指定します。

<文字列>の文字数より大きいと文字数と同じになります。

<挿入する文字列>

挿入する文字列を指定します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例 SMP$ = STRINS$("1い3ろ5は", 3, “a歩”)

文字列 "1い3ろ5は"の3番目から”a歩”を挿入します。

変数SMP$には、"1いa歩3ろ5は"が得られます。

2.3.92 STRINSB$

関数 i99-BASIC i99-REAL

機 能 文字列の中から任意の位置にバイトデータ文字列を挿入します。

書 式 STRINSB$(<文字列>, <開始位置>, <挿入する文字列>)

<文字列>

操作対象の文字列を指定します。

<開始位置>

挿入する開始位置を1以上で指定します。

<文字列>の格納バイト数より大きいと格納バイト長と同じになります。

<挿入する文字列>

挿入するバイトデータ文字列を指定します。

備 考 ・ この関数は、文字列のデータをバイトデータとして扱う為に用意されています。

・ 得られる値は文字列形式ですが、PRINT文などで表示できない場合があります。

(PRINT文で表示するには、UTF-8形式の文字列である必要があります)

使用例 SRC$=CHRB$(0)+CHRB$(1)+CHRB$(2)+CHRB$(3)

SMP$ = STRINSB$(SRC$, 2, CHRB$(10)+CHRB$(11))

SRC$は、4バイトのバイトデータ(文字列形式)です。

STRDELB$により、先頭2バイト目から2バイトのバイトデータを挿入します。

変数SMP$には、

「CHRB$(0)+ CHRB$(10)+CHRB$(11)+CHRB$(1)+CHRB$(2)+CHRB$(3)」のバイトデータが得

られます。

Page 106: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

106

2.3.93 STRUCT

命令 i99-BASIC i99-REAL

機 能 構造体変数を宣言します。

書 式 STRUCT <構造体名> <変数名> [, <変数名> …]

<構造体名>

構造体名を指定します。

<変数名>

構造体変数の名前を指定します。

注 意 構造体自体のPRINT, 構造体同士の代入はできません。

使用例 DEFINE STRUCT SITE

ID

ADDR$

END STRUCT

STRUCT SITE OFFICE(2)

OFFICE(0).ID = 1

OFFICE(0).ADDR$ = "HIROSHIMA"

PRINT OFFICE(0).ID, OFFICE(0).ADDR$

IDとADDR$をメンバ変数に持つ構造体SITEを宣言し、

SITE型の構造体変数OFFICEを宣言します。

その後、添字0のメンバ変数IDに1、ADDR$に”HIROSHIMA”を設定し、

同じ内容を画面に出力します。

Page 107: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

107

2.3.94 SWAP

命令 i99-BASIC i99-REAL

機 能 2つの変数の値を入れ替えます。

両方の変数の型が一致していないとエラーが発生します。

書 式 SWAP <変数1>, <変数2>

<変数1>, <変数2>

値を入れ替える変数を指定します。

使用例1 10 SAMPLE =10

20 TEST = 20

30 PRINT “SAMPLE = “;SAMPLE;”,TEST = “;TEST

40 SWAP SAMPLE, TEST

50 PRINT “SAMPLE = “;SAMPLE;”,TEST = “;TEST

RUN

SAMPLE = 10,TEST = 20

SAMPLE = 20,TEST = 10

行番号40の実行により、変数SAMPLEと変数TESTの内容が入れ替わります。

使用例2 10 AA$ = ”TEXT_A”

20 BB$ = “TEXT_B”

30 PRINT “AA$ = “ ; AA$ ; ”,BB$ = “ ; BB$

40 SWAP AA$, BB$

50 PRINT “AA$ = “ ; AA$ ; ”,BB$ = “ ; BB$

RUN

AA$ = “TEXT_A”,BB$ = “TEXT_B”

AA$ = “TEXT_B”,BB$ = “TEXT_A”

行番号40の実行により、変数AA$と変数BB$の内容が入れ替わります。

Page 108: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

108

2.3.95 TAB

関数 i99-BASIC i99-REAL

機 能 出力対象行の任意の位置まで空白を出力します。出力の対象となる行の行頭から、<数

式>に指定した桁数分だけ、空白(スペース)を空けます。

書 式 TAB(<数式>)

<数式>

出力対象行を空白で埋める桁数を0~255で指定します。

負数を指定した場合は0に、256以上を指定した場合は255に丸められます。

備 考 ・TABはPRINT等の出力文中でのみ使用することができるもので、文字式としては使えま

せん。

・指定の桁数がTABより前の文字数よりも小さい場合、次行の行頭から数えた桁数分だ

け空白を空けます。

使用例1 PRINT "abc"; TAB(5); "def"

TAB(5)により“def”が左端から半角スペース5つ分の余白を空けた位置に出力され、

“abc def”が出力されます。

使用例2 PRINT "abc"; TAB(1); "def"

TAB(1)により“def”が左端から半角スペース1つ分の余白を空けた位置に出力され、

“abc

def”

が出力されます。

2.3.96 TAN

関数 i99-BASIC i99-REAL

機 能 正接を返します。

書 式 TAN(<数式>)

<数式>

正接を求める数式を指定します。

使用例 PI = 3.141592653589793

NUM = TAN(PI / 4)

変数NUMにtan(PI / 4) ≒ 1を代入します。

Page 109: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

109

2.3.97 TIME$ = “文字列”

命令 i99-BASIC -

機 能 時刻を設定します。

書 式 TIME$ = <時刻>

<時刻>

設定する時刻をHH:MM:SS形式で指定します。

時, 分, 秒のいずれかを-1に指定した場合、その時, 分, 秒は現在の値が採用されま

す。

備 考 閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例 TIME$ = “01:23:45”

現在時刻を1時23分45秒に設定します。

2.3.98 TIME$

関数 i99-BASIC i99-REAL

機 能 時刻を返します。

書 式 TIME$

今の時刻を返します。

TIME$(<秒数>)

“00:00:00”を起点として指定秒数を時刻に換算して返します。

TIME$(<時>, <分>, <秒>)

今から指定の時間だけ前後した時刻を返します。

<秒数>

求める時刻の起点から数えた秒数を指定します。

<時>, <分>, <秒>

求める時刻の今から数えた時間を指定します。

過去の場合は負数で指定します。例えば、1秒前は-1で表します。

使用例1 SMP$ = TIME$

変数SMP$に現在時刻を代入します。

例えば、現在時刻が1時2分3秒の場合、"01:02:03" を代入します。

使用例2 SMP$ = TIME$(119)

変数SMP$に119秒を時刻に換算した文字列”00:01:59" を代入します。

使用例3 SMP$ = TIME$(1, -2, 3)

変数SMP$に現在時刻の58分3秒後(1,-2,3 = 1時間後,2分前,3秒後のため)の時刻を

代入します。

例えば、現在時刻が1時2分3秒の場合、"02:00:06" を代入します。

Page 110: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

110

2.3.99 TIMECALC$

関数 i99-BASIC i99-REAL

機 能 指定時刻(文字列)から指定秒数を加減算した時刻を返します。

書 式 TIMECALC$(<文字列>, <秒数>)

<文字列>

計算の基点となる時刻を指定します。

時刻の書式は、24時間表記とします。

<秒数>

加減算する秒数を指定します。

備 考 <文字列>が時刻でない場合、エラーを返します。

閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例1 NUM$ = TIMECALC$("23:59:59", 1)

変数NUM$に"23:59:59" の1秒後の時刻“00:00:00”を代入します。

使用例2 NUM$ = TIMECALC$("23:59:59", -1)

変数NUM$に"23:59:59" の1秒前の時刻“23:59:58”を代入します。

2.3.100 TIMEDIFF

関数 i99-BASIC i99-REAL

機 能 指定時刻1(文字列1)から指定時刻2(文字列2)までの秒数を返します。

書 式 TIMEDIFF(<文字列1>, <文字列2>)

<文字列1>

計算の基点となる時刻を指定します。

<文字列2>

計算の終点となる時刻を指定します。

備 考 <文字列1>、<文字列2>が日付でない場合、エラーを返します。

閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例1 NUM = TIMEDIFF("00:00:00", “00:00:01”)

変数NUMに1("00:00:00"と“00:00:01”の秒数の差)を代入します。

使用例2 NUM = TIMEDIFF("23:59:59", “23:59:58”)

変数NUMに-1を代入します。

Page 111: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

111

2.3.101 TIMENUM

関数 i99-BASIC i99-REAL

機 能 指定時刻(文字列)を秒数に換算して返します。

書 式 TIMENUM(<文字列>)

<文字列>

計算する時刻を指定します。

時刻の書式は、24時間表記とします。

備 考 ”00:00:00”を起点として換算します。

<文字列>が時刻でない場合、エラーを返します。

閏年ではない年に閏秒を入力すると、翌分の0秒に繰り越されます。

使用例1 NUM = TIMENUM("00:01:59")

変数NUMに1分59秒の秒数119を返します。

2.3.102 TIMER

関数 i99-BASIC i99-REAL

機 能 紀元(1970-01-01 00:00:00(UTC))からの経過秒数を返します。

書 式 TIMER

使用例 NUM = TIMER

変数NUMに紀元からの経過秒数を代入します。

2.3.103 TRIM$

関数 i99-BASIC i99-REAL

機 能 文字列の前後から全半角スペースを削除します。

書 式 TRIM$(<文字列>)

<文字列>

スペースを削除する文字列を指定します。

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 CHAR$ = TRIM$(" 123 ")

変数CHAR$に"123"(文字列の先頭および終端が全半角スペース以外になるように全半角

スペースを削除したもの)を代入します。

使用例2 CHAR$ = TRIM$(" あいうえお 123 ")

引数に全角文字が含まれている場合でも使用できます。

変数CHAR$に"あいうえお 123"を代入します。

Page 112: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

112

2.3.104 TRUNC

関数 i99-BASIC i99-REAL

機 能 指定数値を指定位置で切り捨てます。

書 式 TRUNC(<数値>[, <指定位置>])

<数値>

切り捨てる数値を指定します。

<有効桁数>

小数点以下の有効桁数を指定します。

省略すると小数点以下を切り捨てます。

備 考 正の値を指定すると小数点以下を、負の値だと小数点以上を切り捨てます。

使用例1 NUM = TRUNC(123.456)

変数NUMに123(123.456の小数部を切り捨てた数値)を代入します。

使用例2 NUM = TRUNC(123.456, 1)

変数NUMに123.4(123.456の小数第2位以下を切り捨てた数値)を代入します。

使用例3 NUM = TRUNC(123.456, -1)

変数NUMに120(123.456の整数部の1桁目以下を切り捨てた数値)を代入します。

2.3.105 UCASE$

関数 i99-BASIC i99-REAL

機 能 文字列中の小文字(半角英字)を大文字に変換します。

書 式 UCASE$(<文字列>)

<文字列>

変換対象の文字列を指定します。

使用例1 SMP$ = UCASE$("sample")

変数SMP$に"SAMPLE"を代入します。

使用例2 SMP$ = UCASE$("samPLE")

大文字が混在する場合も使用できます。

変数SMP$に"SAMPLE"を代入します。

Page 113: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.3.106 USING$

関数 i99-BASIC i99-REAL

機 能 文字列や数値等を指定した書式に変換します。

書 式 USING$(<書式制御文字列>; <文字列/数値> [; | , <文字列/数値> …])

<書式制御文字列>

文字列用

記号 内容

! 文字列の先頭1文字だけを出力します。

&<n個の空白>&文字列の先頭からn+2文字出力します。文字列がn+2文字より長

い場合は余分な文字は無視され、短い場合は左詰で出力された

残りには空白が出力されます。

@文字列全体を出力します。複数個指定した場合、1つの"@"に対して1つの文字列が出力されます。"@"の数が文字列の数よ

り多い場合は、余った"@"は無視されます。

数値用

記号 内容

#数値を出力する桁数を指定します。指定した桁数より数値の桁数が小さい場

合は右詰で出力します。指定した桁数より数値の桁数が大きい場合は数値の

直前に"%"が出力されます。

. 小数点の位置を指定します。小数点以下の部分で冗長となる桁には0が出力

されます。

+ 書式制御文字列の 初または 後に付けた場合、数値の符号が前または後ろ

に出力されます。2個以上並べた場合は、そのまま出力されます。

-書式制御文字列の 後に付けた場合、数値が負数の時に数値の後ろに"-"が出力されます。前に付けたり、2個以上並べた場合は、そのまま出力されま

す。

** 書式制御文字列の 初に付けた場合、数値の左側の空白を"*"で埋めて出力

します。

$$ 書式制御文字列の 初に付けた場合、出力される数値の直前に"¥"を出力し

ます。

**$ 書式制御文字列の 初に付けた場合、"**"と"$$"を合わせた書式になりま

す。

, 桁数指定の"#"と一緒に付けた場合、数値の整数部が3桁ごとに","で区切られ

て出力します。ただし"."より右側に付けた場合は機能しません。

^ 桁数指定の"#"の後に付けた場合、指数形式で出力します。なお、指数形式

で出力時、桁数指定は無効となります。

その他

記号 内容

_ 書式制御文字1文字をそのまま文字として出力します。

制御文字以外

数値の前や後ろにその文字が出力されます。 <文字列/数値>

出力する文字列/数値を指定します。セミコロン(;)で区切ると、各文字列/数値を連

続して出力します。カンマ(,)で区切ると、各文字列/数値間にタブを出力します。

- - Interface Corporation

113

Page 114: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

114

注 意 i99-REALではマルチバイト文字はご使用いただけません。

使用例1 A=5

A$=USING$("A=#"; A)

PRINT A$

「A=5」 という文字列を出力します。

使用例2 A=123456789

A$=USING$("#,#.#"; A)

PRINT A$

「123,456,789」という文字列を出力します。

使用例3 A=1000

A$=USING$("$$###,"; A)

PRINT A$

「\1000」という文字列を出力します。

使用例4 A$=USING$("@=$$### "; "Books", 2550, "Tickets", 1440, "Drinks", 4300)

PRINT A$

「Books=\2550 Tickets=\1440 Drinks=\4300」という文字列を出力します。

2.3.107 VAL

関数 i99-BASIC i99-REAL

機 能 文字列表記の数値を実際の数値に変換します。

書 式 VAL(<文字列表記の数値>)

<文字列表記の数値>

数値に変換する文字列を指定します。

整数表記(2進形式, 8進形式, 10進形式, 16進形式)および実数表記(通常の小数点形

式, 指数形式)のいずれも指定できます。

初の文字が数字、または +, -, &でなければ、VALの値は0になります。

使用例1 NUM = VAL("123")

変数NUMに123を代入します。

使用例2 NUM = VAL("&HFF")

変数NUMに255を代入します。

使用例3 NUM = VAL("1.23e+3")

変数NUMに1230を代入します。

Page 115: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

115

2.3.108 WEEK

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)の曜日を返します。

書 式 WEEK(<文字列>)

<文字列>

曜日を求める日付を指定します。

曜日は1~7の数値で返します。

1:日曜日

2:月曜日

3:火曜日

4:水曜日

5:木曜日

6:金曜日

7:土曜日

備 考 <文字列>が日付でない場合、0を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = WEEK("2013/07/15")

変数NUMに2を代入します。

2.3.109 WEEKS

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)がその年の第何週目かを返します。

書 式 WEEKS(<文字列>[, <週の始まり>])

<文字列>

週目を求める日付を指定します。

<週の始まり>

週の始まりの曜日を数値で指定します。(1:日曜日~7:土曜日)

指定しない場合、1(日曜日)になります。

備 考 <文字列>が日付でない場合、0を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = WEEKS("2013/01/06")

変数NUMに2を代入します。

使用例2 NUM = WEEKS("2013/01/06", 2)

変数NUMに1を代入します。

Page 116: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

116

2.3.110 YEAR

関数 i99-BASIC i99-REAL

機 能 指定日(文字列)の年を返します。

書 式 YEAR(<文字列>)

<文字列>

年を求める日付を指定します。

備 考 <文字列>が日付でない場合、0を返します。

扱える日時の範囲は、1901/12/15~2038/01/18です(32ビット環境時のみの制限)。

閏年ではない年に閏日を入力すると、翌月の初日に繰り越されます。

使用例1 NUM = YEAR("2013/07/15")

変数NUMに2013を代入します。

Page 117: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

117

2.4 配列に関する関数・命令

配列とは、複数の変数(数値や文字列)を格納するためのもので、変数同様、任意に名前を付けること

ができます。

Xという変数の箱を5個作る場合、以下のような宣言が必要となります。

DIM X(4)

この場合、配列はX(0)からX(4)までの5つの変数の箱となります。

X(0) = 100

X(1) = 5000

上記のように代入していきます。

X(0)

X(1)

X(2)

X(3)

X(4)

配列変数Xが必要なくなった時に以下のように入力すると、メモリから削除します。

ERASE X

多次元の配列も使用できます。

DIM Y(3,2)

Y(0, 0)

Y(1, 0)

Y(2, 0)

Y(3, 0)

Y(0, 1)

Y(1, 1)

Y(2, 1)

Y(3, 1)

Y(0, 2)

Y(1, 2)

Y(2, 2)

Y(3, 2)

指定範囲の配列も使用することができます。

下記のように記載すると、X(1)~X(3)に11, 12, 13と1ステップのデータが代入されます。

DIM X(5)

X(1 to 3)=11 to 13

他にも、下記のようにセミコロン( ; )やカンマ( , )で値を連続で記載して値を代入することができ

ます。

配列の添字内では、セミコロンは値の配列, カンマは次元の区切りを意味します。

本書式を使用する場合、右辺の先頭に指定している変数の値の型がすべてに依存してきます。

DIM X(5)

X(1;2;3)=11;12;13

DIM X(5)

X(1;2;3)=11,12,13

Page 118: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.4.1 CDIM

関数 i99-BASIC i99-REAL

機 能 配列の次元数を返します。

書 式 CDIM(<配列変数>)

<配列変数>

対象となる配列変数を指定します。

指定した配列変数の次元数が得られます。

配列変数でない場合、0が返ります。

使用例 DIM A(2,1)

? CDIM(A)

2

2次元配列に対して、CDIM関数を呼び出すと、2が返ります。

2.4.2 DIM

命令 i99-BASIC i99-REAL

機 能 配列変数を宣言します。

カンマ区切りで複数宣言することもできます。

書 式 DIM <変数名>(<添字 大値> [, <添字 大値> …]) [, <変数名>(<添字 大値> [, <

添字 大値> …]) …]

<変数名>

配列で宣言する変数名を指定します。

<添字 大値>

配列の添字の 大値を指定します。

注 意 ※

宣言済みの配列変数は宣言できないので、一度配列変数をERASE(→「2.4.3

ERASE」)により削除しなければなりません。

( )内は添字の 大値です。配列数ではありません。

例:DIM A(2)と2を指定した場合、A(0),A(1),A(2)の3つが宣言されます。

※ 配列の添字 小値は0です。

※ 添字に指定できる 大値は、単精度整数の 大(2,147,483,646)までです。

※ 添字は必ず指定する必要があります。i99-BASIC では、暗黙的に定義されません。

※ 次元に指定できる 大値は、1次元に換算して、添字の 大値までです。

実際に配列が確保できるかどうかは、使用しているコンピュータのメモリ容量の制限を

受けます。

備 考 配列の代入方法として下記が使用できます。

配列変数名 = 値の列記

配列変数名 = 配列変数名

配列変数名(添え字の列記) = 値の列記

配列変数名(添え字の列記) = 配列変数名(添え字の列記)

値/添え字の列記 := <式> TO <式> , …

;

値の列記時の区切りは、","も";"も同等に扱います。添え字の列記は、同一次元の

<式の>区切りは";"を使い、次元の区切りでは","を使用してください。

Interface Corporation - -

118

Page 119: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

119

TO指定は、ステップが1となります。

xx TO yy

xx < yyの場合

ステップが1でインクリメントされます。

xx > yyの場合

ステップが1でデクリメントされます。

使用例1 10 DIM a(3), b(3)

20 b(0)=10

30 b(1)=20

40 b(2)=30

50 a=b

60 PRINT a(0), a(1), a(2)

70 ERASE a,b

RUN

10 20 30

行番号[10]で配列a,bをそれぞれ添字 大値「3」で宣言しています。

行番号[20],[30],[40]で配列bへ値をセットしています。

行番号[50]で配列bの値を配列aへ代入しています。

行番号[60]では、配列aの値を画面表示しています。

行番号[70]では、配列a,配列bを削除しています。

使用例2 10 DIM a(5)

20 a=10 to 15

30 PRINT a

40 ERASE a

RUN

[10;11;12;13;14;15]

行番号[10]で配列aを添字 大値5で宣言しています。

行番号[20]で10~15の値(10,11,12,13,14,15)を配列の先頭から順に代入しています。

行番号[30]で代入した値を表示しています。

行番号[40]で配列aを削除しています。

使用例3 10 DIM a(5)

20 a=1, 2, 7 to 9, 20

30 PRINT a

40 ERASE a

RUN

[1;2;7;8;9;20]

行番号[20]の値代入時に、値をカンマ区切りとステップによって指定する例です。

使用例4 10 DIM a(5)

20 a=10;20;30;40;50;60

30 PRINT a

40 ERASE a

RUN

[10;20;30;40;50;60]

行番号[20]の値代入時に、値をセミコロンで区切って指定する例です。

使用例5 10 DIM a(5)

20 a=10, 20, 30, 40, 50, 60

30 PRINT a

40 ERASE a

Page 120: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

120

RUN

[10;20;30;40;50;60]

行番号[20]の値代入時に、値をカンマで区切って指定する例です。

使用例6 10 DIM a(4), b(2, 4)

20 b(1;2,1;2;3;4) =1;2;3;4,10;11;12;13

30 a(1;2;3;4) =100;200;300;400

40 PRINT b(1, 1), b(1, 2), b(1, 3), b(1, 4)

50 PRINT b(2, 1), b(2, 2), b(2, 3), b(2, 4)

60 PRINT a(1), a(2), a(3), a(4)

70 ERASE a

RUN

1 2 3 4

10 11 12 13

100 200 300 400

二次元配列を用いて値の格納、使用を行う例です。

2.4.3 ERASE

命令 i99-BASIC i99-REAL

機 能 配列変数を削除します。

カンマ区切りで配列変数を列挙することで、複数の配列変数を削除することもできま

す。

書 式 ERASE <変数名> [, <変数名> …]

<変数名>

削除する配列変数名を指定します。

使用例 DIM SAMPLE(5)

DIM TEST$(3)

ERASE SAMPLE, TEST$

宣言済みの配列、SAMPLE,TEST$ を削除します。

Page 121: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

121

2.4.4 LDIM

関数 i99-BASIC i99-REAL

機 能 配列の要素数を返します。

書 式 LDIM(<配列変数>[, <次元>])

<配列変数>

対象となる配列変数を指定します。

<次元>

要素数を返す次元を指定します。

指定しない場合、全要素数を返します。

備 考 存在しない次元を指定するとエラーが返ります。

使用例1 DIM A$(5)

L=LDIM(A$)

変数 L に配列A$の要素数 6 を代入します。

使用例2 DIM A$(2, 5)

L=LDIM(A$)

<次元>を指定しない場合、変数 L に配列A$の全要素数 18 を代入します。

使用例3 DIM A$(10, 5)

L=LDIM(A$, 2)

配列A$のうち、指定した <次元> 2 の要素数 6 を変数 L に代入します。

Page 122: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

122

2.4.5 SEARCH

関数 i99-BASIC i99-REAL

機 能 配列変数の中から指定された値を持つ要素を返します。

見付からなかった場合は、-1を返します。

書 式 SEARCH(<配列変数名>, <数値>[, <開始添字>][, <ステップ値>])

<配列変数名>

検索する配列変数を指定します。

<数値>

配列変数内の要素を求める数値を指定します。

配列変数内で 初にこの数値と一致した要素を返します。

<開始添字>

検索を開始する要素を0以上、添字 大値以下で指定します。

省略した場合、配列の先頭から検索します。

<ステップ値>

検索する間隔を1以上で指定します。省略した場合、1つずつ検索します。

使用例1 DIM A(9)

A = 1,2,3,4,5,6,7,8,9,1

NUM = SEARCH(A, 5)

変数NUMへ配列Aから数値 5 の格納場所を検索した結果 4 を代入します。

使用例2 DIM A(9)

A = 1,2,3,4,5,6,7,8,9,1

NUM = SEARCH(A, 5, 0, 2)

変数NUMへ配列Aから数値 5 の格納場所を開始添字 0,ステップ 2 の条件で検索した結

果 4 を代入します。

使用例3 DIM A(9)

A = 1,2,3,4,5,6,7,8,9,1

NUM = SEARCH(A, 20)

配列Aから数値 20 の格納場所を検索した結果、該当する値が見つからないので変数NUM

へ – 1 を代入します。

Page 123: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

123

2.4.6 SPLIT

命令 i99-BASIC i99-REAL

機 能 文字列を指定した区切り文字で分割し、配列変数へ格納します。

書 式 SPLIT <配列変数>, <文字列>[, <区切り文字列>]

<配列変数>

結果を格納する配列変数を指定します。

<文字列>

配列に格納する文字列を指定します。

<区切り文字列>

<文字列>を区切る文字列を指定します。

指定しない場合、カンマ(“,”)を指定します。

備 考 <区切り文字列>が続く箇所は、空文字列が代入されます。

文字列の分割数が<配列変数>の要素数を超えた場合、エラーを返します。

<文字列>が空文字列の場合、何も代入されません。

<区切り文字列>が空文字列の場合、<文字列>がそのまま代入されます。

Ver.3.00以降は、より便利なSPLIT$関数(P.100)を用意しておりますので、こちらをご

利用ください。

使用例 10 DIM A$(2)

20 SPLIT A$, “1,2,3”, “,”

30 PRINT A$

RUN

[1; 2; 3]

配列変数A$へ文字列「1,2,3」を区切り文字列「,」で区切って代入します。

Page 124: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

124

2.5 繰り返し・条件分岐に関する関数・命令

2.5.1 DO~LOOP

命令 i99-BASIC i99-REAL

機 能 DOからLOOPまでの区間中にある一連の命令を、無条件に繰り返して実行します。

書 式 DO

LOOP

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT DO文(→「2.5.6 EXIT DO」)を利用ください。

注意2 直接コマンドでは使用できません。

使用例 I = 0

DO

I = I + 1

PRINT I

IF I >= 5 THEN

EXIT DO

END IF

LOOP

DO~LOOP の中に記述された処理を無条件に繰り返し実行します。

2.5.2 DO~LOOP UNTIL

命令 i99-BASIC i99-REAL

機 能 DOからLOOPまでの区間中にある一連の命令を、指定条件を満たさない(FALSE)間、繰り

返して実行します。

書 式 DO

LOOP UNTIL <条件式>

<条件式>

繰り返し実行する条件を指定します。

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT DO文(→「2.5.6 EXIT DO」)を利用ください。

注意2 直接コマンドでは使用できません。

使用例 I = 0

DO

I = I + 1

PRINT I

LOOP UNTIL I>5

DO~LOOP UNTILの中に記述された処理を指定条件(Iが5より大きい)を満たさない間繰

り返し実行します。

Page 125: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

125

2.5.3 DO~LOOP WHILE

命令 i99-BASIC i99-REAL

機 能 DOからLOOPまでの区間中にある一連の命令を、指定条件を満たす(TRUE)間、繰り返して

実行します。

書 式 DO

LOOP WHILE <条件式>

<条件式>

繰り返し実行する条件を指定します。

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT DO文(→「2.5.6 EXIT DO」)を利用ください。

注意2 直接コマンドでは使用できません。

使用例 I = 0

DO

I = I + 1

PRINT I

LOOP WHILE I<6

DO~LOOP WHILEの中に記述された処理を指定条件(Iが6より小さい)を満たす間繰り返

し実行します。

2.5.4 DO UNTIL~LOOP

命令 i99-BASIC i99-REAL

機 能 DOからLOOPまでの区間中にある一連の命令を、指定条件を満たさない(FALSE)間、繰り

返して実行します。

書 式 DO UNTIL <条件式>

LOOP

<条件式>

繰り返し実行する条件を指定します。

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT DO文(→「2.5.6 EXIT DO」)を利用ください。

注意2 直接コマンドでは使用できません。

使用例 I = 0

DO UNTIL I>5

I = I + 1

PRINT I

LOOP

DO UNTIL~LOOPの中に記述された処理を指定条件(Iが5より大きい)を満たさない間繰

り返し実行します。

Page 126: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

126

2.5.5 DO WHILE~LOOP

命令 i99-BASIC i99-REAL

機 能 DOからLOOPまでの区間中にある一連の命令を、指定条件を満たす(TRUE)間、繰り返して

実行します。

書 式 DO WHILE <条件式>

LOOP

<条件式>

繰り返し実行する条件を指定します。

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT DO文(→「2.5.6 EXIT DO」)を利用ください。

注意2 直接コマンドでは使用できません。

使用例 I = 0

DO WHILE I<6

LOOP

DO WHILE~LOOPの中に記述された処理を指定条件(Iが6より小さい)を満たす間繰り返

し実行します。

2.5.6 EXIT DO

命令 i99-BASIC i99-REAL

機 能 DO~LOOP文の繰り返しから脱出します。

書 式 EXIT DO

注 意 直接コマンドでは使用できません。

備 考 DO~LOOP (→「2.5.1 DO~LOOP」)、DO~LOOP UNTIL(→「2.5.2 DO~LOOP UNTIL」)、

DO~LOOP WHILE(→「2.5.3 DO~LOOP WHILE」)、DO UNTIL~LOOP(→「2.5.4 DO UNTIL

~LOOP」)、DO WHILE~LOOP(→「2.5.5 DO WHILE~LOOP」) からの脱出に用います。

使用例 I = 0

DO

I = I + 1

IF I>5 THEN

EXIT DO

END IF

LOOP

Iの値が5より大きくなった時 DO~LOOP文の繰り返しから脱出する例です。

Page 127: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

127

2.5.7 EXIT FOR

命令 i99-BASIC i99-REAL

機 能 FOR~NEXT文の繰り返しから脱出します。

書 式 EXIT FOR

注 意 直接コマンドでは使用できません。

備 考 FOR~TO~STEP~NEXT (→「2.5.9 FOR~TO~STEP~NEXT」) からの脱出に用います。

使用例 FOR I=0 TO 10 STEP 1

IF I>5 THEN

EXIT FOR

END IF

NEXT I

Iの値が5より大きくなった時 FOR~NEXT文の繰り返しから脱出する例です。

2.5.8 EXIT WHILE

命令 i99-BASIC i99-REAL

機 能 WHILE~WEND文の繰り返しから脱出します。

書 式 EXIT WHILE

注 意 直接コマンドでは使用できません。

備 考 WHILE~WEND (→「2.5.12 WHILE~WEND」) からの脱出に用います。

使用例 I = 0

WHILE I<10

I = I + 1

IF I>5 THEN

EXIT WHILE

END IF

WEND

Iの値が5より大きくなった時 WHILE~WEND文の繰り返しから脱出する例です。

Page 128: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

128

2.5.9 FOR~TO~STEP~NEXT

命令 i99-BASIC i99-REAL

機 能 FORからNEXTまでの区間中にある一連の命令を、繰り返して実行します。

書 式 FOR <変数> = <初期値> TO <終値> [STEP <増減分>]

NEXT [<変数>]

<変数>

繰り返し条件に使用する変数を指定します。

<初期値>

変数の初期値を指定します。

<終値>

変数の終値を指定します。

<増減分>

初期値から終値までの増減分を整数で指定します。

省略した場合、次のように自動で決定されます。

<初期値>が<終値>より小さい場合:1

<初期値>が<終値>より大きい場合:-1

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT FOR文(→「2.5.7 EXIT FOR」)を利用ください。

注意2 直接コマンドでは使用できません。

使用例1 FOR I=0 TO 10 STEP 1

SUM = SUM + I

NEXT I

変数Iの初期値を0として10になるまで1ずつインクリメントしながらFOR~NEXT文の区

間中にある処理を繰り返します。

使用例2 FOR I=10 TO 1

NEXT

変数Iの初期値を10として0になるまで1ずつデクリメントしながらFOR~NEXT文の区間

中にある処理を繰り返します。

Page 129: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

129

2.5.10 IF~THEN~ELSE~END IF

命令 i99-BASIC i99-REAL

機 能 式の値の条件判定を行います。条件式が真の場合は、THEN以降の命令が実行されます。

条件式が偽の場合は、ELSE以降の命令が実行されます。

条件式を複数使いたい時はELSEの後にさらにIF文を使います。

条件式と実行命令を一つの行に記述する「単一行形式」と、複数の行に記述する「複数

行形式」があります。

書 式 単一行形式の場合:

IF <条件式> THEN … [ELSE …]

複数行形式の場合:

IF <条件式> THEN

[ELSEIF <条件式> THEN]

[ELSE]

END IF

<条件式>

条件判定する式を指定します。

注 意 複数行にわたる命令は、直接コマンドでは使用できません。

ELSEIF文は複数行形式のみです。

複数行形式の時、THENやELSEの後に続けて、同一行に文を続けないでください。単一行

形式と混同され、エラーになります。

使用例1

IF I=1 THEN

PRINT "OK!"

ELSE

PRINT "NG!"

END IF

変数Iの値が1の時、「OK」と表示、それ以外の時は「NG」と表示する例です。

使用例2 IF I=1 THEN

PRINT "OK!"

ELSEIF I=0 THEN

PRINT "NG!"

ELSE

PRINT "UNKNOWN"

END IF

変数Iの値が1の時は「OK」と表示、0の時は「NG」と表示、それ以外の時は「UNKNOWN」と表

示する例です。

Page 130: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

130

2.5.11 SELECT CASE~END SELECT

命令 i99-BASIC i99-REAL

機 能 式の値と続くCASE文に従い、処理を分岐します。

CASE文に該当する値がなければ、CASE ELSE文の分岐に入ります。

書 式 SELECT CASE <式>

CASE <式の値>

CASE ELSE

END SELECT

<式>

分岐の判定に使う式を指定します。文字型, 数値型のどちらでも指定できます。

<式の値>

分岐するための式の値を指定します。文字型, 数値型のどちらでも指定できます。

注 意 直接コマンドでは使用できません。

使用例 SELECT CASE X

CASE 1

PRINT "OK!"

CASE 0

PRINT "NG!"

CASE ELSE

PRINT "UNKNOWN"

END SELECT

変数Xの値が1の時は「OK」と表示、0の時は「NG」と表示、それ以外の時は「UNKNOWN」と表

示する例です。

Page 131: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

131

2.5.12 WHILE~WEND

命令 i99-BASIC i99-REAL

機 能 WHILEからWENDまでの区間中にある一連の命令を、指定条件を満たす(TRUE)間、繰り返

します。

書 式 WHILE <条件式>

WEND

<条件式>

繰り返し実行する条件を指定します。

注意1 ループ内へ外部からジャンプして入ってきたり、ループ内から外部へGOTOジャンプした

りするプログラムは、その動作が保証されなくなります。

ループ内で途中からの脱出には、EXIT WHILE文(→「2.5.8 EXIT WHILE」)を利用くだ

さい。

注意2 直接コマンドでは使用できません。

使用例1 I = 0

WHILE I<10

I = I + 1

PRINT I

WEND

WHILE~WENDの中に記述された処理を指定条件(Iが10より小さい)を満たす間繰り返し

実行します。

Page 132: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

132

2.6 ファイル・フォルダに関する関数・命令

2.6.1 ATTR$

関数 i99-BASIC i99-REAL

機 能 ファイルの属性を返します。

書き込み許可の場合は空文字列が、書き込み禁止の場合は”P”が返ります。

書 式 ATTR$(<ファイル名>)

<ファイル名>

属性を求めるファイル名を指定します。

使用例1 10 IF ATTR$("SAMPLE.BAS") = “P” THEN

20 PRINT “書き込み禁止です”

30 GOTO 100

40 END IF

100 END

ファイルの属性が書き込み禁止の場合、GOTO(→「2.7.7 GOTO」)によって行番号100

にジャンプし、プログラムを終了します。

2.6.2 CHAIN

命令 i99-BASIC -

機 能 メモリ上のプログラムからファイル上のプログラムへ実行を移します。

書 式 CHAIN <ファイル名>

<ファイル名>

実行を移すファイル名を指定します。

備 考 プログラムを複数に分割してサブルーチン集のように扱いたい場合、INCLUDE文の使用

を検討してください。

使用例1 10 PRINT “A + B =” ; A + B

SAVE “SAMPLE.BAS”

10 A = 1

20 B = 2

30 CHAIN "SAMPLE.BAS"

40 PRINT “MAIN A + B = “;A+B

50 END

RUN

A + B = 0

行番号30で”SAMPLE.BAS”の内容を実行します。

CHAINの実行前に設定した変数はCHAINによって実行されたプログラムからは参照され

ません。変数を引き継ぐには、COMMON(→「2.6.5 COMMON」)を使用します。

また、CHAINの使用による”SAMPLE.BAS”の実行後にすべてのプログラムが終了するた

め、行番号40のPRINT文は実行されません。

Page 133: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

133

2.6.3 CHDIR

命令 i99-BASIC i99-REAL

機 能 作業フォルダを変更します。

書 式 CHDIR <フォルダ名>

<フォルダ名>

作業フォルダを移すフォルダ名を指定します。

使用例1 CHDIR "SAMPLE"

作業フォルダを”SAMPLE”に変更します。

使用例2 CHDIR “..”

作業フォルダを1階層上に変更します。

2.6.4 CLOSE

命令 i99-BASIC i99-REAL

機 能 ファイルをクローズします。

書 式 CLOSE [[#]<ファイル番号> [, [#]<ファイル番号>] …]

<ファイル番号>

クローズするファイル番号を指定します。省略された場合、オープン済み(クローズ

状態か初期状態以外)のファイルをすべてクローズします。

使用例1 CLOSE #1, #2

ファイル番号1,2のファイルをクローズします。

使用例2 CLOSE

オープン済みのファイルをすべてクローズします。

Page 134: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

134

2.6.5 COMMON

命令 i99-BASIC -

機 能 CHAIN(→「2.6.2 CHAIN」)実行時に移されたプログラムに変数を引き継ぎます。

書 式 COMMON <変数名> [, <変数名> …]

<変数名>

CHAIN後に引き継ぐ変数を指定します。

使用例 10 PRINT “A + B =” ; A + B

20 PRINT “TMP$ = “ ; TMP$

SAVE “SAMPLE.BAS”

10 COMMON A,B,TMP$

10 A = 1

20 B = 2

30 TMP$ = “STRING”

40 CHAIN "SAMPLE.BAS"

50 END

RUN

A + B = 3

TMP$ = STRING

COMMONによってA,B,TMP$の内容が”SAMPLE.BAS”に引き継がれ、内容が出力されます。

2.6.6 DIREXISTS

関数 i99-BASIC i99-REAL

機 能 フォルダが存在するか確認し、結果を返します。

存在する場合はTRUE、存在しない場合はFALSEを返します。

書 式 DIREXISTS(<フォルダ名>)

<フォルダ名>

存在を確認するフォルダ名を指定します。

使用例 10 IF DIREXISTS("mnt/sda1”) = FALSE THEN

20 PRINT “フォルダが存在しません”

30 GOTO 100

40 END IF

100 END

指定したフォルダ(mnt/sda1)が存在しなかった場合、GOTO(→「2.7.7 GOTO」)に

よって行番号100にジャンプし、プログラムを終了します。

Page 135: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

135

2.6.7 EOF

関数 i99-BASIC i99-REAL

機 能 ファイルの終了コードを調べます。

ファイルの終端の場合はTRUEが、終端ではない場合はFALSEが返ります。

書 式 EOF(<ファイル番号>)

<ファイル番号>

OPEN(→「2.6.32 OPEN」)でオープンしたファイル番号を指定します。

使用例 …

100 OPEN "SAMPLE.TXT" AS 1

110 C = EOF(1)

120 IF C = FALSE THEN

130 WHILE EOF(1) = FALSE

200 WEND

210 END IF

行番号120のように記述することで、ファイルが終端ではないとき(ファイルが空では

ないとき)に特定の処理を実行することができます。さらに、行番号130のように記述

することで、ファイルの終端になるまで特定の処理を実行することができます。

Page 136: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

136

2.6.8 FIELD

命令 i99-BASIC -

機 能 ランダムバッファにフィールド変数を割り当てます。

書 式 FIELD [#]<ファイル番号>, <フィールド幅> AS <文字変数> [, <フィールド幅> AS <

文字変数> …]

<ファイル番号>

ランダムモードでオープンしているファイル番号を指定します。

<フィールド幅>

フィールド変数に割り当てるサイズを指定します。

<文字変数>で指定したフィールド変数に割り当てる文字数で、バイト数で指定しま

す。1つのバッファには、文字数合計がレコード長以内ならば、いくつのフィールド

変数を割り当ててもかまいません。

<文字変数>

フィールド変数に割り当てる変数を指定します。

割り当てたいフィールドの名前を文字型の変数名として指定します。

この変数は、バッファにデータを代入したり、代入したデータを参照するのに用いら

れ、フィールド変数と呼ばれます。

備 考 数値データをフィールドにセットする場合、数値データの型に応じてMKI$(→「2.3.67

MKI$」), MKL$(→「2.3.68 MKL$」), MKS$(→「2.3.69 MKS$」), MKD$(→「2.3.66

MKD$」)の各関数を用いて文字型化してからLSET(→「2.6.29 LSET」) / RSET(→

「2.6.36 RSET」)を行います。この時、単精度整数型の場合は2バイト長, 倍精度整

数型の場合は8バイト長, 単精度実数型の場合は4バイト長, 倍精度実数型の場合は8バ

イト長にそれぞれ変換されますので、<フィールド幅>もこれに合わせて設定する必要が

あります。日本語文字列をフィールドにセットする場合、日本語1文字あたり3バイト分

のフィールドを必要とします。

<フィールド幅>の設定を行う時には以上のことを考慮してください。

注 意 各フィールド変数への値の代入を通常の代入文あるいはINPUT等で行わないでくださ

い。上記の方法で代入を行った場合、その変数は一般の文字変数領域に登録されてしま

うため、FIELDでのバッファ割り当てとなり、正しいファイルの入出力が行われなくな

ります。

使用例 OPEN "SAMPLE.TXT" AS 1 LEN = 10

FIELD #1, 10 AS SMP$

GET #1, 1

GET(→「2.6.17 GET」)を実行すると、変数SMP$に”SAMPLE.TXT”のレコード番号1

(1行目)のデータが代入されます。

Page 137: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

137

2.6.9 FILECMP

関数 i99-BASIC i99-REAL

機 能 ファイルを比較します。

同じ場合はTRUE、異なる場合はFALSEを返します。

書 式 FILECMP(<ファイル名>, <ファイル名>)

<ファイル名>

比較するファイル名を指定します。

使用例 10 IF FILECMP("GAME.BAS”, “GAME2.BAS") = TRUE THEN

20 PRINT “同一のファイルです。”

30 ELSE

40 PRINT ”異なるファイルです。”

50 END IF

ファイルが同一かどうかを判定し、結果に合わせてPRINT文による出力を行います。

2.6.10 FILECOPY

命令 i99-BASIC i99-REAL

機 能 ファイルをコピーします。

書 式 FILECOPY <コピー元ファイル名>, <コピー先ファイル名> [, O]

<コピー元ファイル名>

コピー元のファイル名を指定します。

<コピー先ファイル名>

コピー先のファイル名を指定します。

<O>

コピー方法のオプションを指定します。

何も指定しない:コピー先にファイルが存在するとエラーとなります。

「O」:コピー先にファイルが存在しても、コピーを強行します。

備 考 コピー先のBASファイルにパスワードが設定されている場合、コピー先のBASファイルに

設定されているパスワードの入力を求めます。

使用例 FILECOPY "SRC.TXT”, “DST.TXT", O

“SRC.TXT”を”DST.TXT”としてコピーします。(引数Oにより、DST.TXTが存在する場

合も上書きして強制的にコピーします。)

Page 138: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

138

2.6.11 FILEEXISTS

関数 i99-BASIC i99-REAL

機 能 ファイルが存在するか確認し、結果を返します。

存在する場合はTRUE、存在しない場合はFALSEを返します。

書 式 FILEEXISTS(<ファイル名>)

<ファイル名>

存在を確認するファイル名を指定します。

使用例 10 IF FILEEXISTS("GAME.BAS”) = FALSE THEN

20 PRINT “ファイルが存在しません”

30 GOTO 100

40 END IF

100 END

指定したファイル(GAME.BAS)が存在しなかった場合、GOTO(→「2.7.7 GOTO」)に

よって行番号100にジャンプし、プログラムを終了します。

Page 139: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.6.12 FILES

命令 i99-BASIC i99-REAL

機 能 指定されたフォルダにあるファイルの名前を出力します。

書 式 FILES [<フォルダ名/ファイル名>][, <スイッチ>]

<フォルダ名/ファイル名>

ファイル一覧を作成するフォルダ名を指定します。

省略した場合、カレントフォルダのファイル一覧を出力します。

ファイル名を指定する際、以下のメタ文字を使ったワイルドカードによる抽出ができ

ます。

メタ文字 動 作

* 任意の文字列に一致

? 任意の1文字に一致

<スイッチ>

表示方法を指定できます。

デフォルトでは名前順にBASICプログラムの名前を表示します。

パラメータ 動 作

A すべてのファイルを表示しますD ファイル名にディレクトリを付加しますF ファイルの日付とサイズを表示します

X 拡張子順にソートします

T 修正日付順にソートします

S サイズ順にソートします

画面表示中にスペースキーを押下すると、画面表示を一時停止できます。解除は別のキー

を押下します。

画面表示中にPause/Ctrl+Cを押下すると、表示を中断します。

スイッチにFを指定していない場合、ファイル名は「”ファイル名”」の形式で出力されま

す。

ファイルがBASICプログラムで、先頭行にコメント(不可視でない)が記載されている場合、

「”ファイル名” ‘ コメント行文字列」のように、コメント付きで表示されます。

使用例1 FILES

カレントフォルダのファイル一覧を表示します。

使用例2 FILES "SAMPLE"

“SAMPLE”フォルダのファイル一覧を表示します。

使用例3 FILES “SAMPLE/GU*”

“SAMPLE”フォルダ内のファイルのうち、ファイル名が”GU”で始まるファイルの一覧

を表示します。

使用例4 FILES “.”, AFX

カレントフォルダにあるすべてのファイルの一覧を拡張子順に表示します。

ファイルの更新日時とサイズも表示します。

- - Interface Corporation

139

Page 140: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

140

2.6.13 FIND

命令 i99-BASIC i99-REAL

機 能 指定されたファイルの中から指定された文字列を探し、該当行を出力します。

書 式 FIND <文字列>[, <ファイル名>[, <検索開始行>]]

<文字列>

検索する文字列を指定します。

<ファイル名>

検索するファイル名を指定します。

指定しない場合、LOADしているプログラムが検索対象になります。

<検索開始行>

検索を開始する行を指定します。

省略すると1行目から検索します。

備 考 ・該当する行が複数ある場合はすべての行が表示されます。

・該当する行が無い場合は何も表示されません。

使用例1 FIND “あいう”, “SAMPLE.TXT”

“SAMPLE.TXT”のうち、文字列”あいう”を含む行を表示します。

使用例2 FIND “あいう”, “SAMPLE.TXT”, 5

“SAMPLE.TXT”の5行目以降のうち、文字列”あいう”を含む行を表示します。

使用例3 FIND “あいう”

現在ロードされているプログラムのうち、文字列”あいう”を含む行を表示します。

2.6.14 FINPUT

命令 i99-BASIC -

機 能 ファイルのデータを変数に入力します。

書 式 FINPUT <ファイル名>, <変数名> [, <変数名> …]

<ファイル名>

データを読み込むファイル名を指定します。

<変数名>

データを代入する変数を指定します。

備 考 1回のコマンド実行につき1行からデータを入力します。

プログラムを終了するまでは、コマンド実行のたびに続きの行から入力します。

カンマで区切られている場合、そこまでを一つの変数に入力します。

使用例1 FINPUT “SAMPLE.TXT”, TEST$

“SAMPLE.TXT”から読み取った1行のテキストから値を変数TEST$に代入します。

例えば読み込んだ内容が”TEST1,TEST2”だった場合、”TEST1”が代入されます。

使用例2 FINPUT “SAMPLE.TXT”, A, B, C

“SAMPLE.TXT”から読み取った1行のテキストから値を変数A,B,Cに代入します。

例えば読み込んだ内容が”10,20,30”だった場合、Aに10、Bに20、Cに30を代入します。

Page 141: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

141

2.6.15 FINPUT ALL

命令 i99-BASIC -

機 能 ファイルの全データを変数に入力します。

書 式 FINPUT ALL <ファイル名>, <変数名>

<ファイル名>

データを読み込むファイル名を指定します。

<変数名>

データを代入する文字列変数を指定します。

使用例 FINPUT ALL “SAMPLE.TXT”, TEST$

“SAMPLE.TXT”の全データをTEST$に代入します。

Page 142: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.6.16 FPRINT, FPRINT USING

命令 i99-BASIC i99-REAL

機 能 文字列や数値等のデータをファイルに出力します。

書 式 FPRINT <ファイル名>, [USING <書式制御文字列>;] <文字列/数値> [; | , <文字列/

数値> …] [; | ,]

<ファイル名>

出力先のファイル名を指定します。

ファイルが存在しない場合、作成します。

ファイルが存在する場合、追加書き込みします。

<書式制御文字列>

文字列用

記号 内容

! 文字列の先頭1文字だけを出力します。

&<n個の空白>&文字列の先頭からn+2文字出力します。文字列がn+2文字より長

い場合は余分な文字は無視され、短い場合は左詰で出力された

残りには空白が出力されます。

@文字列全体を出力します。複数個指定した場合、1つの"@"に対して1つの文字列が出力されます。"@"の数が文字列の数よ

り多い場合は、余った"@"は無視されます。

数値用

記号 内容

#数値を出力する桁数を指定します。指定した桁数より数値の桁数が小さい場

合は右詰で出力します。指定した桁数より数値の桁数が大きい場合は数値の

直前に"%"が出力されます。

. 小数点の位置を指定します。小数点以下の部分で冗長となる桁には0が出力

されます。

+ 書式制御文字列の 初または 後に付けた場合、数値の符号が前または後ろ

に出力されます。2個以上並べた場合は、そのまま出力されます。

-書式制御文字列の 後に付けた場合、数値が負数の時に数値の後ろに"-"が出力されます。前に付けたり、2個以上並べた場合は、そのまま出力されま

す。

** 書式制御文字列の 初に付けた場合、数値の左側の空白を"*"で埋めて出力

します。

$$ 書式制御文字列の 初に付けた場合、出力される数値の直前に"¥"を出力し

ます。

**$ 書式制御文字列の 初に付けた場合、"**"と"$$"を合わせた書式になりま

す。

, 桁数指定の"#"と一緒に付けた場合、数値の整数部が3桁ごとに","で区切られ

て出力します。ただし"."より右側に付けた場合は機能しません。

^ 桁数指定の"#"の後に付けた場合、指数形式で出力します。なお、指数形式

で出力時、桁数指定は無効となります。

その他

記号 内容

_ 書式制御文字1文字をそのまま文字として出力します。

制御文字以外

数値の前や後ろにその文字が出力されます。

Interface Corporation - -

142

Page 143: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

143

<文字列/数値>

出力する文字列/数値を指定します。セミコロン(;)で区切ると、各文字列/数値を連

続して出力します。カンマ(,)で区切ると、各文字列/数値間にタブを出力します。

後にセミコロンやカンマを指定すると、改行が起こりません。

使用例1 A=5

FPRINT “SAMPLE.TXT”, "A="; A

“A=5”を“SAMPLE.TXT”に出力します。

使用例2 TEST$ = “MOJIRETSU”

FPRINT “SAMPLE.TXT”, TEST$

“MOJIRETSU” を“SAMPLE.TXT”に出力します。

使用例3 A=1234.5678

FPRINT USING “SAMPLE.TXT”, "####,.#"; A

“1,234.568”を“SAMPLE.TXT”に出力します。

使用例4 FPRINT USING “SAMPLE.TXT”, "@=$$### "; "Books", 2550, "Tickets", 1440,

"Drinks", 4300

“Books=\2550 Tickets=\1440 Drinks=\4300”を“SAMPLE.TXT”に出力します。

2.6.17 GET

命令 i99-BASIC i99-REAL

機 能 ファイルのデータをランダムバッファに読み込みます。

書 式 GET [#]<ファイル番号> [, <レコード番号>]

<ファイル番号>

ランダムモードでオープンしているファイル番号を指定します。

<レコード番号>

データを読み込むレコード番号を1以上で指定します。

省略された場合、次に読み込み/書き出しするレコード番号を使います。

備 考 ランダムファイルからのデータをランダムバッファに読み込みます。

ランダムバッファへ読み込んだデータはFIELDで指定した変数(フィールド変数)で参照

できます。

注 意 指定されたファイルはランダムモードでオープンされていなければなりません。

ランダムバッファにはあらかじめFIELDでフィールド変数を割り当ててください。

FIELDされていない状態でGETを実行されてもエラーを返しません。

使用例1 OPEN "SAMPLE.TXT" AS #1 LEN=10

FIELD #1, 10 AS SMP$

GET #1, 1

変数SMP$に”SAMPLE.TXT”のレコード番号1(1行目)のデータを代入します。

使用例2 OPEN "SAMPLE.TXT" AS #1 LEN=10

FIELD #1, 10 AS SMP$

GET #1

変数SMP$に”SAMPLE.TXT”から次に読み込まれるレコード番号(次の行)のデータを代

入します。

Page 144: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

144

2.6.18 GREP

命令 i99-BASIC -

機 能 指定されたフォルダにあるファイルの中から指定された文字列を探し、該当行を出力し

ます。

書 式 GREP <文字列>[, <フォルダ名/ファイル名>]

<文字列>

検索する文字列を指定します。

<ファイル名>

検索するフォルダ名またはファイル名を指定します。

指定しない場合、カレントフォルダにあるファイルから検索します。

備 考 ・以下のフォーマットで出力されます。

FILE: <ファイル名>

<該当行>

・該当する行が複数ある場合はすべての行が表示されます。

・該当する行が無い場合は何も表示されません。

使用例1 GREP “あいう”

カレントフォルダにあるファイルのうち、文字列”あいう”を含む行を表示します。

使用例2 GREP “あいう”, “SAMPLE”

“SAMPLE”フォルダにあるファイルのうち、文字列”あいう”を含む行を表示します。

使用例3 GREP “あいう”, “SAMPLE.TXT”

“SAMPLE.TXT”ファイルのうち、文字列”あいう”を含む行を表示します。

Page 145: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

145

2.6.19 INCLUDE

命令 i99-BASIC i99-REAL

機 能 メモリ上のプログラムから、ファイルのプログラムを参照できるように追加します。

書 式 INCLUDE <ファイル名>

<ファイル名>

参照追加するファイル名を指定します。

備 考 ・ 相対パスでファイルを指定した時、基本はカレントフォルダを基準位置にファイ

ルを検索します。 ・ version.3.10 以 降 よ り 、 こ こ で フ ァ イ ル が 見 つ か ら な い 時 、

/root/mybasic/user/include フォルダを基準にファイルが見つからないか、検索しま

す。 (この仕様は、INCLUDEコマンドのみの仕様です。LOADやRUNは装備されません)

・ /root/mybasic/user/includeフォルダは、構造体や定数の各種定義を行った利便性の高

い定義ファイルを格納しています。 勝手に内容を変更しないよう、お願いいたします。

注 意 ・直接コマンドでは使用できません。

・ コンソール画面では、INCLUDEした別ファイルのプログラムを参照する事はできま

せん。

・行番号を付加して使用する場合、参照先で使われている行番号との重複や順序間違いが

起きないように行番号を割り当ててください。

使用例1 INCLUDE "SAMPLE.BAS"

実行するとIDEにタブ("SAMPLE.BAS")が追加され、次の実行文が"SAMPLE.BAS"の内容に

移動します。

"SAMPLE.BAS"の終端まで実行すると、INCLUDE文の次の文から実行されます。

Page 146: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

146

2.6.20 INFILE

関数 i99-BASIC i99-REAL

機 能 ファイル中の指定文字列を検索し、見つかった行を返します。

見つからない場合は、0を返します。

書 式 INFILE([<開始行> ,] <ファイル名>, <指定文字列>)

<開始行>

検索を始める行を1以上、ファイル行数以下で指定します。

省略した場合は、先頭から検索します。

<ファイル名>

検索対象のファイル名を指定します。

(UTF-8形式のテキストファイルを指定してください。)

<指定文字列>

検索する文字列を指定します。

備 考 <指定文字列>に空の文字列を指定すると、<開始位置>を返します。

SAMPLE.TXTの内容

行 内容

1

2

3

4

5

6

A

B

C

A

B

C

使用例1

NUM = INFILE("SAMPLE.TXT", "C")

変数NUMに3(<指定文字列> Cを含む行の番号)を代入します。

SAMPLE.TXTの内容

行 内容

1

2

3

4

5

6

A

B

C

A

B

C

使用例2

NUM = INFILE(4, "SAMPLE.TXT", "C")

変数NUMに6(ファイルの4行目以降で<指定文字列> Cを含む行の番号)を代入します。

SAMPLE.TXTの内容

行 内容

1

2

3

4

5

6

AA

BB

CC

AA

BB

CC

使用例3

NUM = INFILE("SAMPLE.TXT", "C")

変数NUMに3(<指定文字列> Cを含む行の番号)を代入します。

Page 147: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.6.21 INPUT

命令 i99-BASIC -

機 能 キーボードやファイルから入力されたデータを変数に代入します。

プロンプト文でデータ入力前メッセージを表示させることもできます。

書 式 INPUT [<プロンプト文>; | ,] <変数名> [, <変数名> …]

INPUT #<ファイル番号>, <変数名> [, <変数名> …]

<プロンプト文>

データ入力前メッセージを指定します。セミコロン(;)で区切ると、プロンプト文の

後に"?"を出力します。カンマ(,)で区切ると、プロンプト文だけを出力します。

<変数名>

データを代入する変数を指定します。

<ファイル番号>

データを読み込むファイル番号を指定します。

備考 ・ ファイルからデータを入力する場合、1回のコマンド実行につき1行からデータを

入力します。

・ ファイルから文字列を読み込む場合、OPENコマンドでFOR INPUTを指定してくださ

い。

・ 変数に代入するデータを入力する前に入力待機状態を解除したい場合は、

Pause/Ctrl+Cキーで強制停止してください。

・ 一部のBASIC言語では、プロンプト文の表記時、「PROMPT」修飾を付けますが、こ

の修飾は不要です。

・ コンソール画面では文字列の入力は、コンソール画面上で行います。

IDE画面では、以下のような専用の入力ダイアログが表示され、入力します。

使用例1 INPUT "暗証番号を入力してください"; NUM

"暗証番号を入力してください?"と表示して入力待機状態に入ります。

数値を入力してEnterキーを押すと、変数NUMに入力した数値が代入されます。

使用例2 INPUT A, B, C

“?”と表示して入力待機状態に入ります。

数値をカンマ区切りで3つ入力してEnterキーを押すと、変数A,B,Cに入力した3つの数

値を代入します。例えば、4,3,2と入力した場合は、Aに4、Bに3、Cに2を代入します。

使用例3 INPUT #1, TEST$

ファイル番号1のファイルから1行データを読みとり、変数TEST$に代入します。

使用例4 INPUT #1, A, B, C

ファイル番号1のファイルから1行データを読みとり、変数A,B,Cに代入します。

- - Interface Corporation

147

Page 148: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.6.22 INPUT$

関数 i99-BASIC -

機 能 キーボードやファイルから指定された長さの文字列を読み込みます。

書 式 INPUT$(<文字数> [, <ファイル番号>])

<文字数>

読み込む文字数を0以上ファイルサイズ以下で指定します。

0を指定した場合、空の文字列を返します。

INPUT$は指定の文字数が入力されるまで待ち続けます。

<ファイル番号>

文字列を読み込むファイル番号を指定します。

省略された場合、キーボードからの入力を読み込みますが、INPUTとは異なり入力さ

れた文字は画面に表示されません。

備 考 ・ 指定された長さの文字列を入力する前に入力待機状態を解除したい場合は、

Pause/Ctrl+Cキーで強制停止してください。

・ ファイルから文字列を読み込む場合、OPENコマンドでFOR INPUTを指定してくださ

い。

・ ファイル番号省略時、コンソール画面では文字列の入力は、コンソール画面上で

行います。

IDE画面では、以下のような専用の入力ダイアログが表示され、入力します。

入力文字数が規定に達すると、ダイアログは自動的に閉じます。

使用例1 PRINT INPUT$(10)

キーボードから入力された10文字の文字列を画面表示します。

使用例2 OPEN “SAMPLE.TXT” FOR INPUT AS #1

PRINT INPUT$(10, 1)

SAMPLE.TXTから10文字読み込み、画面表示します。

Interface Corporation - -

148

Page 149: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.6.23 KILL

命令 i99-BASIC i99-REAL

機 能 ファイルを削除します。

書 式 KILL <ファイル名>

<ファイル名>

削除するファイル名を指定します。

ファイル名を指定する際、以下のメタ文字を使ったワイルドカードによる抽出ができ

ます。

メタ文字 動 作

* 任意の文字列に一致

? 任意の1文字に一致

備 考 ・指定したファイルがオープンされていると、エラーが発生します。ファイルを削除す

る前に、CLOSEを使用してファイルをクローズしてください。

・削除するBASファイルにパスワードが設定されている場合、削除するBASファイルに設

定されているパスワードの入力を求めます。

使用例 KILL "SAMPLE.BAS"

SAMPLE.BAS というファイルを削除します。

- - Interface Corporation

149

Page 150: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

150

2.6.24 LINE FINPUT

命令 i99-BASIC -

機 能 ファイルから1行単位のデータを文字型変数に代入します。

書 式 LINE FINPUT <ファイル名>, <変数名>

<ファイル名>

データを読み込むファイル名を指定します。

<変数名>

データを代入する文字型変数を指定します。

備 考 1回のコマンド実行につき1行からデータを入力します。

プログラムを終了するまでは、コマンド実行のたびに続きの行から入力します。

使用例1 LINE FINPUT “SAMPLE.TXT”, TEST$

ファイル SAMPLE.TXT から1行分のデータを文字列としてTEST$へ代入します。

2.6.25 LINE INPUT

命令 i99-BASIC -

機 能 キーボードやファイルから入力された1行単位のデータを文字型変数に代入します。プ

ロンプト文でデータ入力前メッセージを表示させることもできます。

書 式 LINE INPUT [<プロンプト文>;] <変数名>

LINE INPUT #<ファイル番号>, <変数名>

<プロンプト文>

データ入力前メッセージを指定します。

<変数名>

データを代入する文字型変数を指定します。

<ファイル番号>

データを読み込むファイル番号を指定します。

備 考 ファイルから文字列を読み込む場合、OPENコマンドでFOR INPUTを指定してください。

使用例1 LINE INPUT TEST$

変数TEST$へキーボードから入力された文字列を代入します。

使用例2 LINE INPUT "コメントを入力してください"; TEST$

変数TEST$へキーボードから入力された文字列を代入します。

入力前にプロンプト文で 「コメントを入力してください」 と表示します。

使用例3 LINE INPUT #1, TEST$

変数TEST$へファイル番号1で開いているファイルから1行分の文字列を代入します。

Page 151: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

151

2.6.26 LINFILE

関数 i99-BASIC i99-REAL

機 能 ファイル中の指定文字列を検索し、その行数を返します。

見つからない場合は、0を返します。

書 式 LINFILE([<開始行> ,] <ファイル名>, <指定文字列>)

<開始行>

検索を始める行を1以上、ファイルの行数以下で指定します。

省略した場合は、先頭から検索します。

<ファイル名>

検索対象のファイル名を指定します。

<指定文字列>

検索する文字列を指定します。

備 考 <指定文字列>に空の文字列を指定すると、0を返します。

検索数ではなく、検索行数を返します。例えば1行に該当文字列が2つあった場合でも1

とカウントします。

SAMPLE.TXTの内容

行 内容

1

2

3

4

5

6

A

B

C

A

B

C

使用例1

NUM= LINFILE("SAMPLE.TXT", "C")

SAMPLE.TXTから<指定文字列> C を検索し、該当した行の数 2 を変数NUMへ代入します。

SAMPLE.TXTの内容

行 内容

1

2

3

4

5

6

A

B

C

A

B

C

使用例2

NUM= LINFILE(4, "SAMPLE.TXT", "C")

SAMPLE.TXTから<開始行> 4 以降で<指定文字列> C を検索し、該当行の数 1 を変数NUM

へ代入します。

SAMPLE.TXTの内容

行 内容

1

2

3

4

5

6

AA

BB

CC

AA

BB

CC

使用例3

NUM= LINFILE("SAMPLE.TXT", "C")

SAMPLE.TXTから<指定文字列> C を検索し、該当行の数 2 を変数NUMへ代入します。

1行に該当文字列が2つ以上あった場合でも、1としてカウントします。

Page 152: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

152

2.6.27 LOC

関数 i99-BASIC i99-REAL

機 能 ファイル内の論理的な現在位置を返します。

書 式 LOC(<ファイル番号>)

<ファイル番号>

OPENでオープンしたファイル番号を指定します。

備 考 <ファイル番号>で指定されたファイルの種類によって、得られる値の意味が異なりま

す。

シーケンシャルディスクファイルの場合

ファイルの先頭から現在位置までのバイト数が得られます。

ランダムディスクファイルの場合

後に読み書き(GET/PUT)を行ったレコードのレコード番号が得られます。

使用例 C=LOC(1)

ファイル番号 1 で開いているファイルの論理的な現在位置を変数Cへ代入します。

2.6.28 LOF

関数 i99-BASIC i99-REAL

機 能 ファイルの大きさを返します。ファイルの大きさがバイト数で得られます。

この値は、ファイルがランダムファイルであれば、そのファイルの 大レコード番号に

相当します。

書 式 LOF(<ファイル番号>)

<ファイル番号>

OPENでオープンしたファイル番号を指定します。

使用例 C=LOF(1)

ファイル番号 1 で開いているファイルの大きさを変数Cへ代入します。

Page 153: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

153

2.6.29 LSET

命令 i99-BASIC -

機 能 ランダムバッファのフィールドに左詰めでデータを代入します。

書 式 LSET <文字変数(フィールド変数)> = <文字列>

<文字変数(フィールド変数)>

文字列を代入するフィールド変数を指定します。FIELDでランダムバッファ上に割り

当てられたフィールド変数を指定します。

<文字列>

フィールド変数に代入する文字列を指定します。

<文字列>を指定することにより、フィールド変数に対応するフィールドにデータ(文

字型)を代入することができます。<文字列>の文字数がFIELDで割り当てられたフィー

ルド変数の長さより短い場合、左詰めでフィールドを満たします。

また<文字列>がフィールドより長い場合は、右側の部分が失われます。

備 考 <文字変数>は、予めFIELDで定義されていなければなりません。定義されていない変数

名を用いると、データを正しく代入することができません。

また、<文字列>に指定するデータは文字型でなければなりませんので、数値型データは

MKI$, MKL$, MKS$, MKD$のいずれかによって文字型データに変換しておかなければなり

ません。

使用例 OPEN "SAMPLE.TXT" AS #1 LEN=10

FIELD #1, 10 AS SMP$

LSET SMP$="SAMPLE"

フィールド変数SMP$へ左詰めで文字列 「SAMPLE」 を代入します。

2.6.30 MKDIR

命令 i99-BASIC i99-REAL

機 能 フォルダを作成します。

書 式 MKDIR <フォルダ名>

<フォルダ名>

作成するフォルダ名を指定します。

使用例 MKDIR "SAMPLE"

SAMPLE という名前でフォルダを作成します。

Page 154: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

154

2.6.31 NAME

命令 i99-BASIC i99-REAL

機 能 ファイル/フォルダの名前を変更します。

書 式 NAME <旧ファイル名> AS <新ファイル名>

<旧ファイル名>

名前を変更するファイル名を指定します。

<新ファイル名>

新しいファイル名を指定します。

備 考 ・指定したファイルがオープンされていると、エラーが発生します。ファイル名を変更

する前に、CLOSEを使用してファイルをクローズしてください。

・旧ファイル名や新ファイル名のBASファイルにパスワードが設定されている場合、旧

ファイル名・新ファイル名の順でBASファイルに設定されているパスワードの入力を求

めます。

注 意 ローカルとUSBメモリとの間では、ファイル名の変更を利用したファイルの移動はでき

ません。FILECOPYを使用してください。

使用例 NAME "SAMPLE2.TXT" AS "SAMPLE.TXT"

SAMPLE2.TXTというファイルをSAMPLE.TXTというファイル名へ変更します。

Page 155: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

155

2.6.32 OPEN

命令 i99-BASIC i99-REAL

機 能 ファイルをオープンします。

書 式 OPEN <ファイル名> [FOR <入出力モード>] AS [#]<ファイル番号> [LEN = <レコード長

>]

<ファイル名>

オープンするファイル名を指定します。

<入出力モード>

ファイルの入出力モードを指定します。

省略した場合、ランダムファイルに対して入出力を行います。

FOR INPUT :既存のファイルから入力を行います。

FOR OUTPUT:新規作成したファイルに出力を行います。

FOR APPEND:既存のファイルに追加出力を行います。

指定のファイルが存在しない場合は、新規作成したファイルに

出力を行います。

ランダムファイル:既存のファイルから入出力を行います。

指定のファイルが存在しない場合は、新規作成したファイル

に出力を行います。

<ファイル番号>

オープンするファイルに関連付けるファイル番号を1~15の範囲で指定します。

<レコード長>

ランダムファイルへ入出力を行う際のレコード長を1以上で指定します。

省略した場合、512になります。

使用例1 OPEN "SAMPLE.TXT" AS 1

SAMPLE.TXTというファイルをファイル番号 1 で開きます。

使用例2 OPEN "SAMPLE.TXT" FOR INPUT AS #1

SAMPLE.TXTというファイルをファイル番号 1 で入力モードとして開きます。

使用例3 OPEN "SAMPLE.TXT" FOR OUTPUT AS #1

SAMPLE.TXTというファイルをファイル番号 1 で出力モードとして開きます。

使用例4 OPEN "SAMPLE.TXT" FOR APPEND AS #1

SAMPLE.TXTというファイルをファイル番号 1 で追加出力モードとして開きます。

Page 156: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.6.33 PRINT, ? , PRINT USING

命令 i99-BASIC i99-REAL

機 能 文字列や数値等のデータを画面、またはファイルに出力します。

書 式 PRINT [USING <書式制御文字列>;] <文字列/数値> [; | , <文字列/数値> …] [; | ,]

PRINT #<ファイル番号>, [USING <書式制御文字列>;] <文字列/数値> [; | , <文字列/

数値> …] [; | ,]

? [USING <書式制御文字列>;] <文字列/数値> [; | , <文字列/数値> …] [; | ,]

? #<ファイル番号>, [USING <書式制御文字列>;] <文字列/数値> [; | , <文字列/数値

> …] [; | ,] <書式制御文字列>

文字列用

記号 内容

! 文字列の先頭1文字だけを出力します。

&<n個の空白>&文字列の先頭からn+2文字出力します。文字列がn+2文字より長

い場合は余分な文字は無視され、短い場合は左詰で出力された

残りには空白が出力されます。

@文字列全体を出力します。複数個指定した場合、1つの"@"に対して1つの文字列が出力されます。"@"の数が文字列の数よ

り多い場合は、余った"@"は無視されます。

数値用

記号 内容

# 数値を出力する桁数を指定します。指定した桁数より数値の桁数が小さい場

合は右詰で出力します。指定した桁数より数値の桁数が大きい場合は数値の

直前に"%"が出力されます。

. 小数点の位置を指定します。小数点以下の部分で冗長となる桁には 0 が出力

されます。

+ 書式制御文字列の 初または 後に付けた場合、数値の符号が前または後ろ

に出力されます。2 個以上並べた場合は、そのまま出力されます。

- 書式制御文字列の 後に付けた場合、数値が負数の時に数値の後ろに"-"が出

力されます。前に付けたり、2 個以上並べた場合は、そのまま出力されます。

** 書式制御文字列の 初に付けた場合、数値の左側の空白を"*"で埋めて出力し

ます

$$ 書式制御文字列の 初に付けた場合、出力される数値の直前に"¥"を出力しま

す。

**$ 書式制御文字列の 初に付けた場合、"**"と"$$"を合わせた書式になります。

, 桁数指定の"#"と一緒に付けた場合、数値の整数部が 3 桁ごとに","で区切られ

て出力します。ただし"."より右側に付けた場合は機能しません

^^^^ 桁数指定の"#"の後に付けた場合、指数形式で出力します。なお、指数形式で

出力時、桁数指定は無効となります。

その他

記号 内容

_ 書式制御文字1文字をそのまま文字として出力します。

制御文字以外

数値の前や後ろにその文字が出力されます。

Interface Corporation - -

156

Page 157: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

157

<文字列/数値>

出力する文字列/数値を指定します。セミコロン(;)で区切ると、各文字列/数値を連

続して出力します。カンマ(,)で区切ると、各文字列/数値間にタブを出力します。

後にセミコロンやカンマを指定すると、改行が起こりません。 <ファイル番号>

出力先のファイル番号を指定します。

備 考 ファイルに出力する場合、OPENコマンドでFOR OUTPUT/APPENDを指定してください。

使用例1 A = 50

PRINT "A="; A

A=50 と表示します。

使用例2 A = 50

B = 60

? A, B

50 60 と表示します。

使用例3 PRINT #1, “TEST OK”

ファイル番号1で開いているファイルへ TEST OK という文字列を書き込みます。

使用例4 A = 50

B = 60

? #1, A, B

ファイル番号1で開いているファイルへ変数A,Bの値 50 60 という文字列を書き込みま

す。

使用例5 A = 50

PRINT USING "#,#.#"; A

50.0 と表示します。

使用例6 A = 50

? USING "$$###,"; A

¥ 50 と表示します。

使用例7 PRINT USING "@=$$### "; "Books", 2550, "Tickets", 1440, "Drinks", 4300

Books=\2550 Tickets=\1440 Drinks=\4300 と表示します。

Page 158: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

158

2.6.34 PUT

命令 i99-BASIC -

機 能 ランダムバッファのデータをファイルに書き出します。

書 式 PUT [#]<ファイル番号> [, <レコード番号>]

<ファイル番号>

ランダムモードでオープンしているファイル番号を指定します。

<レコード番号>

データを書き出すレコード番号を1以上で指定します。

省略された場合、次に読み込み/書き出しするレコード番号を使います。

備 考 ランダムバッファ中のデータをランダムファイルに書き出します。

注 意 指定されたファイルはランダムモードでオープンされていなければなりません。

書き出すデータはあらかじめFIELD, LSET, RSETでランダムバッファへ代入してくださ

い。

使用例 OPEN "SAMPLE.TXT" AS 1 LEN=10

FIELD #1, 10 AS SMP$

LSET SMP$ =”SAMPLE”

PUT #1, 1

フィールド変数SMP$ へ格納されているデータ SAMPLE という文字列をSAMPLE.TXTへ書

き出します。

Page 159: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

159

2.6.35 RMDIR

命令 i99-BASIC i99-REAL

機 能 フォルダを削除します。

書 式 RMDIR <フォルダ名>

<フォルダ名>

削除するフォルダ名を指定します。

備 考 指定したフォルダ内にファイルまたはフォルダが存在していると、エラーが発生しま

す。フォルダを削除する前に、KILLを使用してすべてのファイルとフォルダを削除して

ください。

使用例 RMDIR "SAMPLE"

SAMPLE という名前のフォルダを削除します。

2.6.36 RSET

命令 i99-BASIC -

機 能 ランダムバッファのフィールドに右詰めでデータを代入します。

書 式 RSET <文字変数(フィールド変数)> = <文字列>

<文字変数(フィールド変数)>

文字列を代入するフィールド変数を指定します。FIELDでランダムバッファ上に割り

当てられたフィールド変数を指定します。

<文字列>

フィールド変数に代入する文字列を指定します。<文字列>を指定することにより、フ

ィールド変数に対応するフィールドにデータ(文字型)を代入することができます。

<文字列>の文字数がFIELDで割り当てられたフィールド変数の長さより短い場合、右

詰めでフィールドを満たします。

また<文字列>がフィールドより長い場合は、右側の部分が失われます。

備 考 <文字変数>は、予めFIELDで定義されていなければなりません。

定義されていない変数名を用いると、データを正しく代入することができません。

また、<文字列>に指定するデータは文字型でなければなりませんので、数値型データは

MKI$, MKL$, MKS$, MKD$のいずれかによって文字型データに変換しておかなければなり

ません。

使用例 OPEN "SAMPLE.TXT" AS 1 LEN=10

FIELD #1, 10 AS SMP$

RSET SMP$="SAMPLE"

フィールド変数SMP$へ右詰めで文字列 「SAMPLE」 を代入します。

Page 160: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

160

2.6.37 SET

命令 i99-BASIC i99-REAL

機 能 ファイルの属性を設定します。

書 式 SET <ファイル名>[, <属性>]

<ファイル名>

属性を設定するファイル名を指定します。

<属性>

”P”を指定すると、書き込み禁止属性が設定されます。

省略するか”P”以外を指定すると、書き込み禁止属性が解除されます。

備 考 ・書き込み禁止属性に設定されたファイルは、以下の書き込み動作が禁止されます。

KILL

OPEN FOR OUTPUT, APPEND(出力モードのオープン)

PUT

SAVE スイッチ O, BO, AO(上書き保存)

・属性を設定するBASファイルにパスワードが設定されている場合、属性を設定するBAS

ファイルに設定されているパスワードの入力を求めます。

・オープンしているファイルの属性は設定できません。

使用例1 SET "SAMPLE.BAS", “P”

SAMPLE.BAS というファイルへ 書込み禁止属性を設定します。

使用例2 SET "SAMPLE.BAS"

SAMPLE.BAS というファイルの 書込み禁止属性を解除します。

Page 161: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

161

2.6.38 SPOOL ON/OFF

命令 i99-BASIC -

機 能 コンソールの出力内容をファイルに書き出します。

書 式 SPOOL ON <ファイル名>

指定ファイルへ書き出します。

指定したファイルが存在しない場合、作成します。

指定したファイルが存在する場合、そのファイルへ追加書き込みします。

SPOOL OFF

書き出しを終了します。

注 意 重複実行はできません。(エラーになります)

使用例1 SPOOL ON “SPFILE.TXT”

コンソール画面上の出力内容を SPFILE.TXT というファイルへ書き出します。

使用例2 SPOOL OFF

ファイルへの書き出しを終了します。

2.6.39 USERFS RW/RO

命令 i99-BASIC -

機 能 BASICプログラムの保存領域(/root/mybasic/user フォルダ下)のリードオンリー/書

き込み可能を強制的に切り替えます。

書 式 USERFS RW

BASICプログラムの保存領域を、強制的に書き込み可能に設定変更します。

USERFS RO

BASICプログラムの保存領域を、強制的にリードオンリーに設定変更します。

注 意 BASICプログラムの保存領域の設定変更については、基本マニュアルの「Linuxと連携す

る際の注意」の章を参照ください。

このコマンドの呼び出しは、保存領域の状態を固定するものではありません。ファイル

アクセスの開始と終了により、状態が変更する場合があります。

version.3.00以降より、保存領域の状態を システムが自動的に変更する事は無くなり、

プログラマーが手動に変更する仕様になりました。

使用例 USERFS RW ‘ 書き込み可能へ

SHELL “prog1 &” ‘ 呼び出し後も書き込み可

外部プログラム(prog1)を、i99-BASICと並行して動かします。その間、BASIC保存領域

が書き込み可能となります。

Page 162: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

162

2.6.40 WIDTH

命令 i99-BASIC i99-REAL

機 能 ファイルに対して1行の長さを指定します。

書 式 WIDTH #<ファイル番号> , <桁数>

<ファイル番号>

出力先のファイル番号を指定します。

<桁数>

1行の長さを0~255で指定します。0を指定すると折り返しません。

デフォルトの長さはファイルでは128です。

1文字あたりの長さは、半角文字なら1, 全角文字なら2でカウントされます。

使用例 WIDTH #1, 50

ファイル番号1で開いているファイルの1行の長さを 50 に設定します。

2.6.41 WRITE

命令 i99-BASIC i99-REAL

機 能 文字列や数値等のデータを画面、またはファイルに出力します。

書 式 WRITE <文字列/数値> [, <文字列/数値> …]

WRITE #<ファイル番号>, <文字列/数値> [, <文字列/数値> …]

<文字列/数値>

出力する文字列/数値を指定します。不要な空白桁は詰め、それぞれの間はカンマで

区切り、文字列はダブルクォーテーションで囲んで出力されます。

<ファイル番号>

出力先のファイル番号を指定します。

備 考 ファイルに出力する場合、OPENコマンドでFOR OUTPUT/APPENDを指定してください。

使用例1 A = 10

B = 20

WRITE A, B

画面へ 10, 20 と表示します。

使用例2 TEST$ = “SAMPLE”

WRITE #1, TEST$

ファイル番号1で開いているファイルに対して SAMPLE という文字列を出力します。

Page 163: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.7 サブルーチンに関する関数・命令

サブルーチンとは、意味や内容、動きが同じプログラムを1つにまとめ、何度も同じ記述をしなくて済

むようにするやり方です。

処理A 呼び出し

- - Interface Corporation

163

上記の例では、全く同じ書き方をする「処理A」というプログラムが何度も出てきます。左のように記

載すると、プログラムは長くなり、さらにプログラムを修正したい場合、何ヶ所にもある「処理A」を

すべて修正する必要があります。これを「処理A」だけを1つにまとめることを、サブルーチン化する

といい、これにより、プログラムは短くなり、「処理A」の修正は1回で済みます。

サブルーチンの記述は、いくつかの方法があります。

1. GOSUB文で指定ラベルにジャンプし、処理を行った後RETURN文で戻る方式<例1>

2. CALL文でSUB文に指定したルーチンにジャンプし、END SUB文で戻る方式<例2>

3. FUNCTION文で定義した関数名にジャンプし、END FUNCTION文で戻る方式<例3>

なお、FUNCTION文のみ関数名に値を代入することで、呼び出し元に値を返却することができます。

<例1>

10 PRINT "三角形の面積を求めます"

20 PRINT "底辺:"

30 INPUT TEIHEN

40 PRINT "高さ:"

50 INPUT TAKASA

60 GOSUB MENSEKI ′サブルーチン MENSEKIを呼び出し

70 PRINT "面積は ";AA

80 END

90 ‘ サブルーチン

100 MENSEKI: ′サブルーチン MENSEKI

110 AA = TEIHEN * TAKASA/2

120 RETURN

処理B 処理A 処理C 処理A 処理D :

処理B呼び出し

処理C 処理A 呼び出し

処理D:

Page 164: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

164

<例2>

10 PRINT "三角形の面積を求めます"

20 PRINT "底辺:"

30 INPUT TEIHEN

40 PRINT "高さ:"

50 INPUT TAKASA

60 CALL MENSEKI(TEIHEN, TAKASA) ′サブルーチン MENSEKIを呼び出し

70 PRINT "面積は ";AA

80 END

90 ‘ サブルーチン

100 SUB MENSEKI(A,B) ′サブルーチン MENSEKI

110 AA = A*B/2

120 END SUB

<例3>

10 PRINT "三角形の面積を求めます"

20 PRINT "底辺:"

30 INPUT TEIHEN

40 PRINT "高さ:"

50 INPUT TAKASA

60 AA = MENSEKI(TEIHEN, TAKASA) ′サブルーチン MENSEKIを呼び出し

70 PRINT "面積は ";AA

80 END

90 ‘ サブルーチン

100 FUNCTION MENSEKI(A,B) ′サブルーチン MENSEKI

110 MENSEKI = A*B/2

120 END FUNCTION

Page 165: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

165

2.7.1 (ラベル):

命令 i99-BASIC i99-REAL

機 能 サブルーチンのラベルを設定します。

書 式 <ラベル名>:

<ラベル名>

ラベル名を指定します。

ラベル名の後ろには:(コロン)を付けます。

注 意 直接コマンドでは使用できません。

使用例 10 A = 0

20 GOSUB SAMPLE

30 PRINT “A=”,A

40 END

60 SAMPLE:

70 A = 10

80 RETURN

RUN

A=10

行番号[60]で SAMPLE というラベルを設定しています。これによって、

行番号[20]のようにラベル名を指定してサブルーチンを呼び出す事ができます。

2.7.2 CALL

命令 i99-BASIC i99-REAL

機 能 SUB~END SUBで定義したサブルーチンを呼び出します。

書 式 CALL <サブルーチン名>[(<引数> [, <引数> …])]

<サブルーチン名>

SUB~END SUBで定義したサブルーチン名を指定します。

<引数>

サブルーチンの引数を指定します。

引数はローカル変数として扱われます。

注 意 直接コマンドでは使用できません。

使用例 NUM = 1

CALL SMP(NUM, "A")

SUB SMP(A, B$)

END SUB

<サブルーチン名> で指定した SMP というサブルーチンを呼び出します。

GOSUB(→「2.7.6 GOSUB」)とは異なり、例のように変数や値を記述することでサブ

ルーチンに引数を渡す事ができます。

Page 166: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

166

2.7.3 DEF FN, FUNCTION~END FUNCTION

命令 i99-BASIC i99-REAL

機 能 ユーザ定義関数を定義します。

書 式 DEF FN<関数名>[(<引数> [, <引数> …])] = <戻り値>

FUNCTION <関数名>[(<引数> [, <引数> …])]

<関数名> = <戻り値>

END FUNCTION

<関数名>

ユーザ定義関数の名前を指定します。

<引数>

ユーザ定義関数の引数を指定します。引数はローカル変数として扱われます。

<戻り値>

ユーザ定義関数の戻り値を指定します。

備 考 この命令で作成した関数は、再帰呼び出しできます。

関数を呼び出せる深さは、 大64段までです。

Ver.2.20以降より、配列変数を引数に指定できます。

注意1 この命令で作成した関数の戻り値は、関数と同じ名前の変数に代入する必要がありま

す。

注意2 直接コマンドでは使用できません。

注意3 ユーザ関数定義内へ外部からジャンプして入ってきたり、ユーザ関数定義内から外部へ

ジャンプしたりするプログラムは、その動作が保証されなくなります。

使用例1 DEF FNSUM(A, B)=A+B

PRINT FNSUM(1,2)

DEF FNにより定義する例です。

引数AとBを与えるとA+Bの処理を行うFNSUM という関数を作成します。

また、DEF FNにより関数を定義する場合、実際に使用する関数名は「FN<関数名>」です。

上記の例ではFNSUMになります。

使用例2 PRINT SUM(1,2)

END

FUNCTION SUM(A, B)

SUM=A+B

END FUNCTION

FUNCTIONにより定義する例です。

引数AとBを与えるとA+Bの処理を行うSUM という関数を作成します。

関数の処理内容はFUNCTION~END FUNCTIONの間に記述します。

Page 167: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

167

2.7.4 EXIT FUNCTION

命令 i99-BASIC i99-REAL

機 能 ユーザ定義関数から脱出します。

書 式 EXIT FUNCTION

注 意 直接コマンドでは使用できません。

備 考 FUNCTION~END FUNCTION(→「2.7.3 DEF FN, FUNCTION~END FUNCTION」)からの脱出に

用います。

使用例 FUNCTION SUM(A, B)

IF A+B > 5 THEN

EXIT FUNCTION

END IF

SUM=A+B

END FUNCTION

EXIT FUNCTION を用いる事で、途中で関数を脱出する事ができます。

2.7.5 EXIT SUB

命令 i99-BASIC i99-REAL

機 能 引数を使用するサブルーチンから脱出します。

書 式 EXIT SUB

注 意 直接コマンドでは使用できません。

備 考 SUB~END SUB(→「2.7.21 SUB~END SUB」)からの脱出に用います。

使用例 CALL SMP(1, "A")

SUB SMP(A, B$)

IF A > 5 THEN

EXIT SUB

END IF

PRINT “STRING=”,B$

END SUB

EXIT SUB を用いる事で、途中でサブルーチンを脱出する事ができます。

Page 168: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

168

2.7.6 GOSUB

命令 i99-BASIC i99-REAL

機 能 指定したラベル名または行番号のサブルーチンを呼び出します。

サブルーチンはRETURNで終わっている必要があります。

書 式 GOSUB <ラベル名/行番号>

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

備 考 サブルーチンを呼び出せる深さは、 大64段までです。

注 意 直接コマンドでは使用できません。

行番号を使用する際は、基本マニュアルの「コンソール画面とIDE画面での行番号の扱いに

ついて」を参考ください。

使用例1 10 GOSUB SAMPLE

200 SAMPLE:

250 RETURN

SAMPLE というラベル名のサブルーチンを呼び出します。

使用例2 10 GOSUB 1000

1000 ‘サブルーチンの開始

1050 RETURN

行番号[1000] のサブルーチンを呼び出します。

Page 169: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

169

2.7.7 GOTO

命令 i99-BASIC i99-REAL

機 能 指定したラベル名または行番号へ移動し、そこからプログラムを実行します。

書 式 GOTO <ラベル名/行番号>

<ラベル名/行番号>

移動先のラベル名または行番号を指定します。

備 考 直接コマンドから使用した場合、指定行からプログラムを実行します。

(RUN <開始行>と同等)

注 意 行番号を使用する際は、基本マニュアルの「コンソール画面とIDE画面での行番号の扱いに

ついて」を参考ください。

使用例1 100 GOTO SAMPLE

200 SAMPLE:

210 A = A + 1

SAMPLE というラベル名へ移動します。

使用例2 100 GOTO 1000

1000

1010 A = A + 1

行番号[1000] へ移動します。

Page 170: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

170

2.7.8 KEY ON/OFF/STOP

命令 i99-BASIC -

機 能 ファンクションキーによる割り込みの許可, 禁止, 停止を指定します。

割り込みのサブルーチンはON KEY GOSUBで定義します。

プログラム終了時にはKEY OFFを実行してください。

書 式 KEY[<キー番号>] ON

割り込みを許可します。これ以降、ファンクションキーが押下されると、サブルーチ

ンに分岐します。

KEY[<キー番号>] OFF

割り込みを禁止します。これ以降、ファンクションキーが押下されても、サブルーチ

ンへの分岐は起こりません。

KEY[<キー番号>] STOP

割り込みを停止します。これ以降、ファンクションキーが押下されても、サブルーチ

ンへの分岐は起こりません。しかしKEY ONで割り込みが許可されると、検知済みの割

り込みでサブルーチンに分岐します。

<キー番号>

割り込み処理を設定するファンクションキーの番号を1~12で指定します。

省略した場合、すべてのファンクションキーによる割り込みを設定します。

備 考 ON KEY GOSUB (→「2.7.12 ON KEY GOSUB」)の制御に用います。

使用例1 ON KEY GOSUB SAMPLE

KEY ON

SAMPLE:

KEY OFF

PRINT “TEST-OK”

RETURN

F1キーを押下すると、SAMPLEというサブルーチンを呼び出します。

<キー番号>を省略するとすべてのファンクションキーによって割り込みを設定します。

割り込み発生後にKEY OFFで、これ以降の割り込みの禁止を行っています。

使用例2 ON KEY(1) GOSUB SAMPLE

KEY(1) ON

SAMPLE:

KEY(1) STOP

PRINT “PUSH-[F1]KEY”

RETURN

F1キーを押下すると、SAMPLEというサブルーチンを呼び出します。

割り込みによる処理中にはKEY STOPで割り込みの停止を行っています。

Page 171: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

171

2.7.9 ON ERROR GOSUB

命令 i99-BASIC i99-REAL

機 能 エラーが発生した際に分岐するサブルーチンを定義します。

書 式 ON ERROR GOSUB <ラベル名/行番号>

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

0を指定すると、登録済みのサブルーチンを解除します。

注 意 ・ 直接コマンドでは使用できません。

・ ON ERROR GOTO / ON ERROR RESUME / ON ERROR GOSUBは、

排他的に利用できます。 後に呼び出した方が優先されます。

・ エラー処理のサブルーチンを定義すると、エラーが発生した際、自動的にエラーメッセー

ジは表示されなくなります。

・ ON ERROR GOSUBを抜けるときは、RETURNを使用してください。

・ エラー処理のサブルーチンから戻る時、エラーの発生した次の行に戻ります。

この動きは、ON ERROR GOTOコマンドを使用して、RESUME NEXTを使用した時に類似しま

す。

・ エラー処理中にエラーを起こした場合、そこで実行はストップします。

(エラー処理に多重で飛びません)

使用例1 ON ERROR GOSUB SAMPLE

SAMPLE:

PRINT “エラーが発生しました。”

RETURN

エラー発生時に SAMPLE というサブルーチンへ分岐するように定義します。

使用例2 100 ON ERROR GOSUB 1000

1000 ‘エラー処理

1010 PRINT “エラーが発生しました。”

1020 RETURN

エラー発生時に 行番号[1000]のサブルーチンへ分岐するように定義します。

使用例3 ON ERROR GOSUB 0

エラー発生時のサブルーチンへの分岐を解除します。

Page 172: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

172

2.7.10 ON ERROR GOTO

命令 i99-BASIC i99-REAL

機 能 エラーが発生した際の移動先を定義します。

書 式 ON ERROR GOTO <ラベル名/行番号>

<ラベル名/行番号>

移動先のラベル名または行番号を指定します。

0を指定すると、登録済みの移動先を解除します。

注 意 ・ 直接コマンドでは使用できません。

・ ON ERROR GOTO / ON ERROR RESUME / ON ERROR GOSUBは、

排他的に利用できます。 後に呼び出した方が優先されます。

・ ON ERROR GOTOを抜けるときは、RESUMEを使用してください。

・ エラー処理のサブルーチンを定義すると、エラーが発生した際、自動的にエラーメッセー

ジは表示されなくなります。

・ エラー処理中にエラーを起こした場合、そこで実行はストップします。

(エラー処理に多重で飛びません)

使用例1 ON ERROR GOTO SAMPLE

SAMPLE:

END

エラー発生時に SAMPLE というラベルへ移動するように定義します。

使用例2 100 ON ERROR GOTO 1000

1000 ‘エラー処理

1010 PRINT “エラーが発生しました。”

1020 RESUME NEXT

エラー発生時に 行番号[1000]へ移動するように定義します。

使用例3 ON ERROR GOTO 0

エラー発生時の移動先設定を解除します。

2.7.11 ON ERROR RESUME NEXT

命令 i99-BASIC i99-REAL

機 能 エラーが発生した際に次の行から再開するよう定義します。

書 式 ON ERROR RESUME NEXT

注 意 ・ 直接コマンドでは使用できません。

・ ON ERROR GOTO / ON ERROR RESUME / ON ERROR GOSUBは、

排他的に利用できます。 後に呼び出した方が優先されます。

・ この呼び出しを定義すると、エラーが発生した際、自動的にエラーメッセージは表示さ

れなくなります。

使用例 10 ON ERROR RESUME NEXT

20 A = “数値型変数へ文字列”

30 PRINT “処理中です。”

エラーが発生した際に、プログラムを終了せずに次の行から処理を再開します。

例では、行番号[20]でエラーが発生しますが、行番号[30]から処理を再開します。

Page 173: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

173

Page 174: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

174

2.7.12 ON KEY GOSUB

命令 i99-BASIC -

機 能 ファンクションキー押下により分岐するサブルーチンを定義します。

この割り込みは、KEY ONの状態で有効になります。

書 式 ON KEY GOSUB <ラベル名/行番号>[, <ラベル名/行番号> …]

ON KEY(<キー番号>) GOSUB <ラベル名/行番号>

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

<キー番号>

割り込み処理を設定するファンクションキーの番号を1~12で指定します。

備 考 <ラベル名/行番号>の並びの中で<ラベル名/行番号>の指定を省略した場合は、それに対

応するファンクションキーによる割り込みは起こりません。

注 意 直接コマンドでは使用できません。トレース実行中には使用できません。

使用例1 ON KEY GOSUB SAMPLE1, ,SAMPLE3

KEY ON

KEY OFF

SAMPLE1:

PRINT ”F1キーが押されました。”

RETURN

SAMPLE3:

PRINT ”F3キーが押されました。”

RETURN

F1キーを押すとサブルーチンSAMPLE1へ、F3キーを押すとサブルーチンSAMPLE 3へ分岐

するように定義します。

<ラベル名/行番号>の指定をカンマ区切りで指定する事によって、先頭から順に

F1,F2,F3…F11,F12 と自動でキーを割り当てます。

例ではF1とF3に分岐先を定義し、F2,F4~F12キーには定義していません。

使用例2 10 ON KEY(1) GOSUB 1000

20 KEY(1) ON

1000 ‘F1キーの処理

1010 PRINT ”F1キーが押されました。”

1020 RETURN

F1キーを押すと行番号[1000]のサブルーチンへ分岐するように定義します。

Page 175: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

175

2.7.13 ON STOP GOSUB

命令 i99-BASIC -

機 能 Pause/Ctrl+Cキー押下により分岐するサブルーチンを定義します。

この割り込みは、STOP ONの状態で有効になります。

書 式 ON STOP GOSUB <ラベル名/行番号>

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

注 意1 直接コマンドでは使用できません。トレース実行中には使用できません。

注 意2 不用意にこの命令が実行されてしまうと、本来のPause/Ctrl+Cキーの機能は失われ、プロ

グラムの中断ができなくなってしまいます。プログラムの動作が完全になってから、この

命令を実装してください。

使用例1 ON STOP GOSUB SAMPLE

STOP ON

SAMPLE:

PRINT “Pause/Ctrl+Cキーが押されました。”

RETURN

Pause/Ctrl+Cキーを押すと SAMPLE というサブルーチンへ分岐するように定義します。

使用例2 10 ON STOP GOSUB 1000

20 STOP ON

1000 ‘Pause/Ctrl+Cキーの処理

1010 PRINT “Pause/Ctrl+Cキーが押されました。”

1020 RETURN

Pause/Ctrl+Cキーを押すと行番号[1000]へ分岐するように定義します。

Page 176: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

176

2.7.14 ON TIME$ GOSUB

命令 i99-BASIC -

機 能 指定時刻に分岐するサブルーチンを定義します。

この割り込みは、TIME$ ONの状態で有効になります。

書 式 ON TIME$ = <時刻> GOSUB <ラベル名/行番号>

<時刻>

サブルーチンへ分岐する時刻を"hh:mm:ss"形式で指定します。

特定の時分秒を指定して他を"*"にすると、特定の時間周期を指定できます。

"*:*:00"とした場合、毎分0秒の時点でサブルーチンへ分岐します。

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

注 意 直接コマンドでは使用できません。トレース実行中には使用できません。

使用例1 ON TIME$="12:00:00" GOSUB SAMPLE

TIME$ ON

SAMPLE:

PRINT “12時になりました。”

RETURN

12時00分00秒にSAMPLE というサブルーチンへ分岐するように定義します。

使用例2 10 ON TIME$="*:00:00" GOSUB 1000

20 TIME$ ON

1000 ‘ON TIME$の処理

1010 PRINT “00分になりました。”

1020 RETURN

毎時00分00秒にSAMPLE というサブルーチンへ分岐するように定義します。

Page 177: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

177

2.7.15 ON TIMER GOSUB

命令 i99-BASIC -

機 能 指定間隔で分岐するサブルーチンを定義します。

この割り込みは、TIMER ONの状態で有効になります。

書 式 ON TIMER = <数値> GOSUB <ラベル名/行番号>

<数値>

サブルーチンへ分岐する間隔を1以上のミリ秒単位で指定します。

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

注 意 直接コマンドでは使用できません。トレース実行中には使用できません。

使用例1 ON TIMER=10000 GOSUB SAMPLE

TIMER ON

SAMPLE:

PRINT “10秒経過しました。”

RETURN

10000ミリ秒(10秒)間隔でSAMPLEというサブルーチンへ分岐するように定義します。

使用例2 10 ON TIMER=10000 GOSUB 1000

20 TIMER ON

1000 ‘ON TIMER の処理

1010 PRINT “10秒経過しました。”

1020 RETURN

10000ミリ秒(10秒)間隔で行番号[1000]へ分岐するように定義します。

Page 178: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

178

2.7.16 ON ~ GOSUB

命令 i99-BASIC i99-REAL

機 能 指定したいずれかのサブルーチンを呼び出します。

サブルーチンはRETURNで終わっている必要があります。

書 式 ON <数式> GOSUB <ラベル名/行番号> [, <ラベル名/行番号>[, <ラベル名/行番号>…]]

<数式>

何番目の分岐先を呼び出すかを指定します。

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

注 意 直接コマンドでは使用できません。

使用例 10 A = 2

20 ON A GOSUB SAMPLE, 100

30 END

40 SAMPLE:

50 PRINT “A=1”

60 RETURN

100 ‘サブルーチンの処理開始

110 PRINT “A=2”

120 RETURN

行番号[100]のサブルーチンへ分岐します。

例では、<数式>でA(値が2)を指定しているので2番目の指定先が設定されます。Aの値が

1であれば、1番目の指定先 SAMPLE ラベルが設定されます。

Page 179: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

179

2.7.17 ON ~ GOTO

命令 i99-BASIC i99-REAL

機 能 指定したいずれかの行へ移動し、そこからプログラムを実行します。

書 式 ON <数式> GOTO <ラベル名/行番号> [, <ラベル名/行番号>[, <ラベル名/行番号>…]]

<数式>

何番目の分岐先を呼び出すかを指定します。

<ラベル名/行番号>

移動先のラベル名または行番号を指定します。

注 意 直接コマンドでは使用できません。

使用例 10 A = 2

20 ON A GOTO 100, SAMPLE

30 END

40 SAMPLE:

50 PRINT “A=1”

60 END

100 ‘サブルーチンの処理開始

110 PRINT “A=2”

120 END

SAMPLE というラベルへ移動します。

例では、<数式>でA(値が2)を指定しているので2番目の指定先が設定されます。Aの値が

1であれば、1番目の指定先 行番号[100]が設定されます。

Page 180: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

180

2.7.18 RESUME

命令 i99-BASIC i99-REAL

機 能 ON ERROR GOTO処理を終了し、指定の移動先からプログラムを再開します。

書 式 RESUME NEXT

エラー発生行の次の行に復帰します。

RESUME 0

エラー発生行に復帰します。

RESUME <ラベル名/行番号>

指定の移動先に復帰します。

<ラベル名/行番号>

移動先のラベル名または行番号を指定します。

注 意 ・ 直接コマンドでは使用できません。

使用例1 10 ON ERROR GOTO SAMPLE

20 A$= 1

30 PRINT ”復帰しました。”

40 END

50 SAMPLE:

60 PRINT “エラーが発生しました。”

70 RESUME NEXT

行番号[20]でのエラー発生後に行番号[50]~[70]を実行し、行番号[30]から再開します。

使用例2 10 ON ERROR GOTO SAMPLE

20 A$= 1

30 PRINT ”復帰しました。”

40 END

50 SAMPLE:

60 PRINT “エラーが発生しました。”

70 RESUME 0

行番号[20]でのエラー発生後に行番号[50]~[70]を実行し、行番号[20]から再開します。

使用例3 ON ERROR GOTO SAMPLE

SAMPLE:

PRINT “エラー処理を実施”

RESUME SAMPLE2

SAMPLE2:

PRINT “復帰しました。”

END

サブルーチン SAMPLE でのエラー処理後に SAMPLE2 というサブルーチンから再開しま

す。

Page 181: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

181

2.7.19 RETURN

命令 i99-BASIC i99-REAL

機 能 サブルーチンを終了し、元のプログラムに処理を戻します。

書 式 RETURN

注 意 直接コマンドでは使用できません。

使用例 PRINT “サブルーチン SAMPLE を開始します。”

GOSUB SAMPLE

PRINT “サブルーチン SAMPLE を終了しました。”

END

SAMPLE:

PRINT “サブルーチン SAMPLE実行中”

RETURN

SAMPLE というサブルーチンを終了し、呼び出し元へ戻ります。

2.7.20 STOP ON/OFF/STOP

命令 i99-BASIC -

機 能 Pause/Ctrl+Cキーによる割り込みの許可, 禁止, 停止を指定します。

割り込みのサブルーチンはON STOP GOSUB(→「2.7.13 ON STOP GOSUB」)で定義します。

プログラム終了時にはSTOP OFFを実行してください。

書 式 STOP ON

割り込みを許可します。これ以降、Pause/Ctrl+Cキーが押下されると、サブルーチン

に分岐します。

STOP OFF

割り込みを禁止します。これ以降、Pause/Ctrl+Cキーが押下されても、サブルーチン

への分岐は起こりません。

STOP STOP

割り込みを停止します。これ以降、Pause/Ctrl+Cキーが押下されても、サブルーチン

への分岐は起こりません。

しかしSTOP ONで割り込みが許可されると、検知済みの割り込みでサブルーチンに分

岐します。

備 考 ON STOP GOSUB(→「2.7.13 ON STOP GOSUB」)での割り込み制御に用います。

使用例 10 ON STOP GOSUB SAMPLE

20 STOP ON

150 STOP OFF

200 SAMPLE:

210 STOP STOP

220 PRINT ”割り込み処理中”

230 RETURN

STOP 割り込みに対して、行番号[20]で割り込み許可、行番号[210]で割り込み停止、行

番号[150]で割り込み禁止をそれぞれ指定しています。

Page 182: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

182

2.7.21 SUB~END SUB

命令 i99-BASIC i99-REAL

機 能 引数を使用するサブルーチンを定義します。

書 式 SUB <サブルーチン名>[(<引数> [, <引数> …])]

END SUB

<サブルーチン名>

サブルーチンの名前を指定します。

<引数>

サブルーチンの引数を指定します。

引数はローカル変数として扱われます。

備 考 この命令で作成したサブルーチンは、再帰呼び出しできます。

サブルーチンを呼び出せる深さは、 大64段までです。

Ver.2.20以降より、配列変数を引数に指定できます。

注意1 直接コマンドでは使用できません。

注意2 サブルーチン定義内へ外部からジャンプして入ってきたり、サブルーチン定義内から外

部へジャンプしたりするプログラムは、その動作が保証されなくなります。

使用例 CALL SMP(1, "A")

SUB SMP(A, B$)

END SUB

引数に数値型変数Aと文字型変数B$を持ったサブルーチン SMP を定義します。

例では、変数Aに数値1,変数B$にAという文字を受け取っています。

Page 183: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

183

2.7.22 TIME$ ON/OFF/STOP

命令 i99-BASIC -

機 能 TIME$割り込みの許可, 禁止, 停止を指定します。

割り込みの発生条件、サブルーチンはON TIME$ GOSUBで定義します。

プログラム終了時にはTIME$ OFFを実行してください。

書 式 TIME$ ON

割り込みを許可します。これ以降、指定の時刻になると、サブルーチンに分岐します。

TIME$ OFF

割り込みを禁止します。これ以降、指定の時刻になっても、サブルーチンへの分岐は

起こりません。

TIME$ STOP

割り込みを停止します。これ以降、指定の時刻になっても、サブルーチンへの分岐は

起こりません。

しかしTIME$ ONで割り込みが許可されると、検知済みの割り込みでサブルーチンに分

岐します。

備 考 ON TIME$ GOSUB(→「2.7.14 ON TIME$ GOSUB」)での割り込み制御に用います。

使用例 10 ON TIME$=”00:00:00” GOSUB SAMPLE

20 TIME$ ON

150 TIME$ OFF

200 SAMPLE:

210 TIME$ STOP

220 PRINT “割り込み処理中”

230 RETURN

TIME$割り込みに対して、行番号[20]で割り込み許可、行番号[210]で割り込み停止、行

番号[150]で割り込み禁止をそれぞれ指定しています。

Page 184: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

184

2.7.23 TIMER ON/OFF/STOP

命令 i99-BASIC -

機 能 TIMER割り込みの許可, 禁止, 停止を指定します。

割り込みの発生条件、サブルーチンはON TIMER GOSUBで定義します。

プログラム終了時にはTIMER OFFを実行してください。

書 式 TIMER ON

割り込みを許可します。

これ以降、指定の間隔が経つと、サブルーチンに分岐します。

TIMER OFF

割り込みを禁止します。

これ以降、指定の間隔が経っても、サブルーチンへの分岐は起こりません。

TIMER STOP

割り込みを停止します。

これ以降、指定の間隔が経っても、サブルーチンへの分岐は起こりません。

しかしTIMER ONで割り込みが許可されると、検知済みの割り込みでサブルーチンに分

岐します。

備 考 ON TIMER GOSUB(→「2.7.15 ON TIMER GOSUB」)での割り込み制御に用います。

使用例 10 ON TIMER=1000 GOSUB SAMPLE

20 TIMER ON

150 TIMER OFF

200 SAMPLE:

210 TIMER STOP

220 PRINT “割り込み処理中”

230 RETURN

TIMER割り込みに対して、行番号[20]で割り込み許可、行番号[210]で割り込み停止、行

番号[150]で割り込み禁止をそれぞれ指定しています。

Page 185: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

185

2.8 スレッドに関する関数・命令

i99-BASICは、マルチスレッドを扱う事ができます。

スレッドとは、複数のBASICプログラムを同時に並行して動かす場合の処理の単位です。複数同時に動

かす場合を特にマルチスレッドと呼びます。

処理の単位としては、スレッドの他にプロセスがあります。プロセスは通常メモリ空間が独立してい

ますが、スレッドは同一という違いがあります。

マルチスレッドを用いる用途としては、グラフィカルな対話処理のバックグランドで、何かの計算処

理を行いたい。といった時に多く用いられます。

この場合、メインのスレッドで対話処理を行いつつ、別のスレッドでは計算処理を実行します。計算

結果が得られたら、メインと別のスレッドが情報のやり取りを行う事で、対話処理を遅滞なく行う事

ができるようになります。

i99-BASICでは、プログラム開始時に動くスレッド(=プログラム)を、「メインスレッド」と呼びます。

メインスレッドは、プログラムの実行中に必ず存在します。

それに対して、「ATTACH THREAD」命令によって任意に生成できる別スレッドを「ワーカースレッド」

と呼びます。生成できるワーカースレッドの 大数は15です。

i99-BASICでは、メインスレッドとワーカースレッドを合わせて、同時に16のスレッドが動かせます。

メインスレッドは他のスレッドに比べて特別扱いされます。

例えば、メインスレッドで「END」命令が実行されると他のワーカースレッドはすべて終了しますが、

ワーカースレッドで「END」命令が実行されると自身のスレッドのみ終了します。

このほかにも、「LOAD」などのプログラムを制御する命令は、メインスレッドからしか呼び出しでき

ないという制限があります。

各スレッドをデバッグするには、プログラムを中断した状態で「SELECT THREAD」命令かIDE上のスレ

ッドのプログラムタブを選択して、デバッグしたいスレッドに切り替えてください。

メインスレッドとワーカースレッドの特徴を、下表にまとめます。

メインスレッド ワーカースレッド

生成方法 プログラム実行中は必ず存在します。 「ATTACH THREAD」命令で任意に生成できます。

実行数 1つしか存在しません。 15まで生成できます。

確認方法 プログラム実行中は必ず存在します。 「THREAD STATUS」命令で実行中かを確認できま

す。

終了方法 「END」命令で終了します。 以下のいずれかの方法で終了します。

・自身からの「END」命令。

・他者からの「DETACH THREAD」命令。

・メインスレッドからの「END」命令。

スレッド

選択

「SELECT THREAD 0」で指定します。 「SELECT THREAD <スレッド番号>」で指定します。

制限事項 特にありません。 プログラムを制御する命令は実行できません。

Page 186: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

186

スレッド同士での情報のやり取りは、グローバル変数にて行います。

例えば、「CNT」というグローバル変数を、ワーカースレッドがインクリメントして、メインスレッド

が参照しようとする場合、以下のようにコードを記述します。

<メインスレッド側のコード>

CNT = 0

ATTACH THREAD 1, THREAD_1 ‘ ワーカースレッドを生成&実行

WHILE (CNT < 10)

? “CNT の値:”, CNT ‘ CNT の値を参照して PRINT

WEND

END

<ワーカースレッド側のコード>

THREAD_1:

CNT = CNT + 1 ‘ CNT の値をインクリメント

SLEEP 0.1

GOTO THREAD_1

スレッド機能を使うプログラムをデバッグする場合、ワーカースレッド固有の挙動として以下の特徴

があります。

1. ワーカースレッドはプログラムの実行状態と同じく、実行、終了、停止の3状態の他に、「存在し

ない」状態が在ります。

ワーカースレッドは、任意に生成&実行される為、 初は「存在しない」状態です。

2. 通常時、ワーカースレッドの終了は、そのまま「存在しない」状態に遷移します。

ワーカースレッドの停止は、メインスレッドと同じように停止で待機します。

3. プログラム実行時、生成されるすべてのワーカースレッドは、メインスレッドと同じ実行状態に

なります。

メイン/ワーカースレッドが停止すると、すべてのワーカースレッドは停止し、メインスレッドが

終了すると、すべてのワーカースレッドは終了します。

なお、ワーカースレッドの終了は、自身の終了のみです。

4. シングルトレース実行は、選択されたスレッドのみプログラムを進めます。

5. 「ATTACH THREAD」命令の<起動条件>に1を指定すると、生成されたワーカースレッドは生成と

同時に停止します(他のスレッドもすべて停止します)。停止したワーカースレッドは、コマンド

入力待ちに入ります。

「ATTACH THREAD」命令の<終了条件>に1を指定すると、実行中のワーカースレッドが停止した

際、「存在しない」状態に遷移せずに、コマンド入力待ちに入ります(コマンドで再度「END」命

令を呼び出すと、「存在しない」状態に遷移します)。

6. ワーカースレッドの処理を中断すると、「break in XX (thread no:nn)」という風に、どのワー

カースレッドで停止したか出力されます。

7. 「ON ERROR GOSUB」命令などのエラー処理系は、スレッド毎に宣言&利用する必要があります。

「ERR」関数で得られるエラーコードは、スレッド毎に独立しています。

Page 187: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

基本的に、どれかのスレッドでエラー等が発生し、「ON ERROR GOSUB」命令が無いために処理を中断

せざると得ない場合、全スレッドが中断します。

どれかのスレッドのみを動かす事ができるのは、「SINGLETRACE」などのシングルトレース命令のみで

す。

また、マルチスレッドプログラミングを行う場合、一部のコマンドや関数(例えば「ON ERROR GOSUB」

コマンドや「ERR」関数)は、スレッド毎に状態を持つ事に留意してください。

例えばワーカースレッド内でエラーにより処理が中断した状態で、ワーカースレッドで「? ERR」とし

た時は、ワーカースレッド内で発生したエラーコード値が得られますが、メインスレッドを選択して

「? ERR」とした時は、メインスレッド側では何もエラーが発生していないので、正常を示す「0」が

得られます。

上に書いた挙動を、主要なコマンドの挙動事例に照らし合わせてみます。

コマンド 挙動

RUN すべてのスレッドは実行状態に入ります。

STOP すべてのスレッドは停止状態に入ります。

END メインスレッドから実行すると、すべてのスレッドは終了状態に入ります。

ワーカースレッドから実行すると、自身のスレッドのみ終了状態に入ります。

CONT すべてのスレッドを停止から実行状態に再開します。

SINGLETRACE

SINGLETRACEOVER

選択したスレッドのみ一つ実行します。

Ctrl+Cなどによる

停止

すべてのスレッドは停止状態に入ります。

任意のスレッドをシングルトレース実行するには、動かそうとするスレッドを選択する必要

があります。

IDE画面でタブをクリックするか、コマンドでSELECT THREADを実行すると、指定のスレッド

が選択されます。

ワーカースレッドのプログラムコードは、安全上の理由から編集や保存はできません。

これは、メインスレッドのプログラムと間違えて保存などの誤操作を防ぐためにあります。

ワーカースレッドのプログラムコードを編集する場合は、メインスレッドからLOADしてくだ

さい。

ワーカースレッドの終了を確認したい場合、PRINT文を挿入したり、THREAD STATUS関数を使

って確認してください。

- - Interface Corporation

187

Page 188: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

188

2.8.1 ATTACH THREAD

命令 i99-BASIC i99-REAL

機 能 スレッドを生成します。

書 式 ATTACH THREAD <スレッド番号>, : <プログラム名/ラベル/行番号> [, <起動条件>, <

終了条件>]

<スレッド番号>

生成するスレッド番号を1~15の範囲で指定します。

<プログラム名/ラベル名/行番号>

スレッドを生成して実行するプログラム名, ラベル名, 行番号を指定します。

<起動条件>

0:起動したスレッドをそのまま実行します。

1:起動したスレッドを一旦停止します。(トレース等のデバッグに用います。)

デフォルト:0(起動したスレッドをそのまま実行します。)

<終了条件>

0:実行終了したらスレッドを閉じる。

1:実行終了したスレッドを一旦停止。(変数確認等のデバッグに用います。)

デフォルト:0(実行終了したらスレッドを閉じます。)

既にスレッドが稼動中の場合、エラーとなります。

注 意 シングルトレース実行(SINGLETRACEなど)からATTACH THREAD命令が呼ばれると、自動的

に 起動条件が1として動作します。

直接コマンドでは使用できません。

使用例 10 CNT = 0

20 ‘

30 ATTACH THREAD 1, TEST

40 ‘

50 DO

60 ? CNT

70 LOOP WHILE CNT < 10

80 ‘

90 DETACH THREAD 1

100 ‘

110 END

120 ‘

130 TEST:

140 CNT = CNT + 1

150 SLEEP 0.1

160 GOTO TEST

ATTACH THREADで、TESTルーチンを実行するスレッド1を作成します。

スレッド1は、変数CNTをインクリメントします。

メインは、変数CNTを監視して、10を超えたら終了します。

Page 189: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

189

2.8.2 DETACH THREAD

命令 i99-BASIC i99-REAL

機 能 スレッドを終了します。

書 式 DETACH THREAD <スレッド番号> [,NOCHK]

<スレッド番号>

終了するスレッド番号を指定します。

<NOCHK>

NOCHKを指定すると、スレッドが動作しているか否かチェックしません。

省略すると、スレッドが動作していないとエラーになります。

このオプションは、スレッド自身がEND等で終了する前に、まだ動作しているかもし

れないスレッドを終了させるのに用います。

スレッドが終了するまで待機します。

注 意 「DETACH THREAD」コマンドは、他のスレッドから任意のスレッドを終了する際に

用います。メインスレッド以外のワーカースレッドで、自身が終了する場合は「END」

コマンドを利用してください。 使用例1 10 CNT = 0

20 ‘

30 ATTACH THREAD 1, TEST

40 ‘

50 DO

60 ? CNT

70 LOOP WHILE CNT < 10

80 ‘

90 DETACH THREAD 1

100 ‘

110 END

120 ‘

130 TEST:

140 CNT = CNT + 1

150 SLEEP 0.1

160 GOTO TEST

ATTACH THREADで、TESTルーチンを実行するスレッド1を作成します。

90行でメインは、稼動中のスレッド1を停止させます。

使用例2 使用例1を下のように一部修正します。

80 SLEEP 1

90 DETACH THREAD 1, NOCHK

155 IF CNT > 10 THEN END

90行に来た時、スレッド1が稼動中の場合はスレッドを停止し、すでに停止している場

合はそのまま通過します。

Page 190: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

190

2.8.3 SELECT THREAD

命令 i99-BASIC i99-REAL

機 能 指定のスレッドをカレントにします。

指定のスレッドをデバッグする際に使用します。

書 式 SELECT THREAD <スレッド番号>

<スレッド番号>

切替先のスレッド番号を0~15の範囲で指定します。

使用例 SELECT THREAD 0

メインスレッドをカレントにします。

2.8.4 THREAD STATUS

関数 i99-BASIC i99-REAL

機 能 スレッドの状態を取得します。

書 式 THREAD STATUS(<スレッド番号>)

<スレッド番号>

状態を取得するスレッド番号を1~15の範囲で指定します。

使用例 10 CNT = 0

20 '

30 ATTACH THREAD 1, TEST

40 '

50 DO

60 ? CNT, THREAD STATUS(1)

70 LOOP WHILE CNT < 10

80 '

90 DETACH THREAD 1

100 '

110 END

120 '

130 TEST:

140 CNT = CNT + 1

150 SLEEP 0.1

160 GOTO TEST

60行のTHREAD STATUSでスレッド1が稼動中の場合、TRUEが表示されます。

Page 191: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

191

2.8.5 THREAD INFO

関数 i99-BASIC -

機 能 スレッドの情報を取得します。

書 式 THREAD INFO(<定義ID> [, ...])

<定義ID>

取得したい情報の定義名を指定します。

↓以下に、定義ID別の機能を示します。

機能1.自身のスレッド番号を取得します。

THREAD INFO(“SELF”)

使用例 PRINT THREAD INFO(“SELF”)

上の例は、現在実行中のスレッド番号を表示します。

Page 192: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.9 グラフィック描画に関する関数・命令

ここで紹介するグラフィック描画の命令は、コンソール画面上に描画する為の命令群です。

GUIで生成したウィンドウ上にグラフィック描画するには、「第4章 グラフィカルユーザ

インタフェース(GUI)」の命令群を参照ください。

グラフィック描画の命令は、「i99-REAL」からは使用できません。

2.9.1 ARC

命令 i99-BASIC -

機 能 コンソール画面に円弧を描画します。

書 式 ARC (<X座標>, <Y座標>) – (<横幅>, <縦幅>) [,<塗りつぶしスイッチ>] [,<色>] [,<

開始角度>] [,<終了角度>]

<X座標>, <Y座標>, <横幅>, <縦幅>

円弧を描画する座標と領域をpixel単位で指定します。

横幅、縦幅の領域内に対して円弧を描画します。

左上が原点 (0, 0) です。

<塗りつぶしスイッチ>

TRUEを指定すると、円弧内を塗りつぶします。

(枠線の点線描画は行いません)

<色>

グラフィックに対する前景色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

省略すると、COLOR文で指定した色が採用されます。

<開始角度>, <終了角度>

円弧を描く開始角度と終了角度を指定します。

角度の指定と関係性は、下図のようです。

0 度(0)

90 度(90)

180 度(180)

270 度(270)

45 度(45)

360 度(360)

使用例 ARC (60,50) -(200,200),true,6,0,180

黄色の半円を描画する例です。

例では、<X座標> 60 <Y座標> 50 <横幅> 200 <縦幅> 200 <塗りつぶし>TRUE、

<色> 6 (黄色)で <開始角度>0度、<終了角度>180度を指定して描画しています。

Interface Corporation - -

192

Page 193: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.9.2 CIRCLE

命令 i99-BASIC -

機 能 コンソール画面に円を描画します。

書 式 CIRCLE (<X座標>, <Y座標>) ,<半径> [,<色>] [,<開始角度>] [,<終了角度>] [,<塗り

つぶしスイッチ>]

<X座標>, <Y座標>

円を描く中心座標をpixel単位で指定します。

<半径>

円を描く半径をpixel単位で指定します。

<色>

グラフィックに対する前景色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

省略すると、COLOR文で指定した色が採用されます。

<開始角度>, <終了角度>

円弧を描く開始角度と終了角度を指定します。

角度の指定と関係性は、下図のようです。

0 度(0)

90 度(90)

180 度(180)

270 度(270)

45 度(45)

360 度(360)

<塗りつぶしスイッチ>

TRUEを指定すると、円弧内を塗りつぶします。

(枠線の点線描画は行いません)

使用例 CIRCLE (100,100),90,6,0,180

黄色の半円を描画する例です。

例では、<X座標> 100 <Y座標> 100 <半径> 90 <色> 6 (黄色) <開始角度>0度

<終了角度>180度を指定して描画しています。

- - Interface Corporation

193

Page 194: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

194

2.9.3 DRAWFILE

命令 i99-BASIC -

機 能 コンソール画面に指定ファイルの画像を描画します。

書 式 DRAWFILE (<X座標>, <Y座標>), <画像ファイルパス>

<X座標>, <Y座標>

画像をグラフィックに書き込む座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<画像ファイルパス>

画像ファイルのパスを指定します。

指定できるファイルはJPEG, PNG形式です。

使用例 DRAWFILE (100, 100), “yuki.png”

コンソール画面上の X座標 100 Y座標 100 の位置に yuki.png という画像ファイルを

描画します。

Page 195: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

2.9.4 DRAWSTYLE

命令 i99-BASIC -

機 能 図形描画のスタイルを設定します。

書 式 DRAWSTYLE <キー名>=<値> [,<キー名>=<値> ...]

<キー名>, <値>

スタイル設定を行う際のキー値と代入値を指定します。

以下の表の組み合わせに従います。

パラメータ 設 定 値

LINEWIDTH LINEの線の太さをpixel単位で指定します。

1以上の数値を与えて下さい。

デフォルトは1です。

LINESTYLE LINEの線のスタイルを指定します。

0=直線, 1=点線, 2=点線(FGCOLORとBGCOLORの繰り返し)デフォルトは0です。

CAPSTYLE LINEの端点のスタイルを指定します。

0=特に無し, 2=丸みを付ける

デフォルトは0です。

FGCOLOR グラフィック描画の前景色を指定します。

COLOR文の指定方法と同じです。

デフォルトは7(白)です。

BGCOLOR グラフィック描画の背景色を指定します。

COLOR文の指定方法と同じです。

デフォルトは0(黒)です。

ORIGINPOS グラフィック描画時の原点座標を指定します。

0=左上, 1=左下

デフォルトは0です。

DRAWTEXTBG DRAWTEXT の文字の背景色描画を指定します。

0=描画しない 1=描画する

デフォルトは 0です

キーと値は、「,」で区切る事で、連続して指定できます。

備 考 FGCOLOR,BGCOLORの指定にはCOLOR文(→「2.2.4 COLOR」)を用います。

注 意 CAPSTYLEによる端点の丸み付けは、線のスタイル(LINESTYLE)に2が指定されており、

かつ背景色(BGCOLOR)に何らかの色が指定されている時のみ有効です。

使用例 DRAWSTYLE LINEWIDTH=5, ORIGINPOS=1, BGCOLOR = 6

LINE使用時の線の太さを5 グラフィック描画時の原点座標を左下 グラフィック描画の

背景色を黄に設定します。

- - Interface Corporation

195

Page 196: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

196

2.9.5 DRAWTEXT

命令 i99-BASIC -

機 能 コンソール画面に文字を描画します。

書 式 DRAWTEXT (<X座標>, <Y座標>), <文字列> [, <フォントサイズ>] [, <フォント名>] [,<

文字色>] [, <背景色>]

<X座標>, <Y座標>

文字をグラフィックに書き込む座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<文字列>

グラフィックに書き込む文字列を指定します。

改行は使用できません。

<フォントサイズ>

1以上を指定してください。

何も指定しないか、0を指定すると、デフォルトとなり、テキストの文字サイズ相当

となります。

<フォント名>

表示する文字列のフォントを数値で指定します。

詳細については@FONT(→「4.2.1 @FONT = “文字列”」)の項目を参照してくださ

い。

<文字色>, <背景色>

グラフィックに対する色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

文字色を省略すると、COLOR文で指定した文字色が採用されます。

背景色を省略すると、文字だけが描画され、背景は描画されません。

DRAWSTYLEのDRAWTEXTBGを1に指定した場合、背景色を省略しても背景が描画されま

す。

使用例1 DRAWTEXT (100, 50), “hello”, 20, 32,6

コンソール画面上に文字色黄色で hello と表示します。

例では<X座標> 100 <Y座標> 50 <文字列> hello <フォントサイズ> 20

<フォント名> VL ゴシック <文字色> 6 を指定しています。

使用例2 DRAWTEXT (100, 100), “world”, 40

コンソール画面上に world と表示します。

例では<X座標> 100 <Y座標> 100 <文字列> world <フォントサイズ> 40 を指定してい

ます。<フォント名><文字色><背景色>を省略しています。

Page 197: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

197

2.9.6 LINE

命令 i99-BASIC -

機 能 コンソール画面に線分を描画します。

書 式 LINE (<始点X座標>, <始点Y座標>) – (<終点X座標>, <終点Y座標>) [,<色>]

<始点X座標>, <始点Y座標>, <終点X座標>, <終点Y座標>

線分を描画する始点XY座標と終点XY座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<色>

グラフィックに対する前景色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

省略すると、COLOR文で指定した色が採用されます。

使用例1 LINE (10, 20) – (100, 200)

開始座標(10,20)から終点座標(100,200)へ向けて直線を描画します。

<色>を省略した例です。

使用例2 LINE (10, 20) – (100, 200),6

開始座標(10,20)から終点座標(100,200)へ向けて黄色で直線を描画します。

2.9.7 PRESET

命令 i99-BASIC -

機 能 コンソール画面に描画された点を消去します。

PRESETは、COLOR文で指定した背景色の点描画(PSET)です。

書 式 PRESET (<X座標>, <Y座標>) [,<色>]

<X座標>, <Y座標>

点を描画するXY座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<色>

グラフィックに対する前景色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

色を指定すると、PSETコマンドと同じ動作になります。

省略すると、COLOR文で指定した背景色が採用されます。

使用例1 PRESET (10, 20)

座標(10,20)の点を消去します。

使用例2 PRESET (10, 20),6

座標(10,20)へ黄色で点を描画します。

Page 198: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

198

2.9.8 PSET

命令 i99-BASIC -

機 能 コンソール画面に点を描画します。

書 式 PSET (<X座標>, <Y座標>) [,<色>]

<X座標>, <Y座標>

点を描画するXY座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<色>

グラフィックに対する前景色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

省略すると、COLOR文で指定した色が採用されます。

使用例1 PSET (10, 20)

座標(10,20)へ点を描画します。

使用例2 PSET (10, 20),6

座標(10,20)へ黄色で点を描画します。

2.9.9 RECTANGLE

命令 i99-BASIC -

機 能 コンソール画面に矩形を描画します。

書 式 RECTANGLE (<X座標>, <Y座標>) – (<横幅>, <縦幅>) [,<塗りつぶしスイッチ>] [,<

色>]

<X座標>, <Y座標>, <横幅>, <縦幅>

円弧を描画する座標と領域をpixel単位で指定します。

横幅、縦幅の領域内に対して矩形を描画します。

左上が原点 (0, 0) です。

<塗りつぶしスイッチ>

TRUEを指定すると、矩形内を塗りつぶします。

(枠線の点線描画は行いません)

<色>

グラフィックに対する前景色を指定します。

構文は、COLOR文(→「2.2.4 COLOR」)相当です。

省略すると、COLOR文で指定した色が採用されます。

使用例1 RECTANGLE (10, 20) – (100, 200)

座標(10,20)から横幅 100 で 縦幅 200 の矩形を描画します。

使用例2 RECTANGLE (10, 20) – (100, 200),TRUE,6

座標(10,20)から横幅 100 で 縦幅 200 の矩形を黄色で描画し、塗りつぶします。

Page 199: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

199

2.10 Linux連携の関数・命令

2.10.1 SHMLOW OPEN

命令 i99-BASIC -

機 能 共有メモリを使用開始します。

書 式 SHMLOW OPEN “<共有メモリ名>” AS [#]<ファイル番号> LEN = <データサイズ>

<共有メモリ名>

共有メモリを使用する為の一意の名前を指定します。

「/(スラッシュ)」で始まる名前を与えて下さい。

<ファイル番号>

共有メモリに関連付けるファイル番号を1~15の範囲で指定します。

<データサイズ>

共有メモリのデータサイズをバイト単位で指定します。

備 考 ・ この共有メモリ系のコマンド・関数は、i99-BASICとは別に、LinuxのCプログラムで作ら

れたアプリケーションと情報のやり取りを行うのに、メモリを共有して情報をやり取り

する手段を提供する為に用意しています。

・ このコマンドの呼び出しでは、内部的には、POSIX共有メモリを使用して実現しています。

具体的には、<共有メモリ名>をキーにshm_openで共有メモリを生成し、mmapで指定し

た<データサイズ>分のメモリ量を確保してマッピングを行っています。

使用例 SHMLOW OPEN “/HOGE” AS #1 LEN=1024 * 1024 * 2

上の例では、「/HOGE」という名前の共有メモリを作成し、そのサイズは、2MBほどとな

ります。

2.10.2 SHMLOW CLOSE

命令 i99-BASIC -

機 能 共有メモリを使用終了します。

書 式 SHMLOW CLOSE [#]<ファイル番号>

<ファイル番号>

共有メモリに関連付けるファイル番号を1~15の範囲で指定します。

備 考 ・ このコマンドの呼び出しでは、内部的には、munmapを呼び出して共有メモリのマッピン

グを解除します。

使用例 SHMLOW OPEN “/HOGE” AS #1 LEN=1024 * 1024 * 2

...

SHMLOW CLOSE #1

SHMLOW OPENでファイル番号1をオープンした後、ファイル番号1をクローズします。

Page 200: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

200

2.10.3 SHMLOW WRITE

命令 i99-BASIC -

機 能 共有メモリに値を書き込みます。

書 式 SHMLOW WRITE [#]<ファイル番号>, <オフセット>, <値>

<ファイル番号>

共有メモリに関連付けるファイル番号を1~15の範囲で指定します。

<オフセット>

値を書き込むオフセット位置を指定します。0以上の正数を与えてください。

指定するオフセットは、バイト単位です。

<値>

共有メモリに書き込む値を指定します。

値の型によって、書き込まれるサイズが異なります。

単精度整数:4バイト

倍精度整数:8バイト

単精度実数:4バイト

倍精度実数:8バイト

文字列:文字列長分

備 考 ・ このコマンドの呼び出しでは、SHMLOW OPENで開いた共有メモリに対して、値をバイナリ

で書き込みます。

使用例 SHMLOW WRITE #1, 0, CINT(123)

ファイル番号1の共有メモリのオフセット0から、123の値を共有メモリに書き込みます。

123の値は、CINT関数で単精度整数に変換されており、4バイトの領域に書き込まれます。

Page 201: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

201

2.10.4 SHMLOW READ

関数 i99-BASIC -

機 能 共有メモリから値を読み取ります。

書 式 <戻り値> = SHMLOW READ(<ファイル番号>, <オフセット>, <型指定> [, <サイズ長>])

<ファイル番号>

共有メモリに関連付けるファイル番号を1~15の範囲で指定します。

<オフセット>

値を読み込むオフセット位置を指定します。0以上の正数を与えてください。

指定するオフセットは、バイト単位です。

<型指定>

読み込む型サイズを指定します。

指定可能な型指定は、以下の一覧を参照ください。

指定する型により、<サイズ長>指定が有効となります。

<サイズ長>

値を読み込む際の、サイズ長をバイト単位で指定します。

<型指定>の指定により、有効/無効が決まります。

備 考 ・ このコマンドの呼び出しでは、SHMLOW OPENで開いた共有メモリに対して、値をバイナリ

で読み出します。

使用例 V = SHMLOW READ(1, 4, "INT")

ファイル番号1の共有メモリのオフセット4から、単精度整数値を取り出します。

<型指定の一覧表>

型指定の名前 サイズ長指定 解説

“STRB” ○ サイズ長で指定したバイト長のデータを、バイナリ文字列とし

て取得します。

“INT” - 4 バイト長の単精度整数として取得します。

“LONG” - 8 バイト長の倍精度整数として取得します。

“FLOAT” - 4 バイト長の単精度実数として取得します。

“DOUBLE” - 8 バイト長の倍精度実数として取得します。

“BYTEARY” ○ サイズ長で指定したバイト長のデータを、単精度整数の 1 次元

配列に変換して取得します。

Page 202: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

202

2.11 その他の関数・命令

2.11.1 ASSERT

命令 i99-BASIC i99-REAL

機 能 式を評価し、結果が偽の場合にエラーとします。

書 式 ASSERT <式> , "<エラー時メッセージ>"

<式>

評価式を記述します。

<エラー時メッセージ>

評価式の結果が偽の場合、エラーとしますが、その際に表示するメッセージを指定し

ます。文字列形式で渡してください。

備 考 プログラム中に診断機構を設ける事を想定しています。

使用例 ASSERT A=1, "Aが1でない"

上の例を実行した時、Aが1の場合、特に問題なく動作します。

Aが1以外の場合、エラーが発生してプログラムの実行が止まります。

2.11.2 CLOCK

関数 i99-BASIC i99-REAL

機 能 経過時間の指標となる値を秒単位で得ます。

書 式 CLOCK

備 考 プロファイリング用に用いる事を想定しています。

使用例 ST_TM = CLOCK

何かの処理

EN_TM = CLOCK

PRINT "経過時間"; (EN_TM – ST_TM); "秒"

上の例は、「何かの処理」の間を、CLOCK関数で読み取った値で差分を得る事で、処理

に掛かった時間を算出しています。

2.11.3 HOSTNAME$

関数 i99-BASIC -

機 能 システムのホスト名を取得します

書 式 <戻り値> = HOSTNAME$

<式>

システムのホスト名が得られます。

備 考 LinuxのHOSTNAMEコマンドと同じです。

使用例 ? HOSTNAME$

“InterfaceLinux” ‘ などが返ります

Page 203: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

203

2.11.4 MSGBOX

関数 i99-BASIC -

機 能 メッセージボックスを表示します。

書 式 MSGBOX("<メッセージ内容>", [<ボタン種類> [,"<タイトル名>"] ])

<メッセージ内容>

メッセージボックスに出力するメッセージ内容を指定します。

文字列形式で与えてください。

<ボタン種類>

メッセージボックスのボタンの表示種類を指定します。

以下の整数値が指定できます。

0 :OKボタンのみ表示(省略時は、この値です)

1 :OKボタンとCancelボタンを表示

4 :YESボタンとNoボタンを表示

<タイトル名>

メッセージボックスの表示タイトルを指定します。

文字列形式で与えてください。

<戻り値>

メッセージボックスの押したボタンによって返る値が異なります。

-5 :OKボタンを押した。

-6 :Cancelボタンを押した。

-7 :Closeした。(ダイアログの右上の「X」ボタン)

-8 :Yesボタンを押した。

-9 :Noボタンを押した。

使用例1 ? MSGBOX("hello")

「hello」と書かれた、OKボタンの付いたメッセージボックスが表示されます。

使用例2 ? MSGBOX("i99-BASIC", 4, "test")

「i99-BASIC」と書かれた、YesとNoボタンの付いたメッセージボックスが表示されます。

Page 204: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第3章 ネットワーク制御

i99-BASICで使用できるネットワーク制御コマンドの使い方について記載します。

ネットワーク制御の命令は、「i99-REAL」からは使用できません。

3.1 コマンド一覧

名前 内容

ネットワークに関する関数・命令(i99-BASIC専用)

NWOPEN ネットワークインタフェースを作成します。

NWCLOSE ネットワークインタフェースを削除します。

NWSEND ネットワークインタフェースからデータを送信します。

NWRECV$ ネットワークインタフェースからデータを受信します。

NWRECVTIME NWRECV$による受信待ちタイムアウト間隔を設定します。

NWMYNAME ホスト(自分のコンピュータ)の名前を設定します。

NWCONFBUF ネットワーク共有バッファを設定します。

NWSETBUF ネットワークインタフェースへ割り当てた共有バッファへデータを出力しま

す。

NWGETBUF$ ネットワークインタフェースへ割り当てた共有バッファからデータを取得し

ます。

NW ON/OFF/STOP i99-BASIC専用通信の受信による割り込みの許可, 禁止, 停止を指定しま

す。

ON NW GOSUB i99-BASIC専用通信の受信により分岐するサブルーチンを定義します。

NWGETMAC$ ネットワークインタフェースのMACアドレスを取得します。

ネットワークに関する関数・命令(ソケット互換)

NWIFCONFIG ネットワークインタフェースの設定を行います。

NWIFCONFIG$ ネットワークインタフェースの設定を取得します。

NWSOCKET ネットワーク通信で使用するソケットを作成します。

NWCLOSESOCK ソケットを削除します。

NWLISTEN ソケットを接続待ち(サーバ)にします。

NWACCEPT クライアントからの接続要求を受け付けます。

NWCONNECT サーバにソケットを接続します。

NWSENDSOCK ソケットからデータを送信します。

NWRECVSOCK$ ソケットからデータを受信します。

NWSENDFILE ソケットからファイルを送信します。

NWRECVFILE ソケットからファイルを受信します。

NWRECVTIME NWRECVSOCK$, NWRECVFILEによる受信待ちタイムアウト間隔を設定し

ます。

NWGETSNAME$ ソケットのIPアドレス:ポート番号を取得します。

NWGETPNAME$ ソケットに接続している相手のIPアドレス:ポート番号を取得します。

NWSETMULTICAST ソケットにマルチキャスト送信の設定をします。

NWADDMEMBERSHIP ソケットをマルチキャストグループに参加させます。

NWDROPMEMBERSHIP ソケットをマルチキャストグループから脱退させます。

NWSENDMAIL メールサーバからメールを送信します。

NWMAILLOF メールサーバからメッセージ件数を取得します。

NWMAILLIST メールサーバからメッセージ番号を取得します。

NWMAILGET$ メールサーバからメールを取得します。

NWMAILDEL メールサーバからメールを削除します。

Interface Corporation - -

204

Page 205: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

205

名前 内容

NWPING ICMPエコー要求を送信します。

NWARP$ IPアドレスに対応するMACアドレスを取得します。

NWMOUNT 外部コンピュータの共有フォルダを自フォルダにマウントします。

NWUMOUNT 共有フォルダのマウントを解除します。

NWWAKEONLAN, NWWOL Wake-On-Lanマジックパケットを送信します。

SOCKET ON/OFF/STOP ソケット通信の受信による割り込みの許可, 禁止, 停止を指定します。

ON SOCKET GOSUB ソケット通信の受信により分岐するサブルーチンを定義します。

Page 206: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

206

3.2 ネットワークに関する関数・命令(i99-BASIC専用)

3.2.1 NWOPEN

命令 i99-BASIC -

機 能 ネットワークインタフェースを作成します。

書 式 NWOPEN <LANポート/MACアドレス> AS [#]<ファイル番号> [, <タイプ>]

<LANポート/MACアドレス>

ネットワークインタフェースを作成するLANポート、もしくはそのMACアドレスを指定し

ます。

LANのポートに指定できる番号は、LANポートの数に比例します。

(例:LANポートが2つあるPCなら、LAN1とLAN2が指定できます。)

またLAN0を指定した場合は、ループバックインタフェースを設定します。

MACアドレスに指定できる番号は、NWGETMAC$関数で得られるMACアドレスです。

<ファイル番号>

作成したネットワークインタフェースに関連付けるファイル番号を1~15の範囲で指

定します。

ネットワークインタフェースの制御はこの<ファイル番号>を指定して行います。

<タイプ>

このネットワークインタフェースが扱うイーサネットタイプ番号を指定します。

同じタイプ番号でオープンされたネットワークインタフェースと通信できます。

有効範囲は&H600(1536)~&HFFFA(65530)です。省略された場合は&HA000を設定します。

備 考 前回設定されたホスト名をオープン時に再設定します。

ネットワーク内で同じ名前が使用されていないかを確認するため、通信を行う各ホストの

ネットワークインタフェースがオープンされている必要があります。

注 意 オープン中に「すでに使われているホスト名です」のエラーメッセージが出た場合でも、

オープンの処理は正常終了しています。そのままNWMYNAMEにてホスト名を再設定してくだ

さい。

使用例1 NWOPEN "LAN1" AS #1

LANポート"LAN1"をファイル番号1でオープンします。

使用例2 NWOPEN "LAN1" AS #1, &HA000

LANポート"LAN1"をファイル番号1、タイプ&HA000でオープンします。

使用例3 NWOPEN "00:80:62:12:34:56" AS #1, 40960

MACアドレス"00:80:62:12:34:56"をファイル番号1、タイプ40960でオープンします。

Page 207: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

207

3.2.2 NWCLOSE

命令 i99-BASIC -

機 能 ネットワークインタフェースを削除します。

書 式 NWCLOSE [[#]<ファイル番号> [, [#]<ファイル番号>] …]

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。省略された場合、オープン済みのネ

ットワークインタフェースをすべてクローズします。

使用例1 NWOPEN "LAN1" AS #1

NWCLOSE

オープンしているすべてのネットワークインタフェースをクローズします。

使用例2 NWOPEN "LAN1" AS #1

NWCLOSE #1

ファイル番号1でオープンしたネットワークインタフェースをクローズします。

使用例3 NWOPEN "LAN1" AS #1

NWOPEN "LAN2" AS #2

NWCLOSE #1, #2

ファイル番号1, 2でオープンしたネットワークインタフェースをクローズします。

Page 208: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

208

3.2.3 NWSEND

命令 i99-BASIC -

機 能 ネットワークインタフェースからデータを送信します。

書 式 NWSEND [#]<ファイル番号>, <送信バッファ> [, <送信先ホスト名/送信先MACアドレス>]

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。

<送信バッファ>

データを送信するバッファ(文字列)を指定します。

送信バッファのサイズは1466バイト以内にしてください。

<送信先ホスト名/送信先MACアドレス>

送信先のホスト名、もしくはそのMACアドレスを指定します。

省略するか"FF:FF:FF:FF:FF:FF"を指定すると、ブロードキャストになります。

使用例1 NWOPEN "LAN1" AS #1

NWSEND #1, "TEST FRAME"

ファイル番号1でデータ"TEST FRAME"を送信します。

使用例2 NWOPEN "LAN1" AS #1

NWSEND #1, "TEST FRAME", "HOST1"

ファイル番号1でホスト名"HOST1"へデータ"TEST FRAME"を送信します。

使用例3 NWOPEN "LAN1" AS #1

NWSEND #1, "TEST FRAME", "00:80:62:12:34:56"

ファイル番号1でMACアドレス"00:80:62:12:34:56"へデータ"TEST FRAME"を送信します。

Page 209: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

209

3.2.4 NWRECV$

関数 i99-BASIC -

機 能 ネットワークインタフェースからデータを受信します。

書 式 NWRECV$(<ファイル番号> [, <送信元ホスト名/送信元MACアドレス>])

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。

<送信元ホスト名/送信元MACアドレス>

送信元のホスト名、もしくはそのMACアドレスを指定します。

省略するか"00:00:00:00:00:00"を指定すると、送信元を特定しません。

備考1 データを受信する前に受信待機状態を解除したい場合は、Pause/Ctrl+Cキーで強制停止

してください。

備考2 NWRECVTIMEで受信タイムアウトを設定している場合、データを受信する前にタイムアウ

トすると空の文字列が得られます。

使用例1 NWOPEN "LAN1" AS #1

BUF$ = NWRECV$(1)

ファイル番号1でデータを受信します。

使用例2 NWOPEN "LAN1" AS #1

BUF$ = NWRECV$(1, "HOST1")

ファイル番号1でホスト名"HOST1"からデータを受信します。

使用例3 NWOPEN "LAN1" AS #1

BUF$ = NWRECV$(1, "00:80:62:12:34:56")

ファイル番号1でMACアドレス"00:80:62:12:34:56"からデータを受信します。

Page 210: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

210

3.2.5 NWRECVTIME

命令 i99-BASIC -

機 能 NWRECV$による受信待ちタイムアウト間隔を設定します。

(上記コマンドはデータを受信するまで処理を停止させますが、本コマンドで処理の停止時

間を制御できます。)

書 式 NWRECVTIME [#]<ファイル番号> [, <タイムアウト間隔>]

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。

<タイムアウト間隔>

タイムアウトする間隔をミリ秒単位で指定します。

省略するか0を指定すると、タイムアウトしない状態に戻します。

使用例1 NWOPEN "LAN1" AS #1

NWRECVTIME #1

ファイル番号1を受信タイムアウトしないに設定します。

使用例2 NWOPEN "LAN1" AS #1

NWRECVTIME #1, 5000

ファイル番号1の受信タイムアウトを5000msに設定します。

3.2.6 NWMYNAME

命令 i99-BASIC -

機 能 ホスト(自分のコンピュータ)の名前を設定します。

書 式 NWMYNAME <名前>

<名前>

ホストに付ける名前を指定します。 大12文字までの文字列を指定することができます。

既にそのネットワーク内で同じ名前が使用されている場合は、エラー(Device error)を

返します。

空の文字列を指定すると、設定されているホスト名が解除されます。

備 考 ネットワーク内で同じ名前が使用されていないかを確認するため、通信を行う各ホストの

ネットワークインタフェースがオープンされている必要があります。

使用例1 NWOPEN "LAN1" AS #1

NWMYNAME "HOST1"

ファイル番号1のホスト名を"HOST1"に設定します。

使用例2 NWOPEN "LAN1" AS #1

NWMYNAME ""

ファイル番号1のホスト名を削除します。

Page 211: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

3.2.7 NWCONFBUF

命令 i99-BASIC -

機 能 ネットワーク共有バッファを設定します。

書 式 NWCONFBUF [#]<ファイル番号>, <バッファサイズ> [, <共有先ホスト名/共有先MACアドレ

ス>]

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。

<バッファサイズ>

共有するバッファのサイズを指定します。

<共有先ホスト名/共有先MACアドレス>

バッファの共有先を指定します。共有先のホスト名、もしくはそのMACアドレスを指定し

ます。省略するか"FF:FF:FF:FF:FF:FF"を指定すると、同一セグメント内の全ホストに対

する設定になります。

共有バッファは共有先のホスト側でも同様の設定を行うことで有効になります。

同一セグメントに対する設定では、同様の設定を行っているホスト間でのみ共有が行わ

れます。

ネットワーク上

で同期

NWCONFBUF #1, 6

バッファ バッファ

PC1 PC2

使用例1 NWOPEN "LAN1" AS #1

NWCONFBUF #1, 100

ファイル番号1に100バイトの共有バッファを設定します。

使用例2 NWOPEN "LAN1" AS #1

NWCONFBUF #1, 100, "HOST1"

ファイル番号1にホスト名"HOST1"と共有する100バイトの共有バッファを設定します。

使用例3 NWOPEN "LAN1" AS #1

NWCONFBUF #1, 200, "00:80:62:12:34:56"

ファイル番号1にMACアドレス"00:80:62:12:34:56"と共有する200バイトの共有バッファを

設定します。

- - Interface Corporation

211

Page 212: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

3.2.8 NWSETBUF

命令 i99-BASIC -

機 能 ネットワークインタフェースへ割り当てた共有バッファへデータを出力します。

書 式 NWSETBUF [#]<ファイル番号>, <先頭アドレス>, <出力バッファ>

<ファイル番号>

共有バッファを割り当てたネットワークインタフェースのファイル番号を指定します。

<先頭アドレス>

データを出力する共有バッファの先頭アドレスを指定します。

<出力バッファ>

データを出力するバッファ(文字列)を指定します。

ネットワークで

自動的に同期A A

NWSETBUF #1, 1, "A"

バッファ バッファ

PC1 PC2

使用例 NWOPEN "LAN1" AS #1

NWCONFBUF #1, 100

NWSETBUF #1, 0, "TEST BUFFER"

ファイル番号1に100バイトの共有バッファを設定し、先頭に文字列"TEST BUFFER"を書き込

みます。

Interface Corporation - -

212

Page 213: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

3.2.9 NWGETBUF$

関数 i99-BASIC -

機 能 ネットワークインタフェースへ割り当てた共有バッファからデータを取得します。

書 式 NWGETBUF$(<ファイル番号>, <先頭アドレス>, <サイズ>)

<ファイル番号>

共有バッファを割り当てたネットワークインタフェースのファイル番号を指定します。

<先頭アドレス>

取得する共有バッファの先頭アドレスを指定します。

<サイズ>

取得するデータのサイズを指定します。

先頭アドレスからサイズ分

の範囲でデータを取得A B C

BUF$ = NWGETBUF$(1, 3, 3)

バッファ

PC1

使用例 NWOPEN "LAN1" AS #1

NWCONFBUF #1, 100

BUF$ = NWGETBUF$(1, 0, 10)

ファイル番号1に100バイトの共有バッファを設定し、先頭から10バイトのデータを取得し

ます。

- - Interface Corporation

213

Page 214: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

214

3.2.10 NW ON/OFF/STOP

命令 i99-BASIC -

機 能 i99-BASIC専用通信の受信による割り込みの許可, 禁止, 停止を指定します。

割り込みのサブルーチンはON NW GOSUBで定義します。

プログラム終了時にはNW OFFを実行してください。

書 式 NW[(<ファイル番号>)] ON

割り込みを許可します。これ以降、i99-BASIC専用通信が受信されると、サブルーチ

ンに分岐します。

NW[(<ファイル番号>)] OFF

割り込みを禁止します。これ以降、i99-BASIC専用通信が受信されても、サブルーチ

ンへの分岐は起こりません。

NW[(<ファイル番号>)] STOP

割り込みを停止します。これ以降、i99-BASIC専用通信が受信されても、サブルーチ

ンへの分岐は起こりません。

しかしNW ONで割り込みが許可されると、検知済みの割り込みでサブルーチンに分岐

します。

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。

省略した場合、すべてのファイル番号による割り込みを設定します。

使用例 ON NW(1) GOSUB SAMPLE

NW(1) ON

NW(1) STOP

NW(1) ON

NW(1) OFF

SAMPLE:

RETURN

ファイル番号1の受信割り込みをラベルSAMPLEに設定します。

ファイル番号1の受信割り込みをNW(1) ONで許可、NW(1) STOPで停止、NW(1) ONで許可、

NW(1) OFFで禁止します。

Page 215: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

215

3.2.11 ON NW GOSUB

命令 i99-BASIC -

機 能 i99-BASIC専用通信の受信により分岐するサブルーチンを定義します。

この割り込みは、NW ONの状態で有効になります。

書 式 ON NW GOSUB <ラベル名/行番号>[, <ラベル名/行番号> …]

ON NW(<ファイル番号>) GOSUB <ラベル名/行番号>

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

<ファイル番号>

NWOPENでオープンしたファイル番号を指定します。

備 考 <ラベル名/行番号>の並びの中で<ラベル名/行番号>の指定を省略した場合は、それに対

応するファイル番号のネットワークインタフェースによる割り込みは起こりません。

注 意 直接コマンドでは使用できません。トレース実行中には使用できません。

使用例1 ON NW GOSUB NW1, , NW3

NW ON

NW OFF

NW1:

RETURN

NW3:

RETURN

ファイル番号1の受信割り込みをラベルNW1に、ファイル番号3の受信割り込みをラベル

NW3に設定します。

使用例2 ON NW(1) GOSUB 1000

NW(1) ON

NW(1) OFF

1000

RETURN

ファイル番号1の受信割り込みを行番号1000に設定します。

Page 216: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

216

3.2.12 NWGETMAC$

関数 i99-BASIC -

機 能 ネットワークインタフェースのMACアドレスを取得します。

書 式 NWGETMAC$[(<LANポート>)]

<LANポート>

MACアドレスを取得したいLANポート番号を指定します。

LANのポートに指定できる番号は、LANポートの数に比例します。

(例:LANポートが2つあるPCなら、LAN1とLAN2が指定できます。)

またLAN0を指定した場合は、ループバックインタフェースのMACアドレスを返しま

す。

指定したポート番号に対応するインタフェースが見つからなかった場合、NULLを返

します。

省略した場合、すべてのLANポートのMACアドレスをLAN0から順に並べた配列として

取得します。

使用例1 ADDR$ = NWGETMAC$("LAN1")

LAN1のMACアドレスを取得します。

使用例2 PRINT NWGETMAC$

すべてのMACアドレスを表示します。

Page 217: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

217

3.3 ネットワークに関する関数・命令(ソケット互換)

3.3.1 NWIFCONFIG

命令 i99-BASIC -

機 能 ネットワークインタフェースの設定を行います。

書 式 NWIFCONFIG <LANポート/MACアドレス>, DHCP

DHCPに設定します。

NWIFCONFIG <LANポート/MACアドレス>, <IPアドレス>, <サブネットマスク>

[, GW <デフォルトゲートウェイ>] [, DNS <プライマリDNS>] [, DNS2 <セカンダリDNS>]

固定IPに設定します。

<LANポート/MACアドレス>

ネットワークインタフェースを設定するLANポート、もしくはそのMACアドレスを

指定します。LANのポートに指定できる番号は、LANポートの数に比例します。

(例:LANポートが2つあるコンピュータなら、LAN1とLAN2が指定できます。)

<IPアドレス>

IPアドレスを指定します。

<サブネットマスク>

サブネットマスクを指定します。

<デフォルトゲートウェイ>

デフォルトゲートウェイを指定します。

空の文字列を指定すると、現在の設定を削除します。

<プライマリDNS>

プライマリDNSを指定します。

空の文字列を指定すると、現在の設定を削除します。

<セカンダリDNS>

セカンダリDNSを指定します。

空の文字列を指定すると、現在の設定を削除します。

備 考 システムのパスワードが設定されていると、ネットワークインタフェースの設定を変更

する前にパスワードの認証が行われます。

使用例1 NWIFCONFIG "LAN1", DHCP

LAN1をDHCPに設定します。

使用例2 NWIFCONFIG "LAN1", "192.168.0.10", "255.255.255.0"

LAN1をIPアドレス 192.168.0.10、サブネットマスク 255.255.255.0に設定します。

Page 218: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

218

使用例3 IP1$ = "192.168.0.10"

MASK$ = "255.255.255.0"

IP2$ = "192.168.0.1"

IP3$ = "192.168.0.2"

IP4$ = "192.168.0.3"

NWIFCONFIG "LAN1", IP1$, MASK$, GW IP2$, DNS IP3$, DNS2 IP4$

LAN1をIPアドレス 192.168.0.10、サブネットマスク 255.255.255.0、デフォルトゲートウ

ェイ 192.168.0.1、プライマリDNS 192.168.0.2、セカンダリDNS 192.168.0.3に設定しま

す。

使用例4 NWIFCONFIG "LAN1", "192.168.0.10", "255.255.255.0", GW "", DNS "", DNS2 ""

LAN1をIPアドレス 192.168.0.10、サブネットマスク 255.255.255.0、デフォルトゲートウ

ェイ なし、プライマリDNS なし、セカンダリDNS なしに設定します。

3.3.2 NWIFCONFIG$

関数 i99-BASIC -

機 能 ネットワークインタフェースの設定を取得します。

書 式 NWIFCONFIG$

すべてのネットワークインタフェースの設定を取得します。

NWIFCONFIG$(<LANポート/MACアドレス>)

指定のネットワークインタフェースの設定を取得します。

NWIFCONFIG$(<出力方法>)

すべてのネットワークインタフェースの設定を、指定の出力方法で取得します。

NWIFCONFIG$(<LANポート/MACアドレス>, <出力方法>)

指定のネットワークインタフェースの設定を、指定の出力方法で取得します。

<LANポート/MACアドレス>

ネットワークインタフェースを設定するLANポート、もしくはそのMACアドレスを

指定します。LANのポートに指定できる番号は、LANポートの数に比例します。

(例:LANポートが2つあるコンピュータなら、LAN1とLAN2が指定できます。)

またLAN0を指定した場合は、ループバックインタフェースの設定を返します。

<出力方法>

戻り値の出力方法を指定します。

省略または0:すべての設定情報を一つの文字列で取得します。

1:LANポートに設定されたIPアドレスとサブネットマスクを配列で取得します。

使用例1 IFC$=NWIFCONFIG$

PRINT IFC$

LAN0 IP Address :127.0.0.1

LAN0 Subnet Mask :255.0.0.0

LAN1 IP Address :192.168.0.10

LAN1 Subnet Mask :255.255.255.0

Default Gateway :192.168.0.1

DNS Servers :192.168.0.2

:192.168.0.3

すべてのインタフェースの設定情報を上記のように返します。

Page 219: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

219

使用例2 IFC$=NWIFCONFIG$("LAN1")

PRINT IFC$

LAN1 IP Address :192.168.0.10

LAN1 Subnet Mask :255.255.255.0

Default Gateway :192.168.0.1

DNS Servers :192.168.0.2

:192.168.0.3

LAN1の設定情報を上記のように返します。

使用例3 IFC$=NWIFCONFIG$(1)

PRINT IFC$

[[127.0.0.1; 255.0.0.0]; [192.168.0.10; 255.255.255.0]]

すべてのインタフェースのIPアドレスとサブネットマスクを2次元配列で返します。

使用例4 IFC$=NWIFCONFIG$(“LAN1”, 1)

PRINT IFC$

[192.168.0.10; 255.255.255.0]

LAN1のIPアドレスとサブネットマスクを1次元配列で返します。

Page 220: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

220

3.3.3 NWSOCKET

命令 i99-BASIC -

機 能 ネットワーク通信で使用するソケットを作成します。

POP3, IMAP4を指定した場合、指定のメールサーバへ接続します。

書 式 NWSOCKET TCP <IPアドレス:ポート番号> AS [#]<ファイル番号>

TCPソケットを生成します。

NWSOCKET UDP <IPアドレス:ポート番号> AS [#]<ファイル番号>

UDPソケットを生成します。

NWSOCKET POP3 <IPアドレス:ポート番号>, <メールサーバ>, <ユーザ名>, <パスワー

ド> AS [#]<ファイル番号>

TCPソケットを生成し、POP3メールサーバへ接続します。

NWSOCKET IMAP4 <IPアドレス:ポート番号>, <メールサーバ>, <ユーザ名>, <パスワー

ド> AS [#]<ファイル番号>

TCPソケットを生成し、IMAP4メールサーバへ接続します。

<IPアドレス:ポート番号>

ソケットに割り当てるIPアドレスとポート番号を指定します。

ポート番号はオープンするソケットごとに変更してください。

IPアドレスを特定せずにTCPサーバで接続を受けたりUDPで受信したりするには、IP

アドレスに0.0.0.0を指定します。そうすることで、UDPではブロードキャストやマ

ルチキャストも受信できます。

<ファイル番号>

作成したソケットに結び付ける任意の数字を指定します。

ソケットの制御はこの<ファイル番号>を指定して行います。

<メールサーバ>

接続するメールサーバのIPアドレスを指定します。

<ユーザ名>

メールサーバにログインするユーザ名を指定します。

<パスワード>

メールサーバにログインするユーザのパスワードを指定します。

備 考 IMAP4を指定した場合、Inboxメールボックスが選択されます。

使用例1 NWSOCKET TCP "192.168.0.10:12345" AS #1

IPアドレス 192.168.0.10、ポート番号 12345のTCPソケットを生成します。

使用例2 NWSOCKET UDP "192.168.0.10:12345" AS #1

IPアドレス 192.168.0.10、ポート番号 12345のUDPソケットを生成します。

使用例3 NWSOCKET POP3 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

IPアドレス 192.168.0.11のPOP3メールサーバへ接続します。

使用例4 NWSOCKET IMAP4 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

IPアドレス 192.168.0.11のIMAP4メールサーバへ接続します。

Page 221: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

221

3.3.4 NWCLOSESOCK

命令 i99-BASIC -

機 能 ソケットを削除します。

NWSOCKETにPOP3, IMAP4を指定し、メールサーバへ接続している場合、

NWMAILDELで削除指定されたメールを削除した上でログアウトします。

書 式 NWCLOSESOCK [[#]<ファイル番号> [, [#]<ファイル番号>] …]

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

省略された場合、オープン済みのソケットをすべてクローズします

使用例1 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCLOSESOCK

すべてのソケットを削除します。

使用例2 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCLOSESOCK #1

ファイル番号1のソケットを削除します。

使用例3 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWSOCKET TCP "192.168.0.11:12345" AS #2

NWCLOSESOCK #1, #2

ファイル番号1, 2のソケットを削除します。

3.3.5 NWLISTEN

命令 i99-BASIC -

機 能 ソケットを接続待ち(サーバ)にします。TCP通信(サーバ側)で使用します。

書 式 NWLISTEN [#]<ファイル番号>

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

使用例 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

ファイル番号1のソケットを接続待ちにします。

Page 222: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

222

3.3.6 NWACCEPT

命令 i99-BASIC -

機 能 クライアントからの接続要求を受け付けます。TCP通信(サーバ側)で使用します。

書 式 NWACCEPT [#]<ファイル番号> AS [#]<ファイル番号2>

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<ファイル番号2>

接続済みソケットに結び付ける任意の数字を指定します。

接続済みソケットの制御はこの<ファイル番号>を指定して行います。

備 考 クライアントと接続する前に接続待機状態を解除したい場合は、Pause/Ctrl+Cキーで

強制停止してください。

使用例 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

ファイル番号1のソケットでクライアントからの接続要求を受け、ファイル番号2の接

続済みソケットを生成します。

3.3.7 NWCONNECT

命令 i99-BASIC -

機 能 サーバにソケットを接続します。TCP通信(クライアント側)で使用します。

書 式 NWCONNECT [#]<ファイル番号>, <IPアドレス:ポート番号>[, <タイムアウト間隔>]

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<IPアドレス:ポート番号>

接続先のIPアドレスとポート番号を指定します。

<タイムアウト間隔>

タイムアウトする間隔を秒単位で指定します。

省略された場合、15秒間接続を試みます。

備 考 サーバと接続する前に接続要求を解除したい場合は、Pause/Ctrl+Cキーで強制停止し

てください。

使用例 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCONNECT #1, "192.168.0.11:12345"

ファイル番号1のソケットで、IPアドレス 192.168.0.11、ポート番号 12345のサーバ

に接続します。

Page 223: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

223

3.3.8 NWSENDSOCK

命令 i99-BASIC -

機 能 ソケットからデータを送信します。TCP, UDP通信で使用します。。

書 式 NWSENDSOCK [#]<ファイル番号>, <送信バッファ>

接続済みソケットからデータ(TCPパケット)を送信します。

NWSENDSOCK [#]<ファイル番号>, <送信バッファ>, <IPアドレス:ポート番号>

指定された宛先へソケットからデータ(UDPパケット)を送信します。

<ファイル番号>

TCPサーバ以外では、NWSOCKETでオープンしたファイル番号を指定します。

TCPサーバでは、NWACCEPTで接続したファイル番号を指定します。

<送信バッファ>

データを送信するバッファを指定します。送信バッファのサイズは、TCPの場合は

4,294,967,295バイト以内、UDPの場合は1460バイト以内にしてください。

<IPアドレス:ポート番号>

送信先のIPアドレスとポート番号を指定します。ブロードキャストするには、IPア

ドレスに255.255.255.255を指定します。

UDPで通信する場合に必要です。TCPで通信する場合には無視されます。

使用例1 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

NWSENDSOCK #2, "TEST PACKET"

ファイル番号2のソケットで、接続済みのクライアントへ"TEST PACKET"を送信します。

使用例2 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCONNECT #1, "192.168.0.11:12345"

NWSENDSOCK #1, "TEST PACKET"

ファイル番号1のソケットで、接続済みのサーバへ"TEST PACKET"を送信します。

使用例3 NWSOCKET UDP "192.168.0.10:12345" AS #1

NWSENDSOCK #1, "TEST PACKET", "192.168.0.11:12345"

ファイル番号1のソケットで、IPアドレス 192.168.0.11、ポート番号 12345へ"TEST

PACKET"を送信します。

Page 224: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

224

3.3.9 NWRECVSOCK$

関数 i99-BASIC -

機 能 ソケットからデータを受信します。TCP, UDP通信で使用します。

書 式 NWRECVSOCK$(<ファイル番号>)

接続済みソケットからデータ(TCPパケット)を受信します。

NWRECVSOCK$(<ファイル番号>, <IPアドレス:ポート番号>)

指定された送信元のソケットからデータ(UDPパケット)を受信します。

<ファイル番号>

TCPサーバ以外では、NWSOCKETでオープンしたファイル番号を指定します。

TCPサーバでは、NWACCEPTで接続したファイル番号を指定します。

<IPアドレス:ポート番号>

送信元のIPアドレスとポート番号を指定します。

送信元を特定せずに受信するには、IPアドレスに0.0.0.0を指定します。

UDPで通信する場合に必要です。TCPで通信する場合には無視されます。

備考1 データを受信する前に受信待機状態を解除したい場合は、Pause/Ctrl+Cキーで強制停

止してください。

備考2 NWRECVTIMEで受信タイムアウトを設定している場合、データを受信する前にタイムア

ウトすると空の文字列が得られます。

使用例1 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

BUF$ = NWRECVSOCK$(2)

ファイル番号2のソケットで、接続済みのクライアントからデータを受信します。

使用例2 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCONNECT #1, "192.168.0.11:12345"

BUF$ = NWRECVSOCK$(1)

ファイル番号1のソケットで、接続済みのサーバからデータを受信します。

使用例3 NWSOCKET UDP "192.168.0.10:12345" AS #1

BUF$ = NWRECVSOCK$(1, "192.168.0.11:12345")

ファイル番号1のソケットで、IPアドレス 192.168.0.11、ポート番号 12345からデー

タを受信します。

Page 225: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

225

3.3.10 NWSENDFILE

命令 i99-BASIC -

機 能 ソケットからファイルを送信します。TCP通信で使用します。

書 式 NWSENDFILE [#]<ファイル番号>, <送信ファイル名>

<ファイル番号>

TCPサーバ以外では、NWSOCKETでオープンしたファイル番号を指定します。

TCPサーバでは、NWACCEPTで接続したファイル番号を指定します。

<送信ファイル名>

送信するファイル名を指定します。

備 考 ファイルは暗号化されて送信されます。

使用例1 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

NWSENDFILE #2, "sample.txt"

ファイル番号2のソケットで、接続済みのクライアントへsample.txtを送信します。

使用例2 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCONNECT #1, "192.168.0.11:12345"

NWSENDFILE #1, "sample.txt"

ファイル番号1のソケットで、接続済みのサーバへsample.txtを送信します。

Page 226: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

226

3.3.11 NWRECVFILE

命令 i99-BASIC -

機 能 ソケットからファイルを受信します。TCP通信で使用します。

書 式 NWRECVFILE [#]<ファイル番号>, <受信ファイル名>

<ファイル番号>

TCPサーバ以外では、NWSOCKETでオープンしたファイル番号を指定します。

TCPサーバでは、NWACCEPTで接続したファイル番号を指定します。

<受信ファイル名>

受信するファイルの保存名を指定します。

備考1 ファイルを受信する前に受信待機状態を解除したい場合は、Pause/Ctrl+Cキーで強制

停止してください。

備考2 NWRECVTIMEで受信タイムアウトを設定している場合、ファイルを受信する前にタイム

アウトすると何も保存されません。

注 意 すでに存在するファイル名を指定した場合、上書き保存されます。

使用例1 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

NWRECVFILE #2, "sample.txt"

ファイル番号2のソケットで、接続済みのクライアントから受信したファイルを

sample.txtとして保存します。

使用例2 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWCONNECT #1, "192.168.0.11:12345"

NWRECVFILE #1, "sample.txt"

ファイル番号1のソケットで、接続済みのサーバから受信したファイルをsample.txtと

して保存します。

Page 227: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

227

3.3.12 NWRECVTIME

命令 i99-BASIC -

機 能 NWRECVSOCK$, NWRECVFILEによる受信待ちタイムアウト間隔を設定します。

(上記コマンドはデータを受信するまで処理を停止させますが、本コマンドで処理の停止時

間を制御できます。)

書 式 NWRECVTIME [#]<ファイル番号> [, <タイムアウト間隔>]

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<タイムアウト間隔>

タイムアウトする間隔をミリ秒単位で指定します。

省略するか0を指定すると、タイムアウトしない状態に戻します。

使用例1 NWSOCKET UDP "192.168.0.10:12345" AS #1

NWRECVTIME #1

ファイル番号1のソケットを受信タイムアウトしないに設定します。

使用例2 NWSOCKET UDP "192.168.0.10:12345" AS #1

NWRECVTIME #1, 5000

ファイル番号1のソケットの受信タイムアウトを5000msに設定します。

3.3.13 NWGETSNAME$

関数 i99-BASIC -

機 能 ソケットのIPアドレス:ポート番号を取得します。

書 式 NWGETSNAME$(<ファイル番号>)

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

使用例 NWSOCKET TCP "192.168.0.10:12345" AS #1

SOCK$=NWGETSNAME$(1)

ファイル番号1のソケットのIPアドレス:ポート番号を取得します。

3.3.14 NWGETPNAME$

関数 i99-BASIC -

機 能 ソケットに接続している相手のIPアドレス:ポート番号を取得します。

TCP通信で使用します。

書 式 NWGETPNAME$(<ファイル番号>)

<ファイル番号>

NWACCEPTで接続したファイル番号を指定します。

使用例 NWSOCKET TCP "192.168.0.10:12345" AS #1

NWLISTEN #1

NWACCEPT #1 AS #2

SOCK$=NWGETPNAME$(2)

Page 228: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

228

ファイル番号2のソケットのIPアドレス:ポート番号を取得します。

Page 229: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

229

3.3.15 NWSETMULTICAST

命令 i99-BASIC -

機 能 ソケットにマルチキャスト送信の設定をします。UDP通信で使用します。

マルチキャストグループへデータを送信できるようになります。

書 式 NWSETMULTICAST [#]<ファイル番号>[, <TTL>]

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<TTL>

マルチキャストパケットのTTL(生存時間)を指定します。

省略された場合、1で設定されます。

TTLの代表的な値

0:同じホストまで

1:同じサブネットまで

32:同じサイトまで

64:同じ地域まで

128:同じ大陸まで

255:無制限

備 考 マルチキャストを送信するソケットは、送信口に使いたいネットワークインタフェー

スに設定されているIPアドレスか 0.0.0.0を指定して、NWSOCKETでオープンしてくだ

さい。

使用例 NWSOCKET UDP "192.168.0.10:12345" AS #1

NWSETMULTICAST #1, 1

NWSENDSOCK #1, "239.0.0.11:12345へ送信", "239.0.0.11:12345"

ファイル番号1のソケットにマルチキャスト送信の設定をします。

Page 230: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

230

3.3.16 NWADDMEMBERSHIP

命令 i99-BASIC -

機 能 ソケットをマルチキャストグループに参加させます。UDP通信で使用します。

該当グループ宛のマルチキャストを受信できるようになります。

書 式 NWADDMEMBERSHIP [#]<ファイル番号>, <マルチキャストアドレス>

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<マルチキャストアドレス>

参加するマルチキャストグループのIPアドレスを指定します。

備考1 マルチキャストを受信するソケットは、IPアドレス 0.0.0.0か参加するマルチキャス

トアドレスを指定して、NWSOCKETでオープンしてください。

備考2 参加済みのマルチキャストアドレスを指定した場合、エラーになります。

参加済みのマルチキャストアドレスとは異なるIPアドレスを指定すると、そのマルチ

キャストグループにも追加で参加できます。

使用例 NWSOCKET UDP "0.0.0.0:12345" AS #1

NWADDMEMBERSHIP #1, "239.0.0.11"

BUF$ = NWRECVSOCK$(1, "0.0.0.0:12345")

ファイル番号1のソケットをマルチキャストアドレス 239.0.0.11のグループに参加さ

せます。

3.3.17 NWDROPMEMBERSHIP

命令 i99-BASIC -

機 能 ソケットをマルチキャストグループから脱退させます。UDP通信で使用します。

該当グループ宛のマルチキャストを受信できなくなります。

書 式 NWDROPMEMBERSHIP [#]<ファイル番号>, <マルチキャストアドレス>

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<マルチキャストアドレス>

脱退するマルチキャストグループのIPアドレスを指定します。

備 考 未参加のマルチキャストアドレスを指定した場合、エラーになります。

使用例 NWSOCKET UDP "0.0.0.0:12345" AS #1

NWADDMEMBERSHIP #1, "239.0.0.11"

BUF$ = NWRECVSOCK$(1, "0.0.0.0:12345")

NWDROPMEMBERSHIP #1, "239.0.0.11"

ファイル番号1のソケットをマルチキャストアドレス 239.0.0.11のグループから脱退

させます。

Page 231: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

231

3.3.18 NWSENDMAIL

命令 i99-BASIC -

機 能 メールサーバからメールを送信します。

書 式 NWSENDMAIL <サーバ名/IPアドレス>, <件名>, <本文>, <差出人>, <宛先> [, <CC> [,

<BCC>[, <返信先>]]]

<サーバ名/IPアドレス>

メールサーバの名前またはIPアドレスを指定します。

<件名>

件名を指定します。

<本文>

本文を指定します。

<差出人>

差出人のメールアドレスを指定します。

<宛先>

宛先のメールアドレスを指定します。カンマ区切りで複数指定できます。

<CC>

CCのメールアドレスを指定します。カンマ区切りで複数指定できます。

<BCC>

BCCのメールアドレスを指定します。カンマ区切りで複数指定できます。

<返信先>

返信先のメールアドレスを指定します。カンマ区切りで複数指定できます。

使用例1 SERVER$="mail_server"

SUBJECT$="件名"

DATA$="本文"

FROM$="[email protected]"

TO$="[email protected], [email protected]"

NWSENDMAIL SERVER$, SUBJECT$, DATA$, FROM$, TO$

メールサーバ mail_serverを利用し、差出人 [email protected]から各宛先へ、

メールを送信します。

使用例2 SERVER$="mail_server"

SUBJECT$="件名"

DATA$="本文"

FROM$="[email protected]"

TO$="[email protected], [email protected]"

CC$="[email protected], [email protected]"

BCC$="[email protected], [email protected]"

REP$="[email protected], [email protected]"

NWSENDMAIL SERVER$, SUBJECT$, DATA$, FROM$, TO$, CC$, BCC$, REP$

メールサーバ mail_serverを利用し、差出人 [email protected]から各宛先へ、

メールを送信します。返信先を [email protected], [email protected]に指定

します。

Page 232: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

232

3.3.19 NWMAILLOF

関数 i99-BASIC -

機 能 メールサーバからメッセージ件数を取得します。POP3, IMAP4通信で使用します。

書 式 NWMAILLOF(<ファイル番号>)

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

使用例1 NWSOCKET POP3 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

POP3メールサーバからメッセージ件数を取得します。

使用例2 NWSOCKET IMAP4 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

IMAP4メールサーバからメッセージ件数を取得します。

Page 233: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

233

3.3.20 NWMAILLIST

関数 i99-BASIC -

機 能 メールサーバからメッセージ番号を取得します。POP3, IMAP4通信で使用します。

書 式 NWMAILLIST(<ファイル番号>)

すべての受信メールのメッセージ番号を取得します。

削除されたメールの番号は飛ばされます。

メッセージが存在しない場合、0が返ります。

NWMAILLIST(<ファイル番号>, <メッセージ番号>)

指定の受信メールのメッセージ番号を取得します。

指定されたメッセージが存在しない場合、0が返ります。

NWMAILLIST(<ファイル番号>, <開始メッセージ番号>, <終了メッセージ番号>)

指定された範囲の受信メールのメッセージ番号を取得します。

削除されたメールの番号は飛ばされます。

指定された範囲にメッセージが存在しない場合、0が返ります。

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<メッセージ番号>, <開始メッセージ番号>, <終了メッセージ番号>

受信メールの存在を確認するメッセージ番号を指定します。

開始メッセージ番号と終了メッセージ番号を指定すると、その範囲内の受信メールを

確認できます。

使用例1 NWSOCKET POP3 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

LIST = NWMAILLIST(1)

POP3メールサーバからメッセージ番号一覧を取得します。

使用例2 NWSOCKET IMAP4 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

LIST = NWMAILLIST(1, CNT)

IMAP4メールサーバから 新メールのメッセージ番号を取得します。

使用例3 NWSOCKET POP3 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

LIST = NWMAILLIST(1, CNT – 2, CNT)

POP3メールサーバから 新メール3件のメッセージ番号一覧を取得します。

Page 234: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

234

3.3.21 NWMAILGET$

関数 i99-BASIC -

機 能 メールサーバからメールを取得します。POP3, IMAP4通信で使用します。

メール内容は、以下の順で配列に入ります。

[<送信日時>, <件名>, <本文>, <差出人>, <宛先>, <CC>, <返信先>]

書 式 NWMAILGET$(<ファイル番号>, <メッセージ番号>[, <添付ファイル保存先>])

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<メッセージ番号>

取得するメールのメッセージ番号を指定します。

<添付ファイル保存先>

添付ファイルの保存先を指定します。

省略された場合、/root/mybasic/userに保存されます。

備 考 マルチパートメッセージの場合、本文は先頭パートからのみ取得されます。

使用例1 NWSOCKET POP3 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

LIST = NWMAILLIST(1, CNT)

MSG$ = NWMAILGET$(1, LIST)

POP3メールサーバから 新メールを取得します。

使用例2 NWSOCKET IMAP4 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

LIST = NWMAILLIST(1, CNT)

PATH$ = “temp”

MSG$ = NWMAILGET$(1, LIST, PATH$)

IMAP4メールサーバから 新メールを取得します。

添付ファイルがあれば、/root/mybasic/user/tempフォルダへ保存します。

Page 235: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

235

3.3.22 NWMAILDEL

命令 i99-BASIC -

機 能 メールサーバからメールを削除します。POP3, IMAP4通信で使用します。

本命令で削除指定されたメールは、NWCLOSESOCK実行時に完全に削除されます。それま

では、削除指定されたメールがあっても、メールとメッセージ番号の組み合わせは変

わりません。

書 式 NWMAILDEL [#]<ファイル番号>, <開始メッセージ番号>[, <終了メッセージ番号>]

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

<開始メッセージ番号>, <終了メッセージ番号>

削除するメールのメッセージ番号を指定します。

終了メッセージ番号を指定すると、その範囲内の受信メールを削除できます。

範囲内に削除指定済みのメッセージが含まれている場合、無視されます。

使用例1 NWSOCKET POP3 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

LIST = NWMAILLIST(1, CNT)

NWMAILDEL #1, LIST

POP3メールサーバから 新メールを削除します。

使用例2 NWSOCKET IMAP4 "192.168.0.10:12345", "192.168.0.11", “user”, “pass” AS #1

CNT = NWMAILLOF(1)

NWMAILDEL #1, 1, CNT

IMAP4メールサーバから全メールを削除します。

Page 236: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

236

3.3.23 NWPING

関数 i99-BASIC -

機 能 ICMPエコー要求を送信します。

エコー応答があればTRUE、なければFALSEを返します。

書 式 NWPING(<IPアドレス>[, <タイムアウト間隔>])

<IPアドレス>

送信先のIPアドレスを指定します。

<タイムアウト間隔>

タイムアウトする間隔を秒単位で指定します。

省略された場合、10秒間接続を試みます。

使用例 DO

WAKEONLAN "00:80:62:80:12:34"

LOOP WHILE NWPING("192.168.0.10")

指定のホストが起動するまで、Wake-On-LANマジックパケットを送信し続けます。

3.3.24 NWARP$

関数 i99-BASIC -

機 能 IPアドレスに対応するMACアドレスを取得します。

書 式 NWARP$

同一ネットワーク内の全MACアドレスを、IPアドレスと対になった2次元配列で取得し

ます。

NWARP$(<IPアドレス>)

指定されたIPアドレスに対応するMACアドレスを取得します。

<IPアドレス>

対応するMACアドレスを取得するIPアドレスを指定します。

使用例1 MAC$ = NWARP$

PRINT MAC$

[[192.168.0.10; 00:80:62:80:12:34]; [192.168.0.11; 00:80:62:80:12:35]]

同一ネットワーク内の全MACアドレスを取得します。

使用例2 IP$ = “192.168.0.11”

MAC$ = NWARP$(IP$)

PRINT MAC$

00:80:62:80:12:35

IPアドレス 192.168.0.11に対応するMACアドレスを取得します。

Page 237: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

237

3.3.25 NWMOUNT

命令 i99-BASIC -

機 能 外部コンピュータの共有フォルダを自フォルダにマウントします。

書 式 NWMOUNT CIFS <マウントパス>, <マウント先>[, <ユーザー名>, <パスワード>]

sambaサーバの共有フォルダを指定のフォルダにマウントします。

NWMOUNT SMB <マウントパス>, <マウント先>[, <ユーザー名>, <パスワード>]

Windowsの共有フォルダを指定のフォルダにマウントします。

<マウントパス>

接続するコンピュータの共有パスを指定します。

例:"//192.168.41.1/share"

<マウント先>

共有フォルダをマウントする、自コンピュータのフォルダ名を指定します。

フォルダ名は、/root/mybasic/user フォルダ下に配置されます。

<ユーザー名>

マウントするユーザー名を指定します。

Windowsなどでドメイン指定する場合は、"development/user"という形式で記述して

ください。

省略された場合、「root」が使用されます。

<パスワード>

マウントするユーザーのパスワードを指定します。

省略された場合、「root」が使用されます。

使用例1 NWMOUNT CIFS “//192.168.41.1/share”, “mnt”, “development/user”, “pass”

sambaサーバの共有フォルダ //192.168.41.1/shareを/root/mybasic/user/mntにマウ

ントします。

使用例2 NWMOUNT SMB “//192.168.41.1/share”, “mnt”, “development/user”, “pass”

Windowsの共有フォルダ //192.168.41.1/shareを/root/mybasic/user/mntにマウント

します。

3.3.26 NWUMOUNT

命令 i99-BASIC -

機 能 共有フォルダのマウントを解除します。

書 式 NWUMOUNT <マウント先>

<マウント先>

共有フォルダのマウントを解除する、自コンピュータのフォルダ名を指定します。

フォルダ名は、/root/mybasic/user フォルダ下に配置されます。

備 考 ネットワークフォルダ以外を指定した場合、エラーになります。

使用例 NWUMOUNT “mnt”

/root/mybasic/user/mntにマウントされた共有フォルダを解除します。

Page 238: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

238

3.3.27 NWWAKEONLAN, NWWOL

命令 i99-BASIC -

機 能 Wake-On-Lanマジックパケットを送信します。

書 式 NWWAKEONLAN [<送信先MACアドレス>]

NWWOL [<送信先MACアドレス>]

<送信先MACアドレス>

送信先のMACアドレスを指定します。

同じセグメントに所属するコンピュータのMACアドレスのみ指定できます。

省略するか”FF:FF:FF:FF:FF:FF”を指定すると、ブロードキャストになります。

備 考 Wake-On-Lanで起動させたいコンピュータは、あらかじめBIOSやネットワークデバイス

の設定でWake-On-Lanを有効にしてください。

使用例1 NWWAKEONLAN “00:80:62:80:12:34”

MACアドレス 00:80:62:80:12:34へWake-On-Lanマジックパケットを送信します。

使用例2 NWWOL “00:80:62:80:12:34”

MACアドレス 00:80:62:80:12:34へWake-On-Lanマジックパケットを送信します。

Page 239: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

239

3.3.28 SOCKET ON/OFF/STOP

命令 i99-BASIC -

機 能 ソケット通信の受信による割り込みの許可, 禁止, 停止を指定します。

割り込みのサブルーチンはON SOCKET GOSUBで定義します。

プログラム終了時にはSOCKET OFFを実行してください。

書 式 SOCKET[(<ファイル番号>)] ON

割り込みを許可します。これ以降、ソケット通信が受信されると、サブルーチンに

分岐します。

SOCKET[(<ファイル番号>)] OFF

割り込みを禁止します。これ以降、ソケット通信が受信されても、サブルーチンへ

の分岐は起こりません。

SOCKET[(<ファイル番号>)] STOP

割り込みを停止します。これ以降、ソケット通信が受信されても、サブルーチンへ

の分岐は起こりません。

しかしSOCKET ONで割り込みが許可されると、検知済みの割り込みでサブルーチンに

分岐します。

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

省略した場合、すべてのファイル番号による割り込みを設定します。

使用例 ON SOCKET(1) GOSUB SAMPLE

SOCKET(1) ON

SOCKET(1) STOP

SOCKET(1) ON

SOCKET(1) OFF

SAMPLE:

RETURN

ファイル番号1の受信割り込みをラベルSAMPLEに設定します。

ファイル番号1の受信割り込みをSOCKET(1) ONで許可、SOCKET(1) STOPで停止、

SOCKET(1) ONで許可、SOCKET(1) OFFで禁止します。

Page 240: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

240

3.3.29 ON SOCKET GOSUB

命令 i99-BASIC -

機 能 ソケット通信の受信により分岐するサブルーチンを定義します。

この割り込みは、SOCKET ONの状態で有効になります。

書 式 ON SOCKET GOSUB <ラベル名/行番号>[, <ラベル名/行番号> …]

ON SOCKET(<ファイル番号>) GOSUB <ラベル名/行番号>

<ラベル名/行番号>

サブルーチンのラベル名または行番号を指定します。

<ファイル番号>

NWSOCKETでオープンしたファイル番号を指定します。

備 考 <ラベル名/行番号>の並びの中で<ラベル名/行番号>の指定を省略した場合は、それに

対応するファイル番号のソケットによる割り込みは起こりません。

注 意 直接コマンドでは使用できません。トレース実行中には使用できません。

使用例1 ON SOCKET GOSUB SOCKET1, , SOCKET3

SOCKET ON

SOCKET OFF

SOCKET1:

RETURN

SOCKET3:

RETURN

ファイル番号1の受信割り込みをラベルSOCKET1に、ファイル番号3の受信割り込みをラ

ベルSOCKET3に設定します。

使用例2 ON SOCKET(1) GOSUB 1000

SOCKET(1) ON

SOCKET(1) OFF

1000

RETURN

ファイル番号1の受信割り込みを行番号1000に設定します。

Page 241: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第4章 グラフィカルユーザインタフェース(GUI)

i99-BASICで使用できるグラフィカルインタフェース関連のコマンドの使い方について記載しま

す。

グラフィカルユーザインタフェース(GUI)の命令は、「i99-REAL」からは使用できません。

4.1 コマンド一覧

名前 内容

GUIに関する関数・命令

@FONT = "文字列" GUI部品の表示コマンドの引数として使用する環境変数です。

表示される文字列のフォントを設定、変更する際に使用します。

@FONT 環境変数@FONTに設定された値を返します。

@SIZE = "文字列" GUI部品の表示コマンドの引数として使用する環境変数です。

表示されるGUI部品の大きさを設定、変更する際に使用します。

@SIZE 環境変数@SIZEに設定された値を返します。

@POSI = "文字列" GUI部品の表示コマンドの引数として使用する環境変数です。

表示されるGUI部品の位置を設定、変更する際に使用します。

@POSI 環境変数@POSIに設定された値を返します。

@TIP = "文字列" GUI部品の表示コマンドで使用する環境変数です。

マウスポインタがGUI部品上に来た際に、表示される内容を設定する際に使用

します。

@TIP 環境変数@TIPに設定された値を返します。

GUADD CMB 指定したGUI部品のコンボボックスにリストを追加します。

GUADD RDO ラジオボタンの領域にラジオボタンを追加します。

GUADD SCR 指定したGUI部品にスクロールバーを追加します。

GUADD TAB タブにページを追加します。

GUADD TBL GUI部品のテーブルにGUI部品を配置します

GUBTN 指定したウィンドウにGUI部品のボタンを配置します。

GUCHK 指定したウィンドウにGUI部品のチェックボックスを配置します。

GUCMB 指定したウィンドウにGUI部品のコンボボックスを配置します。

GUDEL 指定したGUI部品を削除します。

GUDSP 指定したGUI部品を表示あるいは非表示にします。

GUGET$ 指定したGUI部品の表示内容を取得します。

GUGETMS マウスの情報を取得します。

GUIMG 指定した画像データをウィンドウに貼り付けます。

GULBL 指定したウィンドウにGUI部品のラベルを配置します。

GUMOV 指定したウィンドウを、指定位置に移動します。

GURDO 指定したウィンドウにGUI部品のラジオボタンの領域を作成します。

GUSCALE 指定したウィンドウにGUI部品のスケールを配置します。

GUSHW 指定したウィンドウを表示します。

GUSWITCH 指定したウィンドウにGUI部品のスイッチを配置します。

GUTAB 指定したウィンドウにタブを表示する領域を作成します。

GUTBL 指定したウィンドウにテーブルを配置します。

GUTXA 指定したウィンドウにテキストエリアを配置します。

GUTXT 指定したウィンドウにテキストボックスを配置します。

GUUPD GUI部品の表示内容を更新します。

GUWIN ウィンドウを作成します。

- - Interface Corporation

241

Page 242: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

242

名前 内容

GUIに関する関数・命令

ON GUEVT ~ GOSUB ~ 指定したGUI部品をイベント発生時に実行する処理ルーチンの開始行を定義

します。

GUPIC 指定したウィンドウに、任意の描画領域を配置します。

GUGARC GUPICで生成した画像領域に対して、円弧を描画します。

GUGCIRCLE GUPICで生成した画像領域に対して、円を描画します。

GUGCLS GUPICで生成した画像領域に対して、画面をクリアします。

GUGCOLOR GUPICで生成した画像領域に対して、表示する図形の前景色・背景色を変更し

ます。

GUGDRAWFILE GUPICで生成した画像領域に対して、指定ファイルの画像を描画します。

GUGDRAWSTYLE GUPICで生成した画像領域に対して、図形描画のスタイルを設定します。

GUGDRAWTEXT GUPICで生成した画像領域に対して、文字を描画します。

GUGLINE GUPICで生成した画像領域に対して、線分を描画します。

GUGPLOT HISTGRAM GUPICで生成した画像領域に対して、棒グラフを描画します。

GUGPLOT PIE GUPICで生成した画像領域に対して、円グラフを描画します。

GUGPRESET GUPICで生成した画像領域に対して、描画された点を消去します。

GUGPSET GUPICで生成した画像領域に対して、点を描画します。

GUGRECTANGLE GUPICで生成した画像領域に対して、矩形を描画します。

GUGWAVE GUPICで生成した画像領域に対して、波形グラフを描画します。

Page 243: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2 GUIに関する関数・命令

4.2.1 @FONT = “文字列”

環境変数 i99-BASIC -

機 能 GUI部品の表示コマンドの引数として使用する環境変数です。

表示される文字列のフォントを設定, 変更する際に使用します。

書 式 ※内容変更時の書式

@FONT="<フォント名>, <斜体>, <太字>, <サイズ>, <文字色>, <背景色>"

※ 1つの文字列でまとめてください。

<フォント名>

表示する文字列のフォントを指定します。以下フォントを指定することができます。

指定する際はフォント名の左に記載されている番号を入力してください。

1: Bitstream Charter 2: Century Shoolbook L 3: Courier 10 Pitch 4: DejaVu Sans 5: DejaVu Sans Mono 6: DejaVu Serif 7: Dingbats 8: FreeMono 9: FreeSans 10: FreeSerif 11: Gentium 12: Gentium Basic 13: Gentium Book Basic 14: GentiumAlt 15: IPA Pゴシック 16: IPA P明朝 17: IPAゴシック 18: IPA明朝 19: Liberation Mono 20: Liberation Sans 21: Liberation Serif 22: Nimbus Mono L 23: Nimbus Roman No9 L 24: Nimbus Sans L 25: Standard Symbols L 26: Symbol 27: URW Bookman L 28: URW Chancery L 29: URW Gothic L 30: URW Palladio L 31: VL Pゴシック 32: VL ゴシック 33: cmex10 34: cmmi10 35: cmr10 36: cmsy10 37: esint10 38: eufm10 39: msam10 40: unifont 41: wasy10 42:さざなみゴシック 43:さざなみ明朝

<斜体>, <太字>

表示する文字列を斜体、太字にする設定ができます。

0:設定無し

1:設定有り

<サイズ>

表示する文字列のサイズを指定します。

<文字色>

表示する文字列の色を指定します。

<背景色>

表示する文字列の背景色を指定します。

文字色, 背景色の指定方法は以下の通りです。

①色名による指定

色名で指定できる色は以下の色です。

- - Interface Corporation

243

Page 244: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス 1:BLACK 2:RED 3:GREEN 4:YELLOW5:BLUE 6:PURPLE 7:CYAN 8:WHITE9:GRAY 10:BROWN 11:ORANGE 12:PINK13:VIOLET 14:GOLD 15:MAGENTA 16:SNOW17:DARKBLUE 18:DARKCYAN 19:DARKGRAY 20:DARKGREEN21:DARKMAGENTA 22:DARKORANGE 23:DARKRED 24:DARKSEAGREEN25:DARKVIOLET 26:LIGHTBLUE 27:LIGHTCYAN 28:LIGHTGRAY29:LIGHTGREEN 30:LIGHTPINK 31:LIGHTSEAGREEN 32:LIGHTSKYBLUE33:LIGHTYELLOW 34:LIMEGREEN 35:DEEPPINK 36:DEEPSKYBLUE37:NAVYBLUE 38:SKYBLUE 39:SEAGREEN 40:YELLOWGREEN

②カラーコードによる指定

カラーコードによって、詳細な色の設定もできます。

(例)#FF3366 の場合の文字色 → テスト

デフォルト値

<フォント名> = 32(VL ゴシック)

<斜体> = 0(設定無し)

<太字> = 0(設定無し)

<サイズ> = 10

<文字色> = 1(BLACK)

<背景色> = 8(WHITE)

使用例 GUWIN 1

@FONT="32, 1, 1, 24, 2, 4"

GUBTN 1, 10, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUSHW 1

環境変数@FONTに <フォント名> VL ゴシック <斜体>,<太字> 設定有り

<サイズ> 24 <文字色> RED <背景色> YELLOW を設定します。

設定した環境変数@FONTは、例のようにして各種GUI部品の引数として使用します。

4.2.2 @FONT

環境変数 i99-BASIC -

機 能 環境変数@FONTに設定された値を返します。

書 式 @FONT

使用例 @FONT="32, 1, 1, 24, 2, 4"

PRINT @FONT

環境変数@FONTの設定値を表示します。

Interface Corporation - -

244

Page 245: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.3 @SIZE = “文字列”

環境変数 i99-BASIC -

機 能 GUI部品の表示コマンドの引数として使用する環境変数です。

表示されるGUI部品の大きさを設定, 変更する際に使用します。

書 式 ※内容変更時の書式

@SIZE="<横幅>, <縦幅>"

※ 1つの文字列でまとめてください。

<横幅>, <縦幅>

GUI部品の横幅と縦幅を指定します。

・ウィンドウの場合

デフォルト値:<横幅>, <縦幅>ともにモニタの解像度と同じ

・その他GUI部品の場合

デフォルト値:<横幅>=100, <縦幅>=20です。

<横幅>

<

縦幅>

GUI部品

(ウィンドウを含む)

使用例 GUWIN 1

@SIZE="100,50"

GUBTN 1, 10, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUSHW 1

環境変数@SIZEに <横幅>100 <縦幅> 50 を設定します。

設定した環境変数@SIZEは、例のようにして各種GUI部品の引数として使用します。

4.2.4 @SIZE

環境変数 i99-BASIC -

機 能 環境変数@SIZEに設定された値を返します。

書 式 @SIZE

使用例 @SIZE="100,50"

PRINT @SIZE

環境変数@SIZEの設定値を表示します。

- - Interface Corporation

245

Page 246: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.5 @POSI = “文字列”

環境変数 i99-BASIC -

機 能 GUI部品の表示コマンドの引数として使用する環境変数です。

表示されるGUI部品の大きさを設定, 変更する際に使用します。

書 式 ※内容変更時の書式

@POSI <X座標>, <Y座標> [, <横ポジション>, <縦ポジション>]

※ 1つの文字列でまとめてください。

<X座標>, <Y座標>

ウィンドウ作成時に用いる場合と、GUI部品作成時に用いる場合で用途が若干異なりま

す。

ウィンドウの場合

画面上でのウィンドウの位置を指定します。

GUI部品の場合

ウィンドウ上での位置を指定します。

デフォルト値

<X座標>=0

<Y座標>=0

ウィンドウの場合 GUI部品の場合 画面 ウィンドウ

<Y座標>

<Y座標>

<X座標> ウィンドウ

<X座標> GUI部品

<横ポジション>

GUI部品上の文字列位置を指定します。ウィンドウ作成時には、使用しません。

LEFT:左揃え

CENTER:中央揃え

RIGHT:右揃え

デフォルト値:LEFT(左揃え)

LEFTの場合 CENTERの場合 RIGHTの場合 GUI部品 GUI部品 GUI部品 LEFT CENTER RIGHT

<縦ポジション>

GUI部品上の文字列位置を指定します。ウィンドウ作成時には、使用しません。

TOP:上揃え(デフォルト)

MIDDLE:上下中央揃え

BOTTOM:下揃え

Interface Corporation - -

246

Page 247: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス TOPの場合 MIDDLEの場合 BOTTOMの場合 GUI部品 GUI部品 GUI部品 TOP MIDDLE BOTTOM

使用例 GUWIN 1

@POSI="100, 200,CENTER,MIDDLE"

GUBTN 1, 10, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUSHW 1

環境変数@POSIに <X座標> 100 <Y座標> 200 <横ポジション> CENTER

<縦ポジション> MIDDLE を設定します。

設定した環境変数@POSIは、例のようにして各種GUI部品の引数として使用します。

4.2.6 @POSI

環境変数 i99-BASIC -

機 能 環境変数@POSIに設定された値を返します。

書 式 @POSI

使用例 @POSI="100, 200,CENTER,MIDDLE"

PRINT @POSI

環境変数@POSIの設定値を表示します。

- - Interface Corporation

247

Page 248: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

248

4.2.7 @TIP = “文字列”

環境変数 i99-BASIC -

機 能 GUI部品の表示コマンドで使用する環境変数です。

マウスポインタがGUI部品上に来た際に、表示される内容を設定する際に使用します。

書 式 ※内容変更時の書式

@TIP="<表示内容>"

<表示内容>

表示したい文字列を指定します。

デフォルト値: 空文字列

使用例 GUWIN 1

@TIP="SAMPLE"

GUBTN 1, 10, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUSHW 1

環境変数@TIPに <表示内容> SAMPLE を設定します。

設定した環境変数@TIPは、例のようにして各種GUI部品の引数として使用します。

4.2.8 @TIP

環境変数 i99-BASIC -

機 能 環境変数@TIPに設定された値を返します。

書 式 @TIP

使用例 @TIP="SAMPLE"

PRINT @TIP

環境変数@TIPの設定値を表示します。

Page 249: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.9 GUADD CMB

命令 i99-BASIC -

機 能 指定したGUI部品のコンボボックスにリストを追加します。

書 式 GUADD CMB, <コンボボックス番号>, <リスト名> [, <初期状態>]

<コンボボックス番号>

リスト名を追加するコンボボックスの番号を指定します。

<リスト名>

コンボボックスに追加するリスト名を文字列で指定します。

<初期状態>

表示直後のコンボボックスの選択内容を指定できます。

0:選択無し(デフォルト)

1:初期表示選択

初期表示選択されたリストが複数ある場合、 後に選択された内容が表示されます。

すべて0で選択された場合、1番 初に追加された内容が表示されます。

CCC ▼ AAA BBB CCC

備 考 実行前にGUCMB(→「4.2.16 GUCMB」)によるコンボボックスの生成が必要です。

使用例 GUWIN 1

GUCMB 1, 20 ,, @POSI, @TIP

GUADD CMB, 20, "AAA"

GUADD CMB, 20, "BBB", 0

GUADD CMB, 20, "CCC", 1

GUSHW 1

部品番号 20 のコンボボックスへ リスト “AAA”,”BBB”,”CCC”の3つを追加

し、”CCC”を初期選択に設定します。

- - Interface Corporation

249

Page 250: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.10 GUADD RDO

命令 i99-BASIC -

機 能 ラジオボタンの領域にラジオボタンを追加します。

書 式 GUADD RDO, <ラジオボタン番号>, <リスト名> [, <初期状態>]

<ラジオボタン番号>

リスト名の追加を行うラジオボタンの領域の番号を指定します。

<リスト名>

ラジオボタンに追加するリスト名を文字列で指定します。

<初期状態>

表示直後のラジオボタンのボタン状態を指定できます。

0:選択無し(デフォルト)

1:初期選択

初期選択された処理が複数ある場合、 後に選択された内容にチェックが入ります。

すべて0で選択された場合、1番 初に追加された内容にチェックが入ります。

ウィンドウ ラジオボタン ○AAA

○BBB ◎CCC

備 考 実行前にGURDO(→「4.2.39 GURDO」)によるラジオボタンの生成が必要です。

使用例 GUWIN 1

GURDO 1, 20, 1, , ,@POSI, @TIP

GUADD RDO, 20, "AAA"

GUADD RDO, 20, "BBB", 1

GUADD RDO, 20, "CCC", 0

GUSHW 1

部品番号 20 のラジオボタン領域へ ラジオボタン”AAA”,”BBB”,”CCC”の3つを追加

し、初期選択を”BBB”に設定します。

Interface Corporation - -

250

Page 251: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

251

4.2.11 GUADD SCR

命令 i99-BASIC -

機 能 指定したGUI部品にスクロールバーを追加します。

書 式 GUADD SCR, <部品名>, <部品番号> [, <スクロール表示設定>]

<部品名>

スクロールバーを追加する部品名を指定します。

※ 部品名を指定する際に" "は必要ありません。

指定できるGUI部品はTBL(テーブル)です。

<部品番号>

スクロールバーを追加する部品の番号を指定します。

<スクロール表示設定>

スクロールの表示状態について設定することができます。

0:常時表示(デフォルト)

1:追加した部品の大きさに応じて表示

備 考 実行前にGUTBL(→「4.2.44 GUTBL」)によるテーブルの生成が必要です。

使用例 GUWIN 1

GULBL 1, 2, "SAMPLE"

GUTBL 1, 3, 2, 2

GUADD TBL, 3, LBL, 2, 0, 1

GUADD SCR, TBL, 10

GUSHW 1

部品番号 10 のテーブルへスクロールバーを追加します。

Page 252: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.12 GUADD TAB

命令 i99-BASIC -

機 能 タブにページを追加します。

書 式 GUADD TAB, <タブ番号>, <テーブル番号> [, <ページ名>, <初期状態>]

<タブ番号>

ページを追加するタブの番号を指定します。

<テーブル番号>

追加するページで表示するテーブルの番号を指定します。

<ページ名>

追加するページの名前を指定します。

デフォルト値:文字列無し

<初期状態>

実行直後に表示するタブのページを指定できます。

FALSE:選択無し(デフォルト)

TRUE:初期選択

初期表示選択されたページが複数ある場合、 後に選択された内容が表示されます。

すべてFALSEで選択された場合、1番 初に追加された内容が表示されます。

備 考 実行前にGUTAB(→「4.2.43 GUTAB」)によるタブの生成と、

GUTBL(→「4.2.44 GUTBL」)によるテーブルの生成が必要です。

使用例 GUWIN 1

GUTAB 1, 10, 0, @FONT, @SIZE, @POSI, @TIP

GUTBL 0, 30, 2, 3 , 1, 0, @FONT, @SIZE, @POSI, @TIP

GUTBL 0, 20, 1, 2 , 1, 0, @FONT, @SIZE, @POSI, @TIP

GUTBL 0, 40, 3, 4 , 1, 0, @FONT, @SIZE, @POSI, @TIP

GUADD TAB,10, 20, "TEST1", FALSE

GUADD TAB,10, 30, "TEST2", FALSE

GUADD TAB,10, 40, "TEST3", TRUE

GUSHW 1

<タブ番号>10 のタブへ<テーブル番号>20 <ページ名>TEST1 <初期状態>選択なし でページ

を追加します。

<タブ番号>10 のタブへ<テーブル番号>30 <ページ名>TEST2 <初期状態>選択なし でページ

を追加します。

<タブ番号>10 のタブへ<テーブル番号>40 <ページ名>TEST3 <初期状態>初期選択 でページ

を追加します。

Interface Corporation - -

252

Page 253: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.13 GUADD TBL

命令 i99-BASIC -

機 能 GUI部品のテーブルにGUI部品を配置します。

書 式 GUADD TBL, <テーブル番号>, <追加部品名>, <追加部品番号>, <配置横マス番号>, <配置

縦マス番号>

<テーブル番号>

追加するテーブルの部品番号を指定します。

<追加部品名>

テーブルに追加する部品名を指定します。

※ 部品名を指定する際に" "は必要ありません。

指定できるGUI部品は以下のものです。

LBL(ラベル)

BTN(ボタン)

CHK(チェックボックス)

CMB(コンボボックス)

RDO(ラジオボタン)

TXT(テキストボックス)

TXA(テキストエリア)

TAB(タブ)

TBL(テーブル)

<部品番号>

テーブルに追加する部品の番号を指定します。

<配置横マス番号>, <配置縦マス番号>

GUI部品を入れるセルを指定します。

2×2のテーブルに、下記位置にABCを入れる場合

<配置横マス番号>:1,

<配置縦マス番号>:2 1 2

1

2 ABC

備 考 実行前にGUTBL(→「4.2.44 GUTBL」)によるテーブルの生成と、

追加の対象となるGUI部品の生成が必要です。

注 意 テーブルに配置するGUI部品が大きい場合、テーブル全体のサイズがGUTBLで指定したもの

よりも大きくなる場合があります。

使用例 GUWIN 1

GULBL 1, 10, "ABC", @FONT, @SIZE, @POSI, @TIP

GUTBL 1, 99, 2, 2 , 1, 0, @FONT,@SIZE,@POSI,@TIP

GUADD TBL, 99, LBL, 10, 1, 2

GUSHW 1

<テーブル番号> 99 のテーブルの横 1 マス 縦 2 マス の位置へ部品番号 10 のラベルを配

置します。

- - Interface Corporation

253

Page 254: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.14 GUBTN

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のボタンを配置します。

書 式 GUBTN <ウィンドウ番号>, <ボタン番号> [, <文字列>, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

ボタンを配置するウィンドウの番号を指定します。

<ボタン番号>

作成するボタンの番号を指定します。0以外の値を指定してください。

<文字列>

ボタン内に表示したい文字列を指定します。

デフォルト値:空文字列

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

SAMPLE

ボタン

ウィンドウ

使用例1 GUWIN 1

GUBTN 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウへ <ボタン番号> 10 でボタンを配置します。

使用例2 GUWIN 1

GUBTN 1, 10, "SAMPLE" , @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウへ <ボタン番号> 10 でボタンを配置します。

ボタン内に表示する文字列として SAMPLE を設定しています。

環境変数を用いてボタンの色や配置座標、サイズ、ツールチップでの表示内容を設定して

います。

Interface Corporation - -

254

Page 255: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.15 GUCHK

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のチェックボックスを配置します。

書 式 GUCHK <ウィンドウ番号>, <チェックボックス番号> [, <初期状態>, <文字列>, [@FONT],

[@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

チェックボックスを配置するウィンドウの番号を指定します。

0以外の値を指定してください。

<チェックボックス番号>

作成するチェックボックスの番号を指定します。

<初期状態>

表示直後のチェックボックスの状態を指定します。

0:チェック無し(デフォルト)

1:チェック有り

<文字列>

チェックボックスの右隣に指定した文字列を表示します。

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

□SAMPLE

チェックボックス

ウィンドウ

使用例1 GUWIN 1

GUCHK 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウへ <チェックボックス番号> 10 でチェックボックスを配

置します。

使用例2 GUWIN 1

GUCHK 1, 10 , 1, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウへ <チェックボックス番号> 10

<初期状態>チェック有り <文字列> SAMPLE のチェックボックスを配置します。

環境変数を用いてチェックボックスの文字色や配置座標、サイズ、ツールチップでの表示

内容を設定しています。

- - Interface Corporation

255

Page 256: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.16 GUCMB

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のコンボボックスを配置します。

書 式 GUCMB <ウィンドウ番号>, <コンボボックス番号> [, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

コンボボックスを配置するウィンドウの番号を指定します。

<コンボボックス番号>

作成するコンボボックスの番号を指定します。0以外の値を指定してください。

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

コンボボックス

ウィンドウ

使用例1 GUWIN 1

GUCMB 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウへ <コンボボックス番号> 10 でコンボボックスを配置し

ます。

使用例2 GUWIN 1

GUCMB 1, 10, @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウへ <コンボボックス番号> 10 でコンボボックスを配置し

ます。

環境変数を用いてコンボボックスの文字/背景色やサイズ、配置座標、ツールチップでの表

示内容を設定しています。

Interface Corporation - -

256

Page 257: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

257

4.2.17 GUDEL

命令 i99-BASIC -

機 能 指定したGUI部品を削除します。

書 式 GUDEL <部品名>, <部品番号>

<部品名>

削除する部品名を指定します。

※ 部品名を指定する際に" "は必要ありません。

指定できるGUI部品は以下のものです。

BTN:ボタン

CMB:コンボボックス

CHK:チェックボックス

RDO:ラジオボタン

LBL:ラベル

TAB:タブ

TBL:テーブル

TXT:テキストボックス

TXA:テキストエリア

IMG:画像

PIC:描画領域

WIN:ウィンドウ

<部品番号>

削除する部品の番号を指定します。

注 意 ウィンドウやテーブル、タブを削除した場合、そこへ配置されていたGUI部品も一緒に削除

されます。

使用例 GUWIN 1

GUBTN 1, 10

GUDEL BTN, 10

GUSHW 1

<部品番号> 10 に該当する配置済みのボタンを削除します。

Page 258: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

258

4.2.18 GUDSP

命令 i99-BASIC -

機 能 指定したGUI部品を表示あるいは非表示にします。

書 式 GUDSP <部品名>, <部品番号>, <表示状態> [, <編集可能状態>]

<部品名>

表示あるいは非表示にする部品名を指定します。

※ 部品名を指定する際に" "は必要ありません。

指定できるGUI部品は以下のものです。

BTN:ボタン

CMB:コンボボックス

CHK:チェックボックス

RDO:ラジオボタン

LBL:ラベル

TAB:タブ

TBL:テーブル

TXT:テキストボックス

TXA:テキストエリア

IMG:画像

PIC:描画領域

<部品番号>

表示あるいは非表示にする部品の番号を指定します。

<表示状態>

GUI部品の表示状態を指定できます。

0:非表示

1:表示

<編集可能状態>

GUI部品の編集ができるかどうかを指定できます。

0:編集不可

1:編集可(デフォルト)

使用例1 GUWIN 1

GUBTN 1, 10, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUDSP BTN, 10, 0

<部品番号> 10 のボタンを非表示にします。

使用例2 GUWIN 1

GUBTN 1, 10, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

GUDSP BTN, 10, 1,0

<部品番号> 10 のボタンを表示したまま、押せないようにします。

Page 259: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.19 GUGARC

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、円弧を描画します。

書 式 GUGARC PIC, <部品番号>, (<X座標>, <Y座標>) – (<横幅>, <縦幅>) [, <塗りつぶし

スイッチ> ] [,<色>] [,<開始角度>] [,<終了角度>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>, <横幅>, <縦幅>

円弧を描画する座標と領域をpixel単位で指定します。

横幅、縦幅の領域内に対して円弧を描画します。

左上が原点 (0, 0) です。

<塗りつぶしスイッチ>

TRUEを指定すると、円弧内を塗りつぶします。

(枠線の点線描画は行いません)

<色>

グラフィックに対する前景色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

省略すると、GUGCOLOR文で指定した色が採用されます。

<開始角度>, <終了角度>

円弧を描く開始角度と終了角度を指定します。

角度の指定と関係性は、下図のようです。

0 度(0)

90 度(90)

180 度(180)

270 度(270)

45 度(45)

360 度(360)

備 考 GUPIC(→「4.2.38 GUPIC」)によって作成した画像領域へ対して用います。

使用例 GUGARC PIC, 10, (10, 20) – (100, 200), TRUE

<部品番号> 10 の画像領域で座標(10,20)の場所へ<横幅>100 <縦幅> 200

塗りつぶし あり の円弧を描画します。

- - Interface Corporation

259

Page 260: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.20 GUGCIRCLE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、円を描画します。

書 式 GUGCIRCLE PIC, <部品番号>, (<X座標>, <Y座標>) ,<半径> [,<色>] [,<開始角度>] [,<

終了角度>], [, <塗りつぶしスイッチ>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>

円を描く中心座標をpixel単位で指定します。

<半径>

円を描く半径をpixel単位で指定します。

<色>

グラフィックに対する前景色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

省略すると、GUGCOLOR文で指定した色が採用されます。

<開始角度>, <終了角度>

円弧を描く開始角度と終了角度を指定します。

角度の指定と関係性は、下図のようです。

0 度(0)

90 度(90)

180 度(180)

270 度(270)

45 度(45)

360 度(360)

<塗りつぶしスイッチ>

TRUEを指定すると、円弧内を塗りつぶします。

(枠線の点線描画は行いません)

備 考 GUPIC(→「4.2.38 GUPIC」)によって作成した画像領域へ対して用います。

使用例 GUGCIRCLE PIC, 10, (100, 100), 50

<部品番号> 10 の画像領域で座標(100,100)の場所へ<半径>50 の円を描画します。

Interface Corporation - -

260

Page 261: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

261

4.2.21 GUGCLS

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、画面をクリアします。

書 式 GUGCLS PIC, <部品番号>

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

備 考 GUGCOLOR(→「4.2.22 GUGCOLOR」)で変更した文字色, 背景色はリセットされます。

使用例 GUGCLS PIC, 10

GUPIC で作成した部品番号 10 の画像領域をクリアします。

4.2.22 GUGCOLOR

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、表示する図形の前景色・背景色を変更します。

書 式 GUGCOLOR PIC, <部品番号>, <前景色> [, <背景色>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<前景色>, <背景色>

色を以下の値で指定します。背景色を省略した場合、前景色だけを変更します。

0:黒

1:青

2:赤

3:紫

4:緑

5:シアン

6:黄

7:白

使用例1 GUGCOLOR PIC, 10, 0, 1

GUPIC で作成した<部品番号> 10 の画像領域に対して<前景色> 黒 <背景色> 青 を設定

します。

使用例2 GUGCOLOR PIC, 10, 2

GUPIC で作成した<部品番号> 10 の画像領域に対して<前景色> 赤 を設定します。

<背景色>を省略したので、背景色は変更しません。

Page 262: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

262

4.2.23 GUGDRAWFILE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、指定ファイルの画像を描画します。

書 式 GUGDRAWFILE PIC, <部品番号>, (<X座標>, <Y座標>), <画像ファイルパス>

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>

画像をグラフィックに書き込む座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<画像ファイルパス>

画像ファイルのパスを指定します。

指定できるファイルはJPEG, PNG形式です。

使用例 GUGDRAWFILE PIC, 10, (100, 100), “yuki.png”

GUPIC で作成した<部品番号> 10 の画像領域に対して座標(100,100)の位置へ

画像 yuki.png を描画します。

Page 263: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.24 GUGDRAWSTYLE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、図形描画のスタイルを設定します。

書 式 GUGDRAWSTYLE PIC, <部品番号>, <キー名>=<値> [,<キー名>=<値> ...]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<キー名>, <値>

スタイル設定を行う際のキー値と代入値を指定します。

以下の表の組み合わせに従います。

パラメータ 設 定 値

LINEWIDTH LINEの線の太さをpixel単位で指定します。

1以上の数値を与えて下さい。

デフォルトは1です。

LINESTYLE LINEの線のスタイルを指定します。

0=直線, 1=点線, 2=点線(FGCOLORとBGCOLORの繰り返し)デフォルトは0です。

CAPSTYLE LINEの端点のスタイルを指定します。

0=特に無し, 2=丸みを付ける

デフォルトは0です。

FGCOLOR グラフィック描画の前景色を指定します。

COLOR文の指定方法と同じです。

デフォルトは7(白)です。

BGCOLOR グラフィック描画の背景色を指定します。

COLOR文の指定方法と同じです。

デフォルトは0(黒)です。

ORIGINPOS グラフィック描画時の原点座標を指定します。

0=左上, 1=左下

デフォルトは0です。

DRAWTEXTBG DRAWTEXT の文字の背景色描画を指定します。

0=描画しない 1=描画する

デフォルトは 0です

キーと値は、「,」で区切る事で、連続して指定できます。

備 考 FGCOLOR,BGCOLORの指定にはCOLOR文(→「2.2.4 COLOR」)を用います。

注 意 CAPSTYLEによる端点の丸み付けは、線のスタイル(LINESTYLE)に2が指定されており、

かつ背景色(BGCOLOR)に何らかの色が指定されている時のみ有効です。

使用例 GUGDRAWSTYLE PIC, 10, LINEWIDTH=5, FGCOLOR=6

GUPIC で作成した<部品番号> 10 の画像領域に対して、LINE使用時の線の太さを10 グ

ラフィック描画の背景色を黄に設定します。

- - Interface Corporation

263

Page 264: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

264

4.2.25 GUGDRAWTEXT

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、文字を描画します。

書 式 GUGDRAWTEXT PIC, <部品番号>, (<X座標>, <Y座標>), <文字列> [, <フォントサイズ>]

[, <フォント名>] [, <文字色>] [, <背景色>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>

文字をグラフィックに書き込む座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<文字列>

グラフィックに書き込む文字列を指定します。

改行は使用できません。

<フォントサイズ>

1以上を指定してください。

何も指定しないか、0を指定すると、デフォルトとなり、テキストの文字サイズ相当

となります。

<フォント名>

表示する文字列のフォントを数値で指定します。

詳細については@FONT(→「4.2.1 @FONT = “文字列”」)の項目を参照してくださ

い。

<文字色>, <背景色>

グラフィックに対する色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

文字色を省略すると、GUGCOLOR文で指定した前景色が採用されます。

背景色を省略すると、文字だけが描画され、背景は描画されません。

GUGDRAWSTYLEのDRAWTEXTBGを1に指定した場合、背景色を省略しても背景が描画され

ます。

使用例1 GUGDRAWTEXT PIC, 10, (100, 50), “hello”, 20,32,6

GUPICで作成した<部品番号> 10 の画像領域に対して、文字色黄色で hello と表示しま

す。例では<X座標> 100 <Y座標> 50 <文字列> hello <フォントサイズ> 20

<フォント名> VL ゴシック <文字色> 6 を指定しています。

使用例2 GUGDRAWTEXT PIC, 10, (100, 100), “world”, 40

GUPICで作成した<部品番号> 10 の画像領域に対して、world と表示します。

例では<X座標> 100 <Y座標> 100 <文字列> world <フォントサイズ> 40 を指定してい

ます。<フォント名><文字色><背景色>を省略しています。

Page 265: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

265

4.2.26 GUGET$

関数 i99-BASIC -

機 能 指定したGUI部品の表示内容を取得します。

書 式 GUGET$(<部品名>,<部品番号>)

<部品名>

表示内容を取得する部品名を指定します。

(チェックボックスの場合は、チェックボックスのチェック状態を取得します。

チェック有りの時は"1", チェック無しの時は"0"を返します。)

※ 部品名は" "で囲んでください。指定できるGUI部品は以下のものです。

BTN:ボタン(ボタン内に表示している文字列を返します)

CHK:チェックボックス(チェックボックスの状態を返します)

CMB:コンボボックス(選択されているリスト名の文字列を返します)

LBL:ラベル(ラベル内に表示している文字列を返します)

RDO:ラジオボタン(選択されているリスト名の文字列を返します)

TXA:テキストエリア(記載されている文字列を返します)

TXT:テキストボックス(記載されている文字列を返します)

<部品番号>

表示内容を取得する部品の番号を指定します。

使用例1 GUWIN 1

GUBTN 1, 10, @FONT, @SIZE, @POSI, @TIP

A$ = GUGET$(“TXT”, 10)

<部品番号> 10 のテキストボックスから入力内容を取得し、変数A$ へ代入します。

使用例2 GUWIN 1

GUCHK 1, 10,0, "SAMPLE", @FONT, @SIZE, @POSI, @TIP

A$ = GUGET$(“CHK”, 10)

<部品番号> 10 のチェックボックスから状態を取得し、変数A$ へ代入します。

チェックボックスが選択状態の時は 1 未選択の時は 0 が代入されます。

Page 266: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

266

4.2.27 GUGETMS

関数 i99-BASIC -

機 能 マウスの情報を返します。

書 式 GUGETMS

マウスの情報を要素8の配列で返します。

GUGETMS(<情報番号>)

マウスの特定の情報を返します。

<情報番号>

マウスから取得する情報を番号で指定します。

ボタンの状態は、押されている場合 1(TRUE)を、押されていない場合0(FALSE)を返し

ます。

-1:マウスの情報を要素8の配列で返します(引数省略と同等)

0:左ボタンが押されているか

1:右ボタンが押されているか

2:中央ボタンが押されているか

3:Shiftキーが押されているか

4:Ctrlキーが押されているか

5:Altキーが押されているか

6:水平位置(X座標)

7:垂直位置(Y座標)

使用例 マウスの左ボタンが押されているか否かを表示します。

PRINT GUGETMS(0)

Page 267: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

267

4.2.28 GUGLINE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、線分を描画します。

書 式 GUGLINE PIC, <部品番号>, (<始点X座標>, <始点Y座標>) – (<終点X座標>, <終点Y座

標>) [,<色>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<始点X座標>, <始点Y座標>, <終点X座標>, <終点Y座標>

線分を描画する始点XY座標と終点XY座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<色>

グラフィックに対する前景色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

省略すると、GUGCOLOR文で指定した色が採用されます。

使用例1 GUGLINE PIC, 10, (10, 20) – (100, 200)

GUPICで作成した<部品番号> 10 の画像領域に対して、開始座標(10,20)から終点座標

(100,200)へ向けて直線を描画します。<色>を省略した例です。

使用例2 GUGLINE PIC, 10, (10, 20) – (100, 200),6

GUPICで作成した<部品番号> 10 の画像領域に対して、開始座標(10,20)から終点座標

(100,200)へ向けて黄色で直線を描画します。

Page 268: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

268

4.2.29 GUGPLOT HISTGRAM

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、棒グラフを描画します。

書 式 GUGPLOT PIC, <部品番号>, HISTOGRAM ( <棒グラフの値配列(数値)> [, <棒グラフの項

目配列(文字列)> [, <棒グラフの上に表示する配列(数値)> [, <棒グラフ毎の色指定配

列(数値)> ]]] ) [, <オプション名>=<オプション値> ...]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<棒グラフの値配列>

棒グラフを描く際のY軸に対する値を指します。

数値の配列を与えてください。

<棒グラフの項目配列>

棒グラフを描く際のX軸に対する項目名を指します。

文字列の配列を与えてください。

配列の要素数は、<棒グラフの値配列>と同じにしてください。

省略すると、項目名は「no.x」という風に自動設定されます。

<棒グラフの上に表示する配列>

棒グラフを描いた際、棒の上に表示する数値を与えます。

数値の配列を与えてください。

配列の要素数は、<棒グラフの値配列>と同じにしてください。

省略すると、棒の上に数値を表示しません。

<棒グラフ毎の色指定配列>

棒グラフ単位に色を個別に指定します。

省略すると、個別の色指定はされません。

注意:この指定を用いると、オプション「color_bar」「color_limit_high」

「color_limit_low」の指定は無効となります。

<オプション名>と<オプション値>

グラフ描画に対する細かな設定を与える事ができます。

これは、「,(カンマ)」区切りで繋げる事ができます。

設定可能なオプションは、以下の「棒グラフ描画時のオプション設定表」を参照くだ

さい。

<部品番号>の次に「HISTOGRAM」を指定すると、棒グラフを描画します。

備 考 グラフの描画は、GUPICで生成した画像領域全体を使って行います。

使用例 4つの棒グラフを描きます。

DIM ARY(3)

ARY = [ 10; 40; 70; 30 ]

DIM LBL$(3)

LBL$ = [ "りんご", "すいか", "桃", "ぶどう" ]

DIM BTOP(3)

BTOP = [ 176, 361, 463, 209 ]

DIM COL(3)

COL = [ 1, 2, 3, 4 ]

' 棒グラフの描画

Page 269: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

269

GUGPLOT PIC, 10, HISTOGRAM ( ARY, LBL$, BTOP, COL ), yAxis_name="[%]"

<棒グラフ描画時のオプション設定表>

オプション名 値の範囲 解説

yAxis_name 文字型 縦軸に対する単位ラベルを表示します。

yAxis_name_font_s

ize 正の数値 縦軸に対する単位ラベルのフォントサイズを指定します。

(省略時、GUPIC時のフォントサイズです)

leftMargin_size 正の数値 縦軸の値ラベルを表示する為の横幅を指定します。

bottomMargin_size 正の数値 横軸の項目ラベルを表示する際の縦幅を指定します。

item_font_size 正の数値 横軸の項目ラベルのフォントサイズを指定します。

(省略時、GUPIC時のフォントサイズです)

yMax_value 正の数値 縦軸の値の 大値を指定します。

yMin_value 正の数値 縦軸の値の 小値を指定します。

yDiv_value 正の数値 縦軸の目盛りの間隔を指定します。

yDiv_font_size 正の数値 縦軸の目盛りのフォントサイズを指定します。

(省略時、GUPIC時のフォントサイズです)

limit_value 数値 リミット値を指定します。

リミット値を指定すると、リミット値を超えた棒グラフの

バーの色を任意に変化させる事ができます。

color_limit_line 0-7の色数値 リミットの目盛り線の色を指定します。

limit_valueを指定時に有効です。

color_limit_high 0-7の色数値 リミット値を超えた時、超えた分の棒グラフのバーの色を

指定します。

color_limit_low 0-7の色数値 リミット値を超えた時、超えた下の分の棒グラフのバーの

色を指定します。

color_bar 0-7の色数値 棒グラフのバーの色を指定します。

bar_width 正の数値 棒グラフのバーの横幅を指定します。

spc_width 正の数値 棒グラフのバーとバーの間の隙間を指定します。

bar_font_size 正の数値 棒グラフのバーの上のラベルのフォントサイズを指定しま

す。

(省略時、GUPIC時のフォントサイズの70%です)

Page 270: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

270

4.2.30 GUGPLOT PIE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、円グラフを描画します。

書 式 GUGPLOT PIC, <部品番号>, PIE ( <円グラフの値配列(数値)> [, <円グラフの項目配列

(文字列)> [, <円グラフのカラー配列(数値)> ]] ) [, <オプション名>=<オプション値

> ...]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<円グラフの値配列>

円グラフを描く際の各項目の値を指します。

数値の配列を与えてください。

配列の総和に対する比率を内部で演算して描画します。

<円グラフの項目配列>

円グラフを描く際の項目名を指します。

文字列の配列を与えてください。

配列の要素数は、<円グラフの値配列>と同じにしてください。

省略すると、項目名は「No.x」という風に自動補完されます。

<円グラフのカラー配列>

円グラフを描いた際、各項目の色を与えます。

数値の配列を与えてください。

配列の要素数は、<円グラフの値配列>と同じにしてください。

省略すると、色は適当に配色されます。

<オプション名>と<オプション値> グラフ描画に対する細かな設定を与える事ができます。

これは、「,(カンマ)」区切りで繋げる事ができます。

設定可能なオプションは、以下の「円グラフ描画時のオプション設定表」を参照くだ

さい。

<部品番号>の次に「PIE」を指定すると、円グラフを描画します。

備 考 グラフの描画は、GUPICで生成した画像領域全体を使って行います。

使用例 円グラフを描画します。

DIM ARY(3)

ARY = [ 10; 40; 50; 30 ]

' 円グラフの描画

GUGPLOT PIC, 10, PIE ( ARY )

<円グラフ描画時のオプション設定表>

オプション名 値の範囲 解説

leftMargin_size 正の数値 円グラフと描画領域の左右の隙間を指定します。

bottomMargin_size 正の数値 円グラフと描画領域の上下の隙間を指定します。

label_pos 数値 ラベルを表示する際、円グラフの半径に対して外に表示す

るか(正)、中に表示するか(負)、指定します。

Page 271: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

271

label_font_size 正の数値 ラベルのフォントサイズを指定します。

(省略時、GUPIC時のフォントサイズです)

color_label 0-7の色数値 ラベルの色を指定します。

draw_mode 正の数値 円グラフを描画する際の方法を指定します。

0:右から反時計回りに描画します。

1:上から時計回りに描画します。

label_mode 正の数値 ラベルを描画する際に、何を表示するか指定します。(加算

可能です)

&h00:何も表示しない

&h01:値をそのまま表示します。

&h02:ラベル名を表示します。

&h04:インデックス番号を付加します。

&h08:パーセント(%)表記を付加します。

Page 272: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

272

4.2.31 GUGPRESET

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、描画された点を消去します。

GUGPRESETは、GUGCOLOR文で指定した背景色の点描画(GUGPSET)です。

書 式 GUGPRESET PIC, <部品番号>, (<X座標>, <Y座標>) [,<色>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>

点を描画するXY座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<色>

グラフィックに対する前景色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

色を指定すると、GUGPSETコマンドと同じ動作になります。

省略すると、GUGCOLOR文で指定した背景色が採用されます。

使用例1 GUGPRESET PIC, 10, (10, 20)

GUPICで作成した<部品番号> 10 の画像領域に対して、座標(10,20)の点を消去します。

使用例2 GUGPRESET PIC, 10, (10, 20),6

GUPICで作成した<部品番号> 10 の画像領域に対して、座標(10,20)へ黄色で点を描画し

ます。

4.2.32 GUGPSET

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、点を描画します。

書 式 GUGPSET PIC, <部品番号>, (<X座標>, <Y座標>) [,<色>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>

点を描画するXY座標をpixel単位で指定します。

左上が原点 (0, 0) です。

<色>

グラフィックに対する前景色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

省略すると、GUGCOLOR文で指定した色が採用されます。

使用例1 GUGPSET PIC, 10, (10, 20)

GUPICで作成した<部品番号> 10 の画像領域に対して、座標(10,20)の点を描画します。

使用例2 GUGPSET PIC, 10, (10, 20),6

GUPICで作成した<部品番号> 10 の画像領域に対して、座標(10,20)へ黄色で点を描画し

ます。

Page 273: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

273

4.2.33 GUGRECTANGLE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、矩形を描画します。

書 式 GUGRECTANGLE PIC, <部品番号>, (<X座標>, <Y座標>) – (<横幅>, <縦幅>) [, <塗り

つぶしスイッチ> ] [,<色>]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<X座標>, <Y座標>, <横幅>, <縦幅>

円弧を描画する座標と領域をpixel単位で指定します。

横幅、縦幅の領域内に対して矩形を描画します。

左上が原点 (0, 0) です。

<塗りつぶしスイッチ>

TRUEを指定すると、矩形内を塗りつぶします。

(枠線の点線描画は行いません)

<色>

グラフィックに対する前景色を指定します。

構文は、GUGCOLOR文(→「4.2.22 GUGCOLOR」)相当です。

省略すると、GUGCOLOR文で指定した色が採用されます。

使用例1 GUGRECTANGLE PIC, 10, (10, 20) – (100, 200)

GUPICで作成した<部品番号> 10 の画像領域に対して、座標(10,20)から横幅 100 で 縦

幅 200 の矩形を描画します。

使用例2 GUGRECTANGLE PIC, 10, (10, 20) – (100, 200),TRUE,6

GUPICで作成した<部品番号> 10 の画像領域に対して、座標(10,20)から横幅 100 で 縦

幅 200 の矩形を黄色で描画し、塗りつぶします。

Page 274: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

274

4.2.34 GUGWAVE

命令 i99-BASIC -

機 能 GUPICで生成した画像領域に対して、波形グラフを描画します。

書 式 GUGWAVE PIC, <部品番号>, SET (<線情報の配列> [, <線情報の配列> ...] ) [, オプ

ション名=オプション値 ...]

<部品番号>

GUPICで生成した画像領域の部品の番号を指定します。

<線情報の配列>

波形描画する数値の1次元配列を指定します。

描画したい本数だけ、複数指定可能です。(ただし10本まで)

配列の要素数は、全て同じにしてください。

<オプション名>と<オプション値> 波形グラフ描画に対する細かな設定を与える事ができます。

これは、「,(カンマ)」区切りで繋げる事ができます。

設定可能なオプションは、以下の「波形グラフ描画時のオプション設定表」を参照く

ださい。

<部品番号>の次に「SET」を指定すると、波形グラフを描画します。

備 考 波形グラフの描画は、GUPICで生成した画像領域全体を使って行います。

使用例 3本の波形グラフを描画します。

wMax = 3072

wMid = 2048

wMin = 2048

wMin = 100

SMPLNUM=1000

DIM SmplData1(SMPLNUM) ' 1本目の線データ

DIM SmplData2(SMPLNUM) ' 2本目の線データ

DIM SmplData3(SMPLNUM) ' 3本目の線データ

FOR I=0 TO (SMPLNUM)

SmplData1(I) = wMin * SIN(i * 4 * 3.1415 / SMPLNUM) + wMin

SmplData2(I) = wMin * COS(i * 4 * 3.1415 / SMPLNUM) + wMin

SmplData3(I) = (wMin / 2) * SIN(i * 3 * 3.1415 / SMPLNUM) + wMin

NEXT I

DIM lineCol(4)

lineCol = [ 1, 2, 3 ]

' 波形グラフの描画

GUGWAVE PIC, 10, SET ( SmplData1, SmplData2, SmplData3 ), color_line=lineCol

<波形グラフ描画時のモード設定表>

オプション名 値の範囲 解説

color_line 0-7の色数値

の配列

波形線の色を指定します。

<線情報の配列>で指定した本数文の要素数の配列内に、各

色の数値を与えてください。

Page 275: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

275

色の指定は、上の数値指定以外に、「”#rrggbb”」という

記述形式が使えます。(拡張形式)

yMax_value 正の数値 縦軸の値の 大値を指定します。

yMin_value 正の数値 縦軸の値の 小値を指定します。

yDiv_value 正の数値 縦軸の目盛りの間隔を指定します。

xDiv_value 正の数値 横軸の目盛りの間隔を指定します。

weight 正の数値 波形線の線幅を指定します。

Page 276: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

276

4.2.35 GUIMG

命令 i99-BASIC -

機 能 指定した画像データをウィンドウに貼り付けます。

書 式 GUIMG <ウィンドウ番号>, <部品番号>, <画像ファイルパス> [, [@FONT], [@SIZE], [@POSI],

[@TIP]]

<ウィンドウ番号>

画像データを表示するウィンドウの番号を指定します。

<部品番号>

表示する画像データの部品番号を指定します。

<画像ファイルパス>

表示する画像ファイルのパスを指定します。

指定できるファイルはJPEG, PNG形式です。

※@FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

使用例1 GUWIN 1

GUIMG 1, 10, "sample.png"

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で sample.png という画像ファ

イルを貼り付けます。

使用例2 GUWIN 1

GUIMG 1, 10, "sample.png", @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で sample.png という画像ファ

イルを貼り付けます。

環境変数を用いて画像ファイルの設置座標、ツールチップでの表示内容を設定しています。

Page 277: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.36 GULBL

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のラベルを配置します。

書 式 GULBL <ウィンドウ番号>, <ラベル番号>, <文字列> [, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

ラベルを配置するウィンドウの番号を指定します。

<ラベル番号>

作成するラベルの番号を指定します。

0以外の値を指定してください。

<文字列>

ラベル内に表示したい文字列を指定します。

デフォルト値:空文字列

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

SAMPLE ラベル

ウィンドウ

使用例1 GUWIN 1

GULBL 1, 10, "SAMPLE"

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で SAMPLE という文字を書いた

ラベルを配置します。

使用例2 GUWIN 1

GULBL 1, 10, "SAMPLE", @FONT, , @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で SAMPLE という文字を書いた

ラベルを配置します。

環境変数を用いて文字/背景色、サイズ、配置座標、ツールチップでの表示内容を設定して

います。

- - Interface Corporation

277

Page 278: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

278

4.2.37 GUMOV

命令 i99-BASIC -

機 能 ウィンドウを移動します

書 式 GUMOV <部品名>, <部品番号>, @POSI

<部品名>

移動する対象の部品名を指定します。

以下の部品名をサポートしています。

WIN : GUWINで作成したウィンドウ

<部品番号>

移動する部品の番号を指定します。

指定したウィンドウ番号のウィンドウを、@POSIで指定した位置に移動します。

使用例 @POSI = “100, 50”

GUMOV WIN, 1, @POSI

ウィンドウを、100, 50の位置に移動します。

Page 279: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

279

4.2.38 GUPIC

命令 i99-BASIC -

機 能 自由に描画できる領域を、ウィンドウに貼り付けます。

書 式 GUPIC <ウィンドウ番号>, <部品番号> [, <フレーム有無>][, [@FONT], [@SIZE], [@POSI],

[@TIP]]

<ウィンドウ番号>

画像データを表示するウィンドウの番号を指定します。

<部品番号>

表示する画像領域の部品番号を指定します。

<フレーム有無>

描画領域に枠線を追加するか指定します。

0:追加しない(デフォルト)

1:追加する

※@FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

使用例1 GUWIN 1

GUPIC 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で描画領域を配置します。

使用例2 GUWIN 1

GUPIC 1, 10, 1, @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で描画領域を配置します。

環境変数を用いて、背景/枠線色、サイズ、設置座標、ツールチップでの表示内容を設定し

ています。

Page 280: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

280

4.2.39 GURDO

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のラジオボタンの領域を作成します。

書 式 GURDO <ウィンドウ番号>, <ラジオボタン番号> [, <追加位置>, [@FONT], [@SIZE], [@POSI],

[@TIP]]

<ウィンドウ番号>

ラジオボタンを表示するウィンドウの番号を指定します。

<ラジオボタン番号>

作成するラジオボタンの領域の番号を指定します。

0以外の値を指定してください。

<追加位置>

ラジオボタン追加時に追加を行う位置を指定します。

0:右側に追加(デフォルト)

1:下側に追加

2:右側に追加し、一定数追加すると折り返す

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

使用例1 GUWIN 1

GURDO 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で ラジオボタンを配置します。

使用例2 GUWIN 1

GURDO 1, 10 , , ,@POSI , @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに対して<部品番号> 10 で ラジオボタンを配置します。

環境変数を用いて、設置座標、ツールチップでの表示内容を設定しています。

Page 281: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

281

4.2.40 GUSCALE

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のスケールを配置します。

書 式 GUSCALE <ウィンドウ番号>, <スケール番号>, <文字列> [, [@FONT], [@SIZE], [@POSI],

[@TIP]] [, オプション名=オプション値 ...]

<ウィンドウ番号>

ラベルを配置するウィンドウの番号を指定します。

<スケール番号>

作成するスケールの番号を指定します。

0以外の値を指定してください。

<文字列>

スケールの初期値と 小値、 大値、ステップ値をカンマ区切りで指定します。

省略した場合、”0, 0, 100, 1”として扱います。

<オプション名>と<オプション値> 波形グラフ描画に対する細かな設定を与える事ができます。

これは、「,(カンマ)」区切りで繋げる事ができます。

設定可能なオプションは、以下の「スケールのオプション設定表」を参照ください。

備 考 ・ @FONT,@TIPは有効ではありません。

使用例 'ウィンドウを作成する

@FONT = "31, 0, 0, 14, 1, 26"

@SIZE = "300, 300"

@POSI = "0, 0"

GUWIN 1, "ウィンドウ", 1, @FONT, @SIZE, @POSI, @TIP

‘ – 100~100のレンジを持つスケールを作成して表示する

@SIZE = "80, 80"

@POSI = "0, 0"

GUSCALE 1, 10, "50,-100,100,10",,,,

GUSHW 1

SLEEP 2

‘ スケールの設定を”-20”の位置に移動する

GUUPD SCALE, 10, “-20”, @FONT

<スケールのモード設定表>

オプション名 値の範囲 解説

draw 0 or 1 設定値を文字列描画する(1)か、しない(0)か設定します。

デフォルト値は1です。

invert 0 or 1 スケールの 小・ 大値の表示を逆に表示する(1)か、し

ない(0)か設定します。

デフォルト値は0です。

digits 0以上の整数 設定値を文字列描画する際、小数点以下何桁まで描画す

るか指定します。

Page 282: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

282

デフォルト値は1です。

page 0以上の整数(0は

含まない)

GUI部品を選択中に、PAGE UP / DOWNするとき、上下動す

る値の間隔を指定します。

デフォルトは、システム依存です。

pos 解説項の文字列の

どれか

設定値を文字列描画する際、スケールに対して、どの位

置に文字列を描画するか指定します。

“left”, “right”, “top”, “bottom”のどれかが

指定できます。

デフォルトは、システム依存です。

dir 解説項の文字列の

どれか

スケールの方向を指定します。

“horizontal”, “vertical”のどれかが指定できます。

デフォルトは、@SIZEで指定した縦幅、横幅のどちらかが

大きいかに依存します。

Page 283: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

283

4.2.41 GUSHW

命令 i99-BASIC -

機 能 指定したウィンドウを表示します。

書 式 GUSHW <ウィンドウ番号>

<ウィンドウ番号>

画面に表示するウィンドウの番号を指定します。

備 考 ウィンドウの作成、各種GUI部品の配置を画面へ反映します。

使用例 GUWIN 1

GUSHW 1

<ウィンドウ番号> 1 のウィンドウを表示します。

4.2.42 GUSWITCH

命令 i99-BASIC -

機 能 指定したウィンドウにGUI部品のスイッチを配置します。

書 式 GUSWITCH <ウィンドウ番号>, <スケール番号>, <文字列> [, [@FONT], [@SIZE], [@POSI],

[@TIP]]

<ウィンドウ番号>

ラベルを配置するウィンドウの番号を指定します。

<スイッチ番号>

作成するスイッチの番号を指定します。

0以外の値を指定してください。

<文字列>

“0”を指定するとスイッチの表示はOFF、”1”を指定すると表示はONとなります。

備 考 ・ @FONT,@TIPは有効ではありません。

使用例 ‘ ウィンドウを作成する

@FONT = "31, 0, 0, 14, 1, 26"

@SIZE = "300, 300"

@POSI = "0, 0"

GUWIN 1, "ウィンドウ", 1, @FONT, @SIZE, @POSI, @TIP

‘ スイッチを作成して表示する

@SIZE = "80, 80"

@POSI = "0, 0"

GUSWITCH 1, 10

GUSHW 1

‘ スイッチの設定状態を得る

A$ = GUGET$("SWITCH”, 10)

? A$

‘ スイッチの状態を変更する

SLEEP 1

GUUPD SWITCH, 10, "1", @FONT

Page 284: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

284

Page 285: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

285

4.2.43 GUTAB

命令 i99-BASIC -

機 能 タブを表示する領域を作成します。

書 式 GUTAB <ウィンドウ番号>, <タブ番号> [, <表示位置>, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

タブを表示するウィンドウの番号を指定します。

<タブ番号>

作成するタブの番号を指定します。

<表示位置>

作成するタブの表示位置を指定します。

0:上

1:左

2:下

3:右

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

使用例1 GUWIN 1

GUTAB 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに<タブ番号> 10 でタブを表示する領域を作成します。

使用例2 GUWIN 1

GUTAB 1, 10 , 1, @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに<タブ番号> 10 でタブを表示する領域を作成します。

環境変数を用いて、タブの文字色、サイズ、配置座標、ツールチップでの表示内容を設定

しています。

Page 286: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

286

4.2.44 GUTBL

命令 i99-BASIC -

機 能 指定したウィンドウにテーブルを配置します。

書 式 GUTBL <ウィンドウ番号>, <テーブル番号>, <列数>, <行数> [, <フレーム有無>, <セルの

大きさの均一>, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

テーブルを配置するウィンドウの番号を指定します。

<テーブル番号>

作成するテーブルの番号を指定します。

0以外の値を指定してください。

<列数>

テーブルの列数を指定します。

0以外の値を指定してください。

<行数>

テーブルの行数を指定します。

0以外の値を指定してください。

<フレーム有無>

テーブルに枠線を追加するか指定します。

0:追加しない(デフォルト)

1:追加する

<セルの大きさの均一>

テーブル内のセルの大きさを均一にするか指定します。

一番大きなGUI部品を配置したセルが基準になります。

0:均一にしない(デフォルト)

1:均一にする

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

使用例1 GUWIN 1

GUTBL 1, 10, 3, 5

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに <テーブル番号> 10 で 3列5行のテーブルを配置しま

す。<フレーム有無>,<セルの大きさの均一>を省略したので、フレーム無し、セルの大きさ

を均一にしない が指定されます。

使用例2 GUWIN 1

GUTBL 1, 10, 3, 5, 1, 1, @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに <テーブル番号> 10 で 3列5行のテーブルを配置しま

す。フレームを追加、セルの大きさは均一を指定しています。

環境変数を用いて、テーブルのサイズ、配置座標、ツールチップでの表示内容を設定して

います。

Page 287: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.45 GUTXA

命令 i99-BASIC -

機 能 指定したウィンドウにテキストエリアを配置します。

テキストボックスとテキストエリアの違いは、テキストエリアは自動でスクロールが付き

ます。

書 式 GUTXA <ウィンドウ番号>, <テキストエリア番号> [, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

テキストエリアを配置するウィンドウの番号を指定します。

<テキストエリア番号>

作成するテキストエリアの番号を指定します。

0以外の値を指定してください。

8. @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

テキストエリア ウィンドウ △

使用例1 GUWIN 1

GUTXA 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに <テキストエリア番号> 10 でテキストエリアを配置し

ます。

使用例2 GUWIN 1

GUTXA 1, 10, @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに <テキストエリア番号> 10 でテキストエリアを配置し

ます。環境変数を用いて、テキストエリアの文字/背景色、サイズ、配置座標、ツールチッ

プでの表示内容を設定しています。

- - Interface Corporation

287

Page 288: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

4.2.46 GUTXT

命令 i99-BASIC -

機 能 指定したウィンドウにテキストボックスを配置します。

書 式 GUTXT <ウィンドウ番号>, <テキストボックス番号> [, [@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

テキストボックスを配置するウィンドウの番号を指定します。

<テキストボックス番号>

作成するテキストボックスの番号を指定します。

0以外の値を指定してください。

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

テキストボックス

ウィンドウ

使用例1 GUWIN 1

GUTXT 1, 10

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに <テキストボックス番号> 10 でテキストボックスを配

置します。

使用例2 GUWIN 1

GUTXT 1, 10 , @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 のウィンドウに <テキストボックス番号> 10 でテキストボックスを配

置します。環境変数を用いて、テキストボックスの文字/背景色、サイズ、配置座標、ツー

ルチップでの表示内容を設定しています。

Interface Corporation - -

288

Page 289: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

289

4.2.47 GUUPD

命令 i99-BASIC -

機 能 GUI部品の表示内容を更新します。

書 式 GUUPD <部品名>, <部品番号>[, <文字列/ファイルパス>], @FONT[,@TIP]

<部品名>

表示内容を更新する部品名を指定します。

※ 部品名を指定する際に" "は必要ありません。

指定できるGUI部品は以下のものです。

LBL(ラベル)

BTN(ボタン)

CHK(チェックボックス)

TXT(テキストボックス)

TXA(テキストエリア)

IMG(画像)

SCALE(スケール)

SWITCH(スイッチ)

<部品番号>

表示内容を更新する部品の番号を指定します。

<文字列/ファイルパス>

更新を行う文字列を指定します。

部品名が「IMG」の場合は、表示する画像ファイルのパスを記入します。

省略された場合は、表示されている文字列・画像が表示されなくなります。

※ @TIPを省略した場合は、既存の文字列がツールチップに入ります。

使用例1 GUWIN 1

GUTXA 1, 10

@TIP=”TEST”

GUUPD TXA, 10, "SAMPLE", @FONT

GUSHW 1

<部品番号> 10 のテキスト エリアの内容を SAMPLE という文字列で更新します。

文字/背景色についても、現在の環境変数@FONTの値を用いて更新します。@TIPを省略した

ので、ツールチップの内容は更新されません。

使用例2 GUWIN 1

GUTXA 1, 10

@TIP=”TEST”

GUUPD TXA, 10, "SAMPLE", @FONT, @TIP

GUSHW 1

<部品番号> 10 のテキスト エリアの内容を SAMPLE という文字列で更新します。

文字/背景色、ツールチップについても、現在の環境変数@FONT、@TIPの値を用いて更新を

行います。

Page 290: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

290

4.2.48 GUWIN

命令 i99-BASIC -

機 能 ウィンドウを作成します。

書 式 GUWIN <ウィンドウ番号> [, <タイトル>, < 大化・ 小化・閉じるボタン表示設定>,

[@FONT], [@SIZE], [@POSI], [@TIP]]

<ウィンドウ番号>

作成するウィンドウの番号を1~15の範囲で指定します。

<タイトル>

指定した文字列をウィンドウのタイトルバーに表示します。

< 大化・ 小化・閉じるボタン表示設定>

ウィンドウの 大化・ 小化・閉じるボタン表示設定を指定します。

0:非表示

1:表示(デフォルト)

2:閉じるボタンのみ非表示

※ @FONT以降の引数を省略する場合でも、各引数間のカンマは必要です。

GUWIN 1, "ウィンドウ", 1, , @SIZE, @POSI, @TIP (@FONT省略)

GUWIN 1, "ウィンドウ", 1, @FONT, , @POSI, @TIP (@SIZE省略)

GUWIN 1, "ウィンドウ", 1, @FONT, @SIZE, , @TIP (@POSI省略)

GUWIN 1, "ウィンドウ", 1, @FONT, @SIZE, @POSI, (@TIP省略)

使用例1 GUWIN 1

GUSHW 1

<ウィンドウ番号> 1 でウィンドウを作成します。

使用例2 GUWIN 1, "SAMPLE", 0, @FONT, @SIZE, @POSI, @TIP

GUSHW 1

<ウィンドウ番号> 1 でウィンドウを作成します。

環境変数を用いて、ウィンドウの背景色、サイズ、初期描画位置、ツールチップでの表示

内容を設定しています。

Page 291: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

291

4.2.49 ON GUEVT~GOSUB

命令 i99-BASIC -

機 能 GUI部品をクリックした時に実行する処理ルーチンの開始行を定義します。

書 式 ON GUEVT <部品名> <部品番号> [, <部品番号>…] GOSUB <行番号/ラベル名>

指定したGUI部品をクリックした時に実行する処理ルーチンの開始行を定義します。

<部品名>

処理ルーチンを登録する部品名を指定します。

※ 部品名を指定する際に" "は必要ありません。

指定できるGUI部品は以下のものです。

BTN(ボタン)

CHK(チェックボックス)

CMB(コンボボックス)

LBL(ラベル)

RDO(ラジオボタン)

TXT(テキストボックス)

SCALE(スケール)

SWITCH(スイッチ)

<部品番号>

処理ルーチンを登録する部品番号を指定します。

部品番号を","で区切ることで、複数の部品を一度に指定することもできます。

また複数の部品番号が1ずつ増加する連続番号である場合、開始と終了の番号を" TO "で

つなぐことによってその範囲内の番号をまとめて指定することもできます。

クリックしたGUI部品番号は、以下の変数に代入されます。

GUCLKLBL(ラベル)

GUCLKBTN(ボタン)

GUCLKCHK(チェックボックス)

GUCLKCMB(コンボボックス)

GUENTTXT(テキストボックス)

※ ラジオボタンの値を取得したい場合は、GUGET$コマンドを使用してください。

<行番号/ラベル名>

処理ルーチン開始行の指定は行番号またはラベル名で指定し、処理ルーチンからの復帰

は通常のサブルーチン同様RETURNで行います。

使用例 ON GUEVT BTN 1 GOSUB 100

ON GUEVT CHK 1 GOSUB CHKEVT

ON GUEVT LBL 1,2,3 GOSUB 100

ON GUEVT RDO 1 TO 3 GOSUB 100

<部品番号> 1 のボタンを押した時 行番号 100 へ、

<部品番号> 1 のチェックボックスを押した時 サブルーチン CHKEVT へ、

<部品番号> 1or2or3 のラベルをクリックした時 行番号 100 へ、

<部品番号> 1から3 のラジオボタンを押した時 行番号 100 へ それぞれ分岐するように設

定します。

Page 292: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第5章 帳票作成

i99-BASICで使用できる帳票作成コマンドの使い方について記載します。

帳票作成の命令は、「i99-REAL」からは使用できません。

5.1 コマンド一覧

名前 内容

帳票作成に関する関数・命令

RPCRT 出力先を指定のサーフェイスに変更します。

RPDEL CAO PDFへの出力を完了します。

RPFILL パスの内部を塗りつぶします。塗りつぶした後は、そのパスをクリアします。

RPIMGSFC CRT PNG形式の画像ファイルを読み込み、サーフェイスを作成します。

RPLINE 現在の座標から指定座標までパス(直線)を引きます。

RPMOVE 始点を指定の座標に移動します。

RPPAINT RPSET SRC,SFCにより設定されたソースの内容を描画します。

RPPAINTA RPSET SRC,SFCにより設定されたソースの内容を透明度付きで描画します。

RPPDF SFC PDF形式のサーフェイスを作成します。

RPRCTG 四角形のパスを引きます。

RPROTATE 指定した角度だけ出力文字列または画像を回転します。

RPSET FONTF フォントの選択と、そのフォントの傾きと太さを指定します。

RPSET FONTS フォントのサイズを指定します。

RPSET LINE, CAP 線端の種類を指定します。

RPSET LINE, JOIN 線分の接続の種類を指定します。

RPSET LINE, WIDTH 線分の太さを指定します。

RPSET LINESPC 行間のサイズを指定します。

RPSET SRC, RGB 色を指定します。

RPSET SRC, RGBA 透明度を持った色を指定します。

RPSET SRC, SFC サーフェイスをソースとして設定します。

RPSFC DEL 指定サーフェイスを削除します。

RPSHWPAGE 現在のページを書き出し、クリアします。

複数ページの文書を作成する際に使用します。

RPSHWTXT 文字列を描画します。

RPSTRK パスを描画します。描画後は、そのパスをクリアします。

Interface Corporation - -

292

Page 293: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

293

5.2 帳票作成に関する関数・命令

5.2.1 RPCRT

命令 i99-BASIC -

機 能 出力先を指定のサーフェイスに変更します。

書 式 RPCRT <サーフェイス番号>

<サーフェイス番号>

出力先のサーフェイス番号を指定します。

備 考 サーフェイス番号には、RPPDF SFC(→「5.2.9 RPPDF SFC」)により作成されたサー

フェイス番号のみ指定できます。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 0,20

40 RPSHWTXT "テスト"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行20で出力先を番号1のサーフェイスに変更します。

RPCRTの実行以降、サーフェイス番号の指定が無い帳票作成に関するコマンド(RPDEL

CAOを除く)は、すべて番号1のサーフェイスに対して実行されます。

5.2.2 RPDEL CAO

命令 i99-BASIC -

機 能 PDFへの出力を完了します。

書 式 RPDEL CAO

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 0,20

40 RPSHWTXT "テスト"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行60の実行によりPDFの出力が完了し、PDFがドキュメントビューア等で表示できる状態

になります。

Page 294: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

294

5.2.3 RPFILL

命令 i99-BASIC -

機 能 パスの内部を塗りつぶします。

塗りつぶした後は、そのパスをクリアします。

書 式 RPFILL

備 考 パスを描画する場合は、RPSTRK(→「5.2.24 RPSTRK」)を使用します。

注 意 RPLINE(→「5.2.5 RPLINE」)により引いたパスの内部を塗りつぶす場合、

パスを元に多角形が描画できない場合は塗りつぶしが実行されません。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPRCTG 100, 100, 100, 100

40 RPFILL

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行40の実行により、行30にて描画された矩形を塗りつぶします。

5.2.4 RPIMGSFC CRT

命令 i99-BASIC -

機 能 PNG形式の画像ファイルを読み込み、サーフェイスを作成します。

書 式 RPIMGSFC CRT <サーフェイス番号>, <ファイル名>

<サーフェイス番号>

サーフェイス番号を1~15の範囲で指定します。

<ファイル名>

表示する画像ファイルのパスを指定します。

指定できるファイルはPNG形式です。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPIMGSFC CRT 2, "sample.png"

40 RPSET SRC, SFC, 2, 100, 100

50 RPPAINT

60 RPSFC DEL 1

70 RPSFC DEL 2

80 RPDEL CAO

90 END

行30で”sample.png”を読み込んだサーフェイスを番号2で作成します。

その後行40で番号2のサーフェイスをソースに設定し、行50で描画します。

Page 295: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

295

5.2.5 RPLINE

命令 i99-BASIC -

機 能 現在の座標から指定座標までパス(直線)を引きます。

書 式 RPLINE <X>, <Y>

<X>

終端のX座標を指定します。

<Y>

終端のY座標を指定します。

備考1 このコマンドを実行するとRPMOVE(→「5.2.6 RPMOVE」)と同様に、現在の座標が引

数に指定した座標になります。

備考2 引いたパスを描画するにはRPSTRK(→「5.2.24 RPSTRK」)、引いたパスの内側を塗り

つぶすにはRPFILL(→「5.2.3 RPFILL」)を使用します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 0, 0

40 RPLINE 100, 100

50 RPSTRK

60 RPSFC DEL 1

70 RPDEL CAO

80 END

行30の実行後、行40を実行することで(0,0)から(100,100)へパスを引きます。

その後、行50によってパスを描画します。

5.2.6 RPMOVE

命令 i99-BASIC -

機 能 始点を指定の座標に移動します。

書 式 RPMOVE <X>, <Y>

<X>

移動先のX座標を指定します。

<Y>

移動先のY座標を指定します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 200, 200

40 RPSHWTXT "200, 200から出力"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30の実行後、行40を実行することで(200,200)に”200,200から出力”という文字列を

描画します。

Page 296: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

296

5.2.7 RPPAINT

命令 i99-BASIC -

機 能 RPSET SRC,SFCにより設定されたソースの内容を描画します。

書 式 RPPAINT

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPIMGSFC CRT 2, "sample.png"

40 RPSET SRC, SFC, 2, 100, 100

50 RPPAINT

60 RPSFC DEL 1

70 RPSFC DEL 2

80 RPDEL CAO

90 END

行40で設定されたソースを行50で描画します。

5.2.8 RPPAINTA

命令 i99-BASIC -

機 能 RPSET SRC,SFCにより設定されたソースの内容を透明度付きで描画します。

書 式 RPPAINTA <透明度>

<透明度>

透明度を0(完全に透明)から1(完全に不透明)までの小数で指定します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPIMGSFC CRT 2, "sample.png"

40 RPSET SRC, SFC, 2, 100, 100

50 RPPAINTA 0.5

60 RPSFC DEL 1

70 RPSFC DEL 2

80 RPDEL CAO

90 END

行40で設定されたソースを行50にて透明度0.5(50%)に設定し描画します。

Page 297: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

297

5.2.9 RPPDF SFC

命令 i99-BASIC -

機 能 PDF形式のサーフェイスを作成します。

書 式 RPPDF SFC <サーフェイス番号>, <ファイル名>, <サーフェイスの幅>, <サーフェイス

の高さ> <サーフェイス番号>

サーフェイス番号を1~15の範囲で指定します。

<ファイル名>

作成するPDFファイルの名前を指定します。

<サーフェイスの幅>

サーフェイスの幅を指定します。

<サーフェイスの高さ>

サーフェイスの高さを指定します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSHWTXT "テスト"

40 RPSFC DEL 1

50 RPDEL CAO

60 END

行10で幅1000,高さ700の”test.pdf”という名前のPDFをサーフェイス番号1で作成し

ます。

Page 298: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

298

5.2.10 RPRCTG

命令 i99-BASIC -

機 能 四角形のパスを引きます。

書 式 RPRCTG <X>, <Y>, <幅>, <高さ>

<X>

四角形の原点(左上)のX座標を指定します。

<Y>

四角形の原点(左上)のY座標を指定します。

<幅>

四角形の幅を指定します。

<高さ>

四角形の高さを指定します。

備 考 引いたパスを描画するにはRPSTRK(→「5.2.24 RPSTRK」)、引いたパスの内側を塗り

つぶすにはRPFILL(→「5.2.3 RPFILL」)を使用します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPRCTG 100, 100, 100, 100

40 RPSTRK

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30で(100,100)に幅100,高さ100の四角形のパスを引きます。

その後、行40でパスを描画します。

Page 299: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

299

5.2.11 RPROTATE

命令 i99-BASIC -

機 能 指定した角度だけ出力文字列または画像を回転します。

書 式 RPROTATE <角度>

<角度>

出力文字列または画像を回転させる角度[°]を指定します。

使用例1 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPROTATE 90

40 RPSHWTXT "90度回転"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30の実行後、行40の実行によりテキストが90°回転した状態で描画されます。

使用例2 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPROTATE 90

40 RPIMGSFC CRT 2, "sample.png"

50 RPSET SRC, SFC, 2, 100, 100

60 RPPAINT

70 RPSFC DEL 1

80 RPSFC DEL 2

90 RPDEL CAO

100 END

行30の実行後、行60の実行により画像が90°回転した状態で描画されます。

Page 300: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

300

5.2.12 RPSET FONTF

命令 i99-BASIC -

機 能 フォントの選択と、そのフォントの傾きと太さを指定します。

書 式 RPSET FONTF <フォント>, <傾き>, <太さ>

<フォント>

表示する文字列のフォントを数値で指定します。

詳細については@FONT(→「4.2.1 @FONT = “文字列”」)の項目を参照してくださ

い。

<傾き>

傾きを以下の値で指定します。

0:標準

1:イタリック

2:斜体

<太さ>

太さを以下の値で指定します。

0:標準

1:ボールド

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET FONTF 31, 0, 1

40 RPSHWTXT "VL Pゴシック"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30でフォントをVL Pゴシック、傾きを標準、太さをボールドに設定します。

Page 301: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

301

5.2.13 RPSET FONTS

命令 i99-BASIC -

機 能 フォントのサイズを指定します。

書 式 RPSET FONTS <フォントサイズ>

<フォントサイズ>

フォントサイズを指定します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET FONTS 20

40 RPSHWTXT "サイズ20"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30でフォントサイズを20に設定します。

5.2.14 RPSET LINE, CAP

命令 i99-BASIC -

機 能 線端の種類を指定します。

書 式 RPSET LINE, CAP, <線端>

<線端>

線分の端の形を以下の値で指定します。

0:そのまま描画する

1:線端を丸く描画する

2:線端を線幅の半分だけはみ出して描画する

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET LINE, WIDTH, 10

40 RPSET LINE, CAP, 1

50 RPMOVE 0, 0

60 RPLINE 100, 100

70 RPSTRK

80 RPSFC DEL 1

90 RPDEL CAO

100 END

行40で線端の種類を1に設定します。

Page 302: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

302

5.2.15 RPSET LINE, JOIN

命令 i99-BASIC -

機 能 線分の接続の種類を指定します。

書 式 RPSET LINE, JOIN, <種類>

<種類>

線分の種類を以下の値で指定します。

0:接続部分をとがらせる

1:接続部分を丸くする

2:接続部分のとがった部分をカットしたような形にする

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET LINE, WIDTH, 10

40 RPSET LINE, JOIN, 1

50 RPRCTG 100, 100, 100, 100

60 RPSTRK

70 RPSFC DEL 1

80 RPDEL CAO

90 END

行40で線分の接続の種類を1に設定します。

5.2.16 RPSET LINE, WIDTH

命令 i99-BASIC -

機 能 線分の太さを指定します。

書 式 RPSET LINE, WIDTH, <線分の太さ>

<線分の太さ>

線分の太さを指定します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET LINE, WIDTH, 10

40 RPSET LINE, CAP, 1

50 RPMOVE 0, 0

60 RPLINE 100, 100

70 RPSTRK

80 RPSFC DEL 1

90 RPDEL CAO

100 END

行30で線分の太さを10に設定します。

Page 303: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

303

5.2.17 RPSET LINESPC

命令 i99-BASIC -

機 能 行間のサイズを指定します。

書 式 RPSET LINESPC <モード>[, <サイズ>]

<モード>

行間指定のモードを"FONT"か"POINT"で指定します。

<サイズ>

モードが"FONT" : 行間の行数を指定します。

モードが"POINT" : 行間のサイズを指定します。

省略した場合は1になります。

使用例1 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET FONTS 20

40 RPSET LINESPC "FONT", 1

50 RPSHWTXT "テスト1"+CHR$(10)+"テスト2"

60 RPSFC DEL 1

70 RPDEL CAO

80 END

行40で行間を1行に設定します。

使用例2 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET FONTS 20

40 RPSET LINESPC "POINT", 20

50 RPSHWTXT "テスト1"+CHR$(10)+"テスト2"

60 RPSFC DEL 1

70 RPDEL CAO

80 END

行40で行間を20ピクセルに設定します。

Page 304: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

304

5.2.18 RPSET SRC, RGB

命令 i99-BASIC -

機 能 色を指定します。

書 式 RPSET SRC, RGB, <赤>, <緑>, <青>

<赤>

赤を指定します。

<緑>

緑を指定します。

<青>

青を指定します。

備 考 赤、緑、青に指定する1以上の数値はすべて1とみなされます。

そのため設定できる色は黒、青、赤、紫、緑、シアン、黄、白の8色です。

使用例1 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET SRC, RGB, 1, 0, 0

40 RPSHWTXT "赤"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30で出力する色を赤に設定します。

その後行40で赤のテキストを描画します。

使用例2 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET SRC, RGB, 1, 0, 1

40 RPMOVE 0, 0

50 RPLINE 100, 100

60 RPSTRK

70 RPSFC DEL 1

80 RPDEL CAO

90 END

行30で出力する色を紫に設定します。

その後行50、60で紫の線を描画します。

Page 305: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

305

5.2.19 RPSET SRC, RGBA

命令 i99-BASIC -

機 能 透明度を持った色を指定します。

書 式 RPSET SRC, RGBA, <赤>, <緑>, <青>, <透明度>

<赤>

赤を指定します。

<緑>

緑を指定します。

<青>

青を指定します。

<透明度>

透明度を0(完全に透明)から1(完全に不透明)までの小数で指定します。

備 考 赤、緑、青に指定する1以上の数値はすべて1とみなされます。

そのため設定できる色は黒、青、赤、紫、緑、シアン、黄、白の8色です。

使用例1 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET SRC, RGBA, 1, 0, 0, 0.5

40 RPSHWTXT "半透明赤"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行30で出力する色を透明度0.5(50%)の赤に設定します。

使用例2 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSET SRC, RGBA, 1, 0, 1, 0.5

40 RPMOVE 0, 0

50 RPLINE 100, 100

60 RPSTRK

70 RPSFC DEL 1

80 RPDEL CAO

90 END

行30で出力する色を透明度0.5(50%)の紫に設定します。

Page 306: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

306

5.2.20 RPSET SRC, SFC

命令 i99-BASIC -

機 能 サーフェイスをソースとして設定します。

書 式 RPSET SRC, SFC, <サーフェイス番号>, <X>, <Y>

<サーフェイス番号>

サーフェイス番号を指定します。

<X>

サーフェイスを描画する原点のX座標を指定します。

<Y>

サーフェイスを描画する原点のY座標を指定します。

備 考 ソースとして設定したサーフェイスを描画するにはRPPAINT(→「5.2.7 RPPAINT」)

かRPPAINTA(→「5.2.8 RPPAINTA」)を使用します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPIMGSFC CRT 2, "sample.png"

40 RPSET SRC, SFC, 2, 100, 100

50 RPPAINT

60 RPSFC DEL 1

70 RPSFC DEL 2

80 RPDEL CAO

90 END

行40で番号2のサーフェイスを(100,100)に描画するようソースに設定します。

5.2.21 RPSFC DEL

命令 i99-BASIC -

機 能 指定サーフェイスを削除します。

書 式 RPSFC DEL <サーフェイス番号>

<サーフェイス番号>

削除するサーフェイス番号を指定します。

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSHWTXT "テスト"

40 RPSFC DEL 1

50 RPDEL CAO

60 END

行40で番号1のサーフェイスを削除します。

Page 307: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

307

5.2.22 RPSHWPAGE

命令 i99-BASIC -

機 能 現在のページを書き出し、クリアします。

複数ページの文書を作成する際に使用します。

書 式 RPSHWPAGE

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPSHWTXT "1ページ"

40 RPSHWPAGE

50 RPSHWTXT "2ページ"

60 RPSFC DEL 1

70 RPDEL CAO

80 END

行40の実行で改ページを行い、行50で2ページ目に文字列を描画します。

5.2.23 RPSHWTXT

命令 i99-BASIC -

機 能 文字列を描画します。

書 式 RPSHWTXT <文字列>[, <オプション>]

<文字列>

描画する文字列を指定します。

<オプション>

"RIGHT"を指定すると、文字列を右詰で描画します。

※ タブ(\t)があると、スペース8個に変換されます。

※ 改行(\n)があると、自動的に次行の先頭へ移動します。

使用例1 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 200, 200

40 RPSHWTXT "左詰"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行40で文字列”左詰”を描画します。

使用例2 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 200, 200

40 RPSHWTXT "右詰", "RIGHT"

50 RPSFC DEL 1

60 RPDEL CAO

70 END

行40で文字列”右詰”を右詰で描画します。

Page 308: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

308

5.2.24 RPSTRK

命令 i99-BASIC -

機 能 パスを描画します。描画後は、そのパスをクリアします。

書 式 RPSTRK

使用例 10 RPPDF SFC 1, "test.pdf", 1000, 700

20 RPCRT 1

30 RPMOVE 0, 0

40 RPLINE 100, 100

50 RPSTRK

60 RPSFC DEL 1

70 RPDEL CAO

80 END

行40で引かれたパスを行50で描画します。

Page 309: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第6章 データベース

i99-BASICで使用できるデータベースコマンドの使い方について記載します。

データベースの命令は、「i99-REAL」からは使用できません。

6.1 コマンド一覧

名前 内容

データベースに関する関数・命令

@DBINFO = "文字列" DBOPENコマンドで用いる環境変数です。

データベース接続情報を設定する際に使用します。

@DBINFO 環境変数@DBINFOに設定された値(データベース名)を返します。

DBOPEN データベース上のテーブルを開きます。

DBCLOSE 指定したファイル番号のテーブルを閉じます。

DBEOF テーブルの終了コードを調べます。

DBLOC テーブル内の現在位置(何行目)を得ます。

DBLOF テーブルの大きさ(行数)を得ます。

DBWHERE テーブル内のデータを絞り込みます。

DBORDER テーブル内のデータを並び替えます。

DBFIELD テーブル内の列データに指定した変数を割り当てます。

DBGET テーブル内のデータをDBFIELDで割り当てた変数へ読み込みます。

DBPUT 変数のデータをテーブルへ書き込みます。

DBTRANS トランザクションを処理します。

DBSETOPT データベース接続時のオプションを設定します。

- - Interface Corporation

309

Page 310: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

310

6.2 データベースに関する関数・命令

6.2.1 @DBINFO = “文字列”

環境変数 i99-BASIC -

機 能 DBOPENコマンドで用いる環境変数です。

データベース接続情報を設定する際に使用します。

書 式 @DBINFO="<データベース名>, <ユーザ名>, <パスワード>"

<データベース名>

ODBCで使用するデータソース名、もしくはOCIで接続するデータベース名を255文字以内

で指定します。

<ユーザ名>

データベースを使用するユーザ名を255文字以内で指定します。

<パスワード>

指定するデータベースのユーザ名に対応するパスワードを255文字以内で指定します。

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

環境変数@DBINFOに <データベース名> DATABASE <ユーザ名> USER <パスワード> PASSWORD

を設定します。

設定した環境変数@DBINFOは、例のようにDBOPENの引数として使用します。

6.2.2 @DBINFO

環境変数 i99-BASIC -

機 能 環境変数@DBINFOに設定された値(データベース名)を返します。

書 式 @DBINFO

備 考 セキュリティ保持のため、ユーザ名とパスワードは返しません。

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

PRINT @DBINFO

環境変数@DBINFOの設定値を表示します。

Page 311: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

6.2.3 DBOPEN

命令 i99-BASIC -

機 能 データベース上のテーブルを開きます。

書 式 DBOPEN @DBINFO, <テーブル名> AS # <ファイル番号>

指定されたテーブルを開きます。

DBFIELD, DBLOFコマンドでデータを取得する際に、指定されたテーブルのSELECT文が実

行されます。

DBOPEN @DBINFO, "SQL:<SQL文>" AS # <ファイル番号>

指定されたSQL文を実行します。

<テーブル名>

開くテーブル名を指定します。

<ファイル番号>

テーブルに関連付けるファイル番号を1~15の範囲で指定します。

以降、テーブル制御はこの<ファイル番号>を指定して行います。

TABLE1

TABLE2

DATABASE

#1

#2

<SQL文>

実行するSQL文を指定します。

注 意 SQL文中で文字列を扱う場合、シングルクォーテーションで括る必要があります。

大きなデータベースを扱う際は、データを取得する前にDBWHEREで範囲を絞り込んでくださ

い。

使用例1 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

データベースDATABASEのテーブルTABLE1を開きます。

使用例2 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"SQL:SELECT * FROM TABLE2" AS #2

データベースDATABASEのテーブルTABLE2を開きます。

- - Interface Corporation

311

Page 312: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

312

6.2.4 DBCLOSE

命令 i99-BASIC -

機 能 指定したファイル番号のテーブルを閉じます。

書 式 DBCLOSE [#<ファイル番号>[, #<ファイル番号>[,…]]]

<ファイル番号>

閉じるテーブルのファイル番号を指定します。

省略された場合、オープン済みのテーブルをすべて閉じます。

使用例1 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBOPEN @DBINFO,"TABLE2" AS #2

DBCLOSE

オープンしているすべてのテーブルをクローズします。

使用例2 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBOPEN @DBINFO,"TABLE2" AS #2

DBCLOSE #1, #2

ファイル番号1,2のテーブルをクローズします。

使用例3 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBOPEN @DBINFO,"TABLE2" AS #2

DBCLOSE #1

ファイル番号1のテーブルをクローズします。

6.2.5 DBEOF

関数 i99-BASIC -

機 能 テーブルの終了コードを調べます。

テーブルの終端の場合はTRUEが、終端ではない場合はFALSEが返ります。

書 式 DBEOF(<ファイル番号>)

<ファイル番号>

終了コードを調べるテーブルのファイル番号を指定します。

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

IF DBEOF(1)=TRUE THEN PRINT " 終行です"

ファイル番号1のテーブルが終端の場合に「 終行です」と表示します。

Page 313: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

6.2.6 DBLOC

関数 i99-BASIC -

機 能 テーブル内の現在位置(何行目)を得ます。

書 式 DBLOC(<ファイル番号>)

<ファイル番号>

テーブル内の現在位置(何行目)を取得するテーブルのファイル番号を指定します。

DBGETでデータを取得する行が得られます。

TABLE1

STAF_ID EXT …100224 100 …100439 101 …100411 102 … ←現在位置(行数)を得ます

… … …

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBFIELD 1, “STAF_ID” AS ID$

NOWROW=DBLOC(1)

ファイル番号1のテーブルの現在位置を取得します。

6.2.7 DBLOF

関数 i99-BASIC -

機 能 テーブルの大きさ(行数)を得ます。

DBOPEN, DBWHERE, DBORDER実行後に初めて実行された場合、データ取得のSQL文が実行され

ます。

書 式 DBLOF(<ファイル番号>)

<ファイル番号>

大きさ(行数)を得るテーブルのファイル番号を指定します。

TABLE1

STAF_ID EXT …100224 100 …100439 101 …100411 102 …

テーブルの行数を得ます。

… … …

エラー!

注 意 大きなデータベースを扱う際は、データを取得する前にDBWHEREで範囲を絞り込んでくださ

い。

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

MAXROW= DBLOF(1)

- - Interface Corporation

313

Page 314: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス ファイル番号1のテーブルの行数を取得します。

6.2.8 DBWHERE

命令 i99-BASIC -

機 能 テーブル内のデータを絞り込みます。

条件を複数個指定するか、DBWHEREを複数回実行すると、絞り込み条件を追加します。

書 式 DBWHERE #<ファイル番号>, <条件>[, <条件>[,…]]

<ファイル番号>

データを絞り込むテーブルのファイル番号を指定します。

<条件>

絞り込み条件を指定します。指定方法はSQL(Oracle)に準拠します。

TABLE1

STAF_ID EXT …100224 100 … ←指定の条件で絞り込みます。

100439 101 …100411 102 …

… … …

注 意 DBFIELD, DBPUTよりも先に実行してください。

条件文中で文字列を扱う場合、シングルクォーテーションで括る必要があります。

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBWHERE #1, "STAF_ID='100224'"

ファイル番号1のテーブルをSTAF_ID=’100224’の条件で絞り込みます。

6.2.9 DBORDER

命令 i99-BASIC -

機 能 テーブル内のデータを並び替えます。

DBORDERを複数回実行すると、並び替え条件を追加します。

書 式 DBORDER #<ファイル番号>, <列名>[, <並べ方>]

<ファイル番号>

データを並び替えるテーブルのファイル番号を指定します。

<列名>

並び替える列名を指定します。列名の指定順に並び替えます。

<並べ方>

昇順か降順かを指定します。

0:昇順(デフォルト)

1:降順

注 意 DBFIELD, DBPUTよりも先に実行してください。

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBORDER #1, "STAF_ID", 0

Interface Corporation - -

314

Page 315: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

315

ファイル番号1のテーブルをSTAF_ID列が昇順になるように並べ替えます。

Page 316: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

6.2.10 DBFIELD

命令 i99-BASIC -

機 能 テーブル内の列データに指定した変数を割り当てます。

データの参照はDBFIELDで割り当てた変数を使用します。

DBOPEN, DBWHERE, DBORDER実行後に初めて実行された場合、データ取得のSQL文が実行され

ます。

書 式 DBFIELD #<ファイル番号>, <列名> AS <変数名>[, <列名> AS <変数名>[,…]]

<ファイル番号>

データを読み込むテーブルのファイル番号を指定します。

<列名>

データを読み込む列名を指定します。

<変数名>

データを格納する変数の名前を指定します

TABLE1

STAF_ID STAF_NAME …100224 ○○ …100439 △△ …100441 ×× …

… … …

←列を指定します

使用例 @DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBFIELD #1, "STAF_NAME" AS STAF_NAME$

ファイル番号1のテーブルにあるSTAF_NAME列にSTAF_NAME$を割り当てます。

Interface Corporation - -

316

Page 317: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

6.2.11 DBGET

命令 i99-BASIC -

機 能 テーブル内のデータをDBFIELDで割り当てた変数へ読み込みます。

書 式 DBGET #<ファイル番号>

<ファイル番号>

データを読み込むテーブルのファイル番号を指定します。

DBGETを行うごとに、DBFIELDで割り当てた変数へデータが入ります。

TABLE1

STAF_ID STAF_NAME …100224 ○○ …100439 △△ …100441 ×× …

… … …

←元の行

←DBGET 後は次の行へ

備 考 テーブルから読み込んだデータはDBFIELDで指定した変数で参照できます。

注 意 テーブルにはあらかじめDBFIELDで変数を割り当ててください。

DBFIELDされていない状態でDBGETを実行されてもエラーを返しません。

使用例 @DBINFO = "DATABASE,USER,PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBFIELD #1, "STAF_NAME" AS STAF_NAME$

DBGET #1

PRINT STAF_NAME$

DBGET #1

PRINT STAF_NAME$

ファイル番号1のテーブルにあるSTAF_NAME列のデータを、DBGETするごとに先頭から順に

STAF_NAME$へ取得します。

- - Interface Corporation

317

Page 318: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

6.2.12 DBPUT

命令 i99-BASIC -

機 能 変数のデータをテーブルへ書き込みます。

データを更新したい場合は、あらかじめDBWHEREでデータを絞り込みます。

DBWHEREで絞込みを行わない場合は、 終行へデータを追加します。

書 式 DBPUT #<ファイル番号>, <変数名> AS <列名>[, <変数名> AS <列名> [,…]]

<ファイル番号>

データを書き込むテーブルのファイル番号を指定します。

<変数名>

書き込むデータが格納されている文字型変数の名前を指定します。

<列名>

データを書き込む列名を指定します。

TABLE1

STAF_ID STAF_NAME …100224 TEST …100439 △△ …100441 ×× …

… … …

←1 行のみ書き込みます

注 意 代入する値が文字列の場合、シングルクォーテーションで括る必要があります。

使用例1 @DBINFO = "DATABASE,USER,PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBWHERE #1, "STAF_ID ='100224'"

STAF_NAME$=”’TEST’”

DBPUT #1, STAF_NAME$ AS "STAF_NAME"

ファイル番号1のテーブルにあるSTAF_NAME列で、STAF_IDが100224に一致する行のデータを

TESTに更新します。

使用例2 @DBINFO = "DATABASE,USER,PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

STAF_NAME$=”’TEST’”

DBPUT #1, STAF_NAME$ AS "STAF_NAME"

ファイル番号1のテーブルにあるSTAF_NAME列の 終行にTESTを追加します。

使用例3 @DBINFO = "DATABASE,USER,PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

STAF_NAME$ = "'TEST'"

STAF_ID$ = "'100999'"

DBPUT #1, STAF_NAME$ AS "STAF_NAME", STAF_ID$ AS "STAF_ID"

DBCLOSE #1

ファイル番号1のテーブルにある 終行のSTAF_NAME列にTESTを、STAF_ID列に100999を追加

します。

Interface Corporation - -

318

Page 319: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

319

6.2.13 DBTRANS

関数 i99-BASIC -

機 能 トランザクションを処理します。

書 式 DBTRANS BEGIN #<ファイル番号>

トランザクションを開始します。

すでにトランザクションを開始している場合、確定後に次のトランザクションへ移り

ます。

DBTRANS COMMIT #<ファイル番号>

トランザクションを確定します。

DBTRANS ROLLBACK #<ファイル番号>

トランザクションをキャンセル(巻き戻し)します。

<ファイル番号>

処理するテーブルのファイル番号を指定します。

注 意 SQL Serverには対応していません(FreeTDSの制限)。

使用例1 @DBINFO = "DATABASE,USER,PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBTRANS BEGIN #1

STAF_NAME$ = "'TEST'"

STAF_ID$ = "'100999'"

DBPUT #1, STAF_NAME$ AS "STAF_NAME", STAF_ID$ AS "STAF_ID"

DBTRANS COMMIT #1

DBCLOSE #1

ファイル番号1のテーブルでトランザクションを処理します。

テーブルへの変更を確定します。

使用例2 @DBINFO = "DATABASE,USER,PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

DBTRANS BEGIN #1

STAF_NAME$ = "'TEST'"

STAF_ID$ = "'100999'"

DBPUT #1, STAF_NAME$ AS "STAF_NAME", STAF_ID$ AS "STAF_ID"

DBTRANS ROLLBACK #1

DBCLOSE #1

ファイル番号1のテーブルでトランザクションを処理します。

テーブルへの変更を破棄します。

Page 320: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

320

6.2.14 DBSETOPT

命令 i99-BASIC -

機 能 データベース接続時のオプションを設定します。 書 式 DBSETOPT API ODBC

データベースへの接続にODBCを利用します(デフォルト)。

別途ODBCドライバのインストールや環境設定が必要です。

DBSETOPT API OCI

データベースへの接続にOCIを利用します。

別途OCIライブラリのインストールや環境設定が必要です。

注 意 Ver.2.20以前は、OCIでの接続しか対応していませんでしたが、

Ver.3.00以降は、ODBCでの接続がデフォルトで利用されます。

使用例 DBSETOPT API ODBC

@DBINFO = "DATABASE, USER, PASSWORD"

DBOPEN @DBINFO,"TABLE1" AS #1

@DBINFOで指定したデータベースへODBCで接続します。

Page 321: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

321

第7章 サンプルプログラム

i99-BASICのサンプルプログラムについて記載します。

7.1 サンプルプログラム

# ファイル名 内容

繰り返し・条件分岐

1 DO_LOOP.BAS 命令を繰り返して実行します。

ファイル・フォルダ

2 CHAIN.BAS 別ファイル上のプログラムへ実行を移します。

3 CHAIN_SLAVE.BAS CHAIN.BAS用のサンプルプログラムです。

4 INCLUDE.BAS 別ファイルのプログラムを参照できるようにします。

5 MY_LIBRARY.BAS INCLUDE.BAS用のサンプルプログラムです。

6 OPEN.BAS ファイルをオープンします。

サブルーチン

7 FUNCTION.BAS 関数を定義して実行します。

8 GOSUB.BAS サブルーチンを呼び出して実行します。

9 ON_ERROR_GOSUB.BAS エラー発生時に分岐するサブルーチンを実行します。

10 ON_KEY_GOSUB.BAS ファンクションキーで分岐するサブルーチンを実行します。

11 ON_STOP_GOSUB.BAS Pause/Ctrl+Cキーで分岐するサブルーチンを実行します。

12 ON_TIME_GOSUB.BAS 指定時間でサブルーチンを実行します。

13 ON_TIMER_GOSUB.BAS 指定間隔でサブルーチンを実行します。

スレッド

14 THREAD.BAS 2つのワーカースレッドを作って動かします。

グラフィック

15 DRAW.BAS コンソール画面に図形を描画します。

Linux連携

16 SHMLOW.BAS

shmlow.c

共有メモリを作成して、Cアプリとデータ共有します。

ネットワーク(i99-BASIC専用)

17 NWCONFBUF.BAS ネットワーク共有バッファを設定します。

18 NWRECV.BAS ネットワークからデータを受信します。

19 NWSEND.BAS ネットワークからデータを送信します。

20 ON_NW_GOSUB.BAS ネットワーク受信で分岐するサブルーチンを実行します。

ネットワーク(ソケット互換)

21 NWMAILGET.BAS メールサーバからメールを取得します。

22 ON_SOCKET_GOSUB.BAS ソケット通信の受信で分岐するサブルーチンを実行します。

23 TCP_CLIENT.BAS TCPサーバに接続し、データを送受信します。

24 TCP_SERVER.BAS TCPサーバを立ち上げ、接続してきたクライアントとデータを送

受信します。

25 TCP_SERVER2.BAS TCPサーバを立ち上げ、接続してきた複数のクライアントとデー

タを送受信します。

26 UDP_MCAST_RECEIVE.BAS マルチキャストデータを受信します。

27 UDP_MCAST_SEND.BAS マルチキャストデータを送信します。

28 UDP_RECEIVE.BAS ソケットからデータを受信します。

29 UDP_SEND.BAS ソケットからデータを送信します。

GUI

30 GUG.BAS 画像領域に図形を描画します。

Page 322: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

322

# ファイル名 内容

31 GUGET.BAS GUI部品から入力値や状態を取得します。

32 GUGHIST.BAS GUIの描画領域に棒グラフを描画します。

33 GUGWAVE.BAS GUIの描画領域に波形グラフを描画します。

34 GUUPD.BAS GUI部品の表示内容を入力値で更新します。

35 ON_GUEVT.BAS GUI部品クリック時のイベント処理を実行します。

帳票作成

36 RPPDF.BAS 帳票を作成します。

データベース

37 DB_DELETE.BAS データベースからデータを削除します。

38 DB_INSERT.BAS データベースへデータを追加します。

39 DB_SELECT.BAS データベースからデータを抽出します。

40 DB_UPDATE.BAS データベースのデータを修正します。

Page 323: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

323

第8章 エラーコードリファレンス

i99-BASIC使用時のエラーコードリファレンスについて記載します。

8.1 エラーコードリファレンス

値 表示エラー(日本語) 表示エラー(英語) 対策・確認

10

ファイルのオープンに失

敗しました

Failed to open file ファイルのサイズ、ファイルの操作の処理

コードを確認してください。

(指定プログラムファイル名のサイズが既定

値以上の時も発生します。)

11 メモリの確保に失敗しま

した

Failed to find

memory

i99-BASICを終了し、再起動してください。

12 ファイルが存在しません No file name ファイル名を確認してください。

13 指定された行番号が存在

しません

Line number not

found

プログラム中の行番号を確認してください。

14 値が許容範囲外です Value is out of

range

入力される値と許容範囲を確認してください。

15 命令が書式通りになって

いません

Syntax error 各命令を書式通り正しく記述してください。

16

指定したデバイス番号の

ファイルが使用できない

状態です

Invalid device

number

使用しているデバイス番号の値を確認してく

ださい。

17 #<番号>を使用するコマ

ンド使用中です

Device error #<番号>がすでに使われていています。CLOSE

にしてください。

18 OSのコマンドでエラー

が発生しました

Error in operating

system command

OSのコマンドの使い方を確認してください。

19 引数が文字列ではありま

せん

Argument must be a

string

引数が文字列かどうか確認してください。

20 使用する変数の型が一致

していません

Type mismatch 代入する際、命令や関数を使用するデータの

型を確認してください。

21 引数が配列変数ではあり

ません

Argument is not an

array name

引数が配列の変数かどうか確認してくださ

い。

22 GOSUB~RETURNが正しく

構成されていません

RETURN without

GOSUB

プログラムの流れに沿って、GOSUBと RETURN

の対応を確認してください。

23

読むべきデータが無い Out of data INPUT文でファイルからデータを読み取る場

合、読み取る個数とファイルから供給される

個数が合っているか確認してください。

24 演算結果や入力値が許容

範囲を超えました

Overflow データの型と取得する値を確認してくださ

い。

25 定義されていない関数を

使用しています

Undefined function 関数が定義されているか確認してください。

26 定義されていないラベル

を参照しました

Undefined label ラベルが定義されているか確認してください。

27 0による除算が実行され

ました

Divide by zero 数値を0で割らないようにしてください。

28

宣言済みの変数が再び宣

言されました

Variable cannot be

redimensioned

宣言されていない変数名を使用するか、宣言

済みの変数をERASEしてから宣言しなおして

ください。

30 命令にGOTO, GOSUBのい ON without GOTO or 命令文にGOTO, GOSUBがあるか確認してくだ

Page 324: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

324

値 表示エラー(日本語) 表示エラー(英語) 対策・確認

ずれもありません GOSUB さい。

31 引数の値が許容範囲を超

えています

Argument out of

range

命令・関数の使い方と値を確認してください。

32

変更箇所が多すぎて、処

理を続行できません

Can't continue プログラム停止中に、変更したプログラムの

修正箇所が多いため、再開できません。 初

から実行(RUN)し直してください。

33

BASIC内部で異常が発生

しました

Internal error BASIC内部で意図しない異常が発生しました。

動作を保証できないので、BASICを再起動して

ください。

34 関数やラベルの重複を検

知しました

Duplicate label 関数名とラベル名が重複していないかどうか

確認してください。

35 ASSERT確認で異常を検

知しました

Assertion failed ASSERT文で条件式の結果が偽の際に呼ばれま

す。

36 本機能はサポートされて

いません

Not supported この命令・関数は使用できません。

37 デバイスが見つかりませ

Not Device 存在しないデバイスを使用しようとしていま

す。デバイスが存在するか確認してください。

38 引数の数が一致していま

せん

Wrong number of

arguments

命令もしくは関数に与える引数の数が一致さ

せてください。

39 配列の要素数が一致しま

せん

Failed to number of

array

配列の要素数の範囲内のインデックスを指定

してください。

40 配列のインデックスが重

複しています

Duplicate index of

array

同じインデックスを複数回指定しないでくだ

さい。

41

配列の左辺と右辺の要素

数が一致しません

Mismatch number of

left of array and

number of right of

array

左辺と右辺の配列の要素数を合わせてくださ

い。

42 そのエリアでは使用でき

ません

Can’t call in the

area

使用できるエリアをご確認ください。

43 命令や関数の使い方が間

違っています

Illegal function

call

文法上のミスが無いか再確認してください。

44 配列変数の添字の値が範

囲を外れています

Subscript out of

range

配列変数の要素数を超えた添え字を与えてな

いか確認してください。

45 指定動作が動作中です operation is

operating

デバイスもしくはスレッドが既に稼動中でな

いか確認してください。

46 指定動作が停止中です operation is

stopping

デバイスもしくはスレッドが既に停止中でな

いか確認してください。

48 強制停止が指示されまし

Force stop 利用者から処理の中断を指示されました。

49 スタックが不足していま

Out of stack space サブルーチンの多重呼び出し回数が多すぎな

いか確認してください。

10

00

GUI 部品が見つかりませ

Widget not found 存在しない部品に対して追加, 更新, 削除を

しようとしています。

操作対象の部品番号を確認してください。

10

01

指定したフォント名が使

用できません

Invalid font name @FONTで指定できるフォントの番号を指定し

てください。

10

02

指定した色が使用できま

せん

Invalid color @FONTで指定できる色の番号を指定してくだ

さい。

10

03

指定したウィンドウ番号

が使用できない状態です

Invalid window

number

指定できるウィンドウ番号を指定してくださ

い。

Page 325: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

325

値 表示エラー(日本語) 表示エラー(英語) 対策・確認

10

04

ウィンドウ番号の値が許

容範囲を超えています

Argument out of

window number

指定できる範囲のウィンドウ番号を指定して

ください。

10

05

部品番号の値が許容範囲

を超えています

Argument out of

part number

指定できる部品の部品番号を指定してくださ

い。

10

06

指定した部品名は使用で

きません

Invalid part name 指定できる部品名を指定してください。

10

07

指定したサーフェイス番

号が使用できない状態で

Invalid surface

number

指定できるサーフェイス番号を指定してくだ

さい。

11

00

データベースのアクセス

に失敗しました

Error of Database データベースへアクセスする際のパラメータ

の指定に誤りがあります。

以降に記載される詳細エラー内容を参考にエ

ラー行を確認してください。

Page 326: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

第9章 アスキーコード一覧

i99-BASICでのアスキーコードは下記になります。

コード 文字 コード 文字 コード 文字

32 64 @ 96 `

33 ! 65 A 97 a

34 " 66 B 98 b

35 # 67 C 99 c

36 $ 68 D 100 d

37 % 69 E 101 e

38 & 70 F 102 f

39 ‘ 71 G 103 g

40 ( 72 H 104 h

41 ) 73 I 105 i

42 * 74 J 106 j

43 + 75 K 107 k

44 , 76 L 108 l

45 - 77 M 109 m

46 . 78 N 110 n

47 / 79 O 111 o

48 0 80 P 112 p

49 1 81 Q 113 q

50 2 82 R 114 r

51 3 83 S 115 s

52 4 84 T 116 t

53 5 85 U 117 u

54 6 86 V 118 v

55 7 87 W 119 w

56 8 88 X 120 x

57 9 89 Y 121 y

58 : 90 Z 122 z

59 ; 91 [ 123 {

60 < 92 124 |

61 = 93 ] 125 }

62 > 94 ^ 126 ~

63 ? 95 _

Interface Corporation - -

326

Page 327: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

327

第10章 コマンドの制限事項

10.1 プログラム内で使用できないコマンド

プログラム内ではプログラムを操作する命令やi99-BASICの環境設定を行う命令は実行できません。

プログラム内で使用できないコマンド

AUTO BREAK CONFIG

CONT DELETE EDIT

FILEPASSWD GUARD ON/OFF HIDDEN ON/OFF

LIST LOAD NEW

RENUM RUN SAVE

SINGLETRACE SINGLETRACEOVER TRACE

WATCH TRON

10.2 プログラム内でのみ使用できるコマンド

直接コマンドでは複数行にわたる記述はできません。また、指定の行へジャンプする命令も使用で

きません。

プログラム内でのみ使用できるコマンド

DATA READ RESTORE

STOP DEFINE STRUCT~

END STRUCT

ENUM~END ENUM

LOCAL LOCAL BOOL LOCAL CONST

LOCAL CONST BOOL LOCAL ENUM~

END ENUM

LOCAL STRUCT

DO~LOOP DO~LOOP UNTIL DO~LOOP WHILE

DO UNTIL~LOOP DO WHILE~LOOP EXIT DO

EXIT FOR EXIT WHILE FOR~TO~STEP~NEXT

IF~THEN~ELSE~ SELECT CASE~

END SELECT

WHILE~WEND

INCLUDE (ラベル): CALL

DEF FN FUNCTION~

END FUNCTION

EXIT FUNCTION

GOSUB ON ERROR GOSUB ON ERROR GOTO

ON ERROR RESUME NEXT ON KEY GOSUB ON STOP GOSUB

ON TIME$ GOSUB ON TIMER GOSUB ON~GOSUB

ON~GOTO RESUME RETURN

SUB~END SUB EXIT SUB ON NW~GOSUB

ON GUEVT~GOSUB

Page 328: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

328

10.3 トレース実行で使用できないコマンド

トレース実行ではイベント処理はできません。

トレース実行で使用できないコマンド

ON KEY GOSUB ON STOP GOSUB ON TIME$ GOSUB

ON TIMER GOSUB ON NW~GOSUB ON GUEVT~GOSUB

Page 329: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

329

第11章 N88-BASICのコマンドとの互換性について

N88-BASICのコマンド機能に対する互換性は下記のようになります。

互換性の意味:

○ 高い機能互換性があります。

△ 引数の変更および別コマンドの利用で代用できます。

× 類似の機能は持ちません。

コマンド 互換性 備考

ABS ○

AKCNV$ × 非対応。

i99-BASICは、文字列をUTF8で扱っている為、1バイトの半角カナは

サポートしていません。

ASC ○

ATN ○

ATTR$ △ 書き込み禁止属性の確認のみ対応しています。

AUTO ○

BEEP △ 書式が一部異なります。周波数と発音時間の指定が必要です。

システム監視コマンドに分類されています。

例えば、以下のように記述します。

変更前:BEEP

変更後:BEEP 440, 1000 ‘ 440Hzのビープ音が1秒間鳴る

BLOAD × 非対応。

i99-BASICは、機械語ファイルを指定メモリに配置する機能は、セ

キュリティ上の理由からサポートしていません。

BSAVE × 非対応。

i99-BASICは、指定メモリ範囲を直接保存する機能は、セキュリテ

ィ上の理由からサポートしていません。

CALL △ N88-BASICでは、メモリ上の機械語サブルーチンを呼び出しますが、

セキュリティ上の理由からサポートしていません。

i99-BASICでは、SUB ~ END SUBで定義したサブルーチンの呼び出

しに使用するよう変更されております。

CDBL ○

CHAIN △ 別のプログラムに実行を移す機能のみサポートしています。

MERGEオプション、行番号、ALLオプションは非対応です。

CHR$ △ 引数に指定できるキャラクターコードは、ASCIIコード(0~127)

までです。

CINT ○

CIRCLE △ 書式が一部異なります。角度の指定は0~360の角度で指定できます。

相対座標、比率、タイルストリングは非対応です。

例えば、以下のように記述します。

変更前:CIRCLE (100, 100), 50, 2, 0, 3.14

変更後:CIRCLE (100, 100), 50, 2, 0, 180

CLEAR △ メモリレイアウト、スタック量、配列データ領域の大きさ設定は、

セキュリティ上の理由からサポートしていません。

i99-BASICは、これらは動作するOSに依存します。

CLOSE ○

CLS ○

COLOR △ 書式が一部異なります。前面色と背面色のみ対応します。

COLOR= × 非対応。

Page 330: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

330

コマンド 互換性 備考

COLOR@ × 非対応。

COMMON ○

COM ON/OFF/STOP × 非対応。

RS-232Cの制御は、IO系のコマンドの利用を検討ください。

CONSOLE △ ファンクションキー表示スイッチのみ対応します。

例えば、以下のように記述します。

変更前:CONSOLE ,,0 ‘ ファンクションキー表示なし

変更後:CONSOLE 0

CONT ○

COPY △ テキスト画面とグラフィック画面を重ね合わせて出力するモード

のみ対応します。

COS ○

CSNG ○

CSRLIN ○

CVI / CVS / CVD ○

DATA ○

DATE$ ○

DATE$ = "文字列" ○

DEF FN ○

DEFINT / DEFSNG / DEFDBL

/ DEFSTR

DEF SEG × 非対応。

i99-BASICは、セグメントを使用する環境では動作しません。

DEF USR × 非対応。

i99-BASICは、メモリアドレスを直接呼び出すような機能は、セキ

ュリティ上の利用からサポートしていません。

DELETE ○

DIM ○

DRAW × 非対応。

LINEなど他に該当するコマンドを利用ください。

DSKF △ ディスクの空き容量取得のみ対応しています。

DSKI$ × 非対応。

i99-BASICは、直接ディスクのセクタを読み書きする機能は、セキ

ュリティ上の理由からサポートしていません。

DSKO$ × 非対応。

i99-BASICは、直接ディスクのセクタを読み書きする機能は、セキ

ュリティ上の理由からサポートしていません。

EDIT ○

END ○

EOF ○

ERASE ○

ERL / ERR ○

ERROR ○

EXP ○

FIELD ○

FILES / LFILES △ LFILESは非対応。

FIX ○

FOR ~ TO ~ STEP ~

NEXT

△ NEXTに指定する変数は1つまで対応しています。

例えば、「NEXT I, J」は、「NEXT I」と「NEXT J」に分けて記述

ください。

FPOS × 非対応。

i99-BASICは、直接ディスクのセクタを読み書きする機能は、セキ

ュリティ上の理由からサポートしていません。

FRE × 非対応。

GET ○

Page 331: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

331

コマンド 互換性 備考

GET@ × 非対応。

GOSUB ○

GOTO / GO TO ○

HELP ON/OFF/STOP × 非対応。

i99-BASICの動作するコンピュータにはHELPキーが無い為、サポー

トしていません。

HEX$ ○

IF ~ THEN ~ ELSE / IF

~ GOTO ~ ELSE

△ IF ~ GOTO ~ ELSEは非対応。

GOTOの場合もTHENが必要です。

INKEY$ ○

INP × 非対応。

i99-BASICは、直接I/Oポートを読み書きする機能は、セキュリティ

上の理由からサポートしていません。

専用に用意されたIO系のコマンドを、ご利用ください。

INPUT ○

INPUT # ○

INPUT$ ○

INPUT WAIT × 非対応。

INSTR ○

INT ○

JIS$ × 非対応。i99-BASICは、文字列をUTF8で扱っている為、サポートし

ていません。

KACNV$ × 非対応。i99-BASICは、文字列をUTF8で扱っている為、サポートし

ていません。

KEXT$ × 非対応。i99-BASICは、文字列をUTF8で扱っている為、サポートし

ていません。

KEY ○

KEY LIST ○

KEY ON/OFF/STOP ○

KILL ○

KINPUT × INPUTにて日本語対応しているので、利用ください。

KINSTR × INSTRにて日本語対応しているので、利用ください。

KLEN × LENにて日本語対応しているので、利用ください。(文字単位にカウ

ントされます)

KMID$ × MID$にて日本語対応しているので、利用ください。

KNJ$ × 非対応。i99-BASICは、文字列をUTF8で扱っている為、サポートし

ていません。

KPLOAD × 非対応。

KTYPE × 非対応。i99-BASICは、文字列をUTF8で扱っている為、サポートし

ていません。

LEFT$ ○

LEN △ 文字数を返すように変更されています。

バイト数を得たい場合は、LENBを利用ください。

LET ○

LINE △ タイルストリングは非対応。

四角形はRECTANGLEにて対応しています。

LINE INPUT ○

LINE INPUT # ○

LINE INPUT WAIT × 非対応。

LIST / LLIST ○

LOAD △ Rオプションは非対応。

LOAD? × 非対応。

i99-BASICは、カセットテープの読み書きを、直接サポートしてい

ません。

LOC ○

Page 332: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

332

コマンド 互換性 備考

LOCATE △ カーソルスイッチは非対応。

LOF ○

LOG ○

LPOS × 非対応。

LPRINT ○ ページプリンタに対応する為、LPRINTでバッファに溜め込み、LPAGE

で印刷実行します。

例えば、以下のように記述します。

変更前:LPRINT “HELLO” : LPRINT “WORLD”

変更後:LPRINT “HELLO” : LPRINT “WORLD” : LPAGE

LPRINT USING △ 書式が一部異なります。¥は$にて対応ください。

例えば、以下のように記述します。

変更前:LPRINT USING “\\###”; 2013

変更後:LPRINT USING “$$###”; 2013

LSET / RSET ○

MAP × 非対応。

MERGE × プログラムの組み込みはINCLUDEの利用を検討ください。

MID$ = ○

MID$ ○

MKI$ / MKS$ / MKD$ ○

MON × 非対応。

MOTOR × 非対応。

i99-BASICは、カセットテープの制御を、直接サポートしていませ

ん。

NAME ○

NEW ○

NEW ON △ 状態指定スイッチの指定は非対応です。

「NEW ON」による再起動のみです。

OCT$ ○

ON COM GOSUB × 非対応。

RS-232Cの制御は、IO系のコマンドの利用を検討ください。

ON ERROR GOTO ○

ON ~ GOSUB / ON ~ GOTO ○

ON HELP GOSUB × 非対応。

i99-BASICの動作するコンピュータにはHELPキーが無い為、サポー

トしていません。

ON KEY GOSUB ○

ON PEN GOSUB × 非対応。

i99-BASICの動作するコンピュータにはライトペンの使用を、サ

ポートしていません。

ON STOP GOSUB ○

ON TIME$ GOSUB ○

OPEN ○

OPTION BASE × 非対応。

OUT × 非対応。

i99-BASICは、直接I/Oポートを読み書きする機能は、セキュリティ

上の理由からサポートしていません。

専用に用意されたIO系のコマンドを、ご利用ください。

PAINT × 非対応。

PEEK × 非対応。

i99-BASICは、直接メモリを読み書きする機能は、セキュリティ上

の理由からサポートしていません。

専用に用意されたIO系のコマンドを、ご利用ください。

PEN × 非対応。

i99-BASICの動作するコンピュータにはライトペンの使用を、サ

Page 333: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

333

コマンド 互換性 備考

ポートしていません。

PEN ON/OFF/STOP × 非対応。

i99-BASICの動作するコンピュータにはライトペンの使用を、サ

ポートしていません。

POINT × 非対応

POKE × 非対応。

i99-BASICは、直接メモリを読み書きする機能は、セキュリティ上

の理由からサポートしていません。

専用に用意されたIO系のコマンドを、ご利用ください。

POS ○

PRESET △ 相対座標は非対応。

PRINT ○

PRINT # ○

PRINT USING △ 書式が一部異なります。¥は$にて対応ください。

例えば、以下のように記述します。

変更前:PRINT USING “\\###”; 2013

変更後:PRINT USING “$$###”; 2013

PRINT # USING △ 書式が一部異なります。¥は$にて対応ください。

例えば、以下のように記述します。

変更前:PRINT #1, USING “\\###”; 2013

変更後:PRINT #1, USING “$$###”; 2013

PSET △ 相対座標は非対応。

PUT ○

PUT@ × 非対応。

RANDOMIZE ○

READ ○

REM, ‘ ○

RENUM ○

RESTORE ○

RESUME ○

RETURN △ 行番号は非対応です。必ずGOSUB呼び出し元に戻ります。

指定行番号へのジャンプは、GOTOの利用を検討ください。

RIGHT$ ○

RND ○

ROLL × 非対応。

RUN △ Rオプションは非対応。

SAVE ○ Pオプションは非対応。

SCREEN × 非対応。

SEARCH ○

SET △ 書き込み禁止属性の設定のみ対応。

SGN ○

SIN ○

SPACE$ ○

SPC ○

SQR ○

STOP ○

STOP ON/OFF/STOP ○

STR$ ○

STRING$ ○

SWAP ○

TAB ○

TAN ○

TERM × 非対応。

Page 334: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

334

コマンド 互換性 備考

TIME$ ○

TIME$ = "文字列" ○

TIME$ ON/OFF/STOP ○

TRON/TROFF ○

USR × 非対応。

i99-BASICは、メモリアドレスを直接呼び出すような機能は、セキ

ュリティ上の利用からサポートしていません。

VAL ○

VARPTR × 非対応。

i99-BASICは、直接メモリを読み書きする機能は、セキュリティ上

の理由からサポートしていません。

VIEW × 非対応。

WAIT × 非対応。

i99-BASICは、直接I/Oポートを読み書きする機能は、セキュリティ

上の理由からサポートしていません。

専用に用意されたIO系のコマンドを、ご利用ください。

WHILE ~ WEND ○

WIDTH ○

WIDTH LPRINT × 非対応。

WINDOW × 非対応。

WRITE ○

WRITE # ○

*(ラベル) △ 書式が一部異なります。「(ラベル):」という形式で記述ください。

Page 335: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

335

索引

(ラベル): 165

@DBINFO 307 @DBINFO = “文字列” 307 @FONT 242 @FONT = “文字列” 241 @POSI 245 @POSI = “文字列” 244 @SIZE 243 @SIZE = “文字列” 243 @TIP 246 @TIP = “文字列” 246

ABS 61 ARC 191 ASC 61 ASCB 62 ASSERT 201 ATN 62 ATTACH THREAD 187 ATTR$ 132 AUTO 31

BIN$ 62 BOOL 63 BREAK 32

CALL 165 CDBL 64 CDIM 118 CHAIN 132 CHDIR 133 CHR$ 64 CHRB$ 65 CINT 65 CIRCLE 192 CLEAR 65 CLNG 66

CLOCK 201 CLOSE 133 CLS 33 COLOR 33 COMMON 134 CONFIG 34 CONSOLE 36 CONST 66 CONST BOOL 66 CONT 36 CONTTRACE 36 COPY 37 COS 67 CSNG 67 CSRLIN 37 CVD 68 CVI 68 CVL 68 CVS 69

DATA 37 DATE$ 70 DATE$ = “文字列” 69 DATECALC$ 71 DATEDIFF 71 DATENUM 72 DAY 72 DBCLOSE 309 DBEOF 309 DBFIELD 312 DBGET 313 DBLOC 310 DBLOF 310 DBOPEN 308 DBORDER 311 DBPUT 314 DBSETOPT 316 DBTRANS 315 DBWHERE 311 DEF FN, FUNCTION~END FUNCTION 166 DEFBOL 72 DEFDBL 73

Page 336: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

336

DEFINE STRUCT~END STRUCT 73 DEFINT 74 DEFLNG 74 DEFSNG 74 DEFSTR 75 DELETE 38 DETACH THREAD 188 DIM 118 DIREXISTS 134 DO UNTIL~LOOP 125 DO WHILE~LOOP 126 DO~LOOP 124 DO~LOOP UNTIL 124 DO~LOOP WHILE 125 DRAWFILE 193 DRAWSTYLE 194 DRAWTEXT 195 DSKF 38

EDIT 39 END 39 ENUM~END ENUM 75 EOF 135 ERASE 120 ERL 39 ERM$ 40 ERR 40 ERROR 41 EXIT DO 126 EXIT FOR 127 EXIT FUNCTION 167 EXIT SUB 167 EXIT WHILE 127 EXP 76

FIELD 136 FILECMP 137 FILECOPY 137 FILEEXISTS 138 FILEPASSWD 42 FILES 139 FIND 140 FINPUT 140 FINPUT ALL 141 FIRSTDAY$ 76

FIX 76 FOR~TO~STEP~NEXT 128 FPRINT, FPRINT USING 142

GET 143 GOSUB 168 GOTO 169 GREP 144 GRP$ 77 GUADD CMB 247 GUADD RDO 248 GUADD SCR 249 GUADD TAB 250 GUADD TBL 251 GUARD ON/OFF 42 GUBTN 252 GUCHK 253 GUCMB 254 GUDEL 255 GUDSP 256 GUGARC 257 GUGCIRCLE 258 GUGCLS 259 GUGCOLOR 259 GUGDRAWFILE 260 GUGDRAWSTYLE 261 GUGDRAWTEXT 262 GUGET$ 263 GUGETMS 264 GUGLINE 265 GUGPLOT HISTGRAM 266 GUGPLOT PIE 268 GUGPRESET 270 GUGPSET 270 GUGRECTANGLE 271 GUGWAVE 272 GUIMG 274 GULBL 275 GUMOV 276 GUPIC 277 GURDO 278 GUSCALE 279 GUSHW 281 GUSWITCH 281 GUTAB 282

Page 337: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

337

GUTBL 283 GUTXA 284 GUTXT 285 GUUPD 286 GUWIN 287

HELP SHOW 43 HEX$ 77 HIBERNATE 43 HIDDEN ON/OFF 44 HOSTNAME$ 201 HOUR 78

IF~THEN~ELSE~END IF 129 INCLUDE 145 INFILE 146 INKEY$ 78 INPUT 147 INPUT$ 148 INSTR 79 INT 79

JUDGE$ 80

KEY 45 KEY LIST 45 KEY ON/OFF/STOP 170 KILL 149

LASTDAY$ 81 LCASE$ 81 LDIM 121 LEFT$ 82 LEFTB$ 82 LEN 83 LENB 83 LET 84 LINE 196 LINE FINPUT 150 LINE INPUT 150 LINFILE 151 LINSTR 85

LIST/LLIST 46 LOAD 47 LOC 152 LOCAL 85 LOCAL BOOL 86 LOCAL CONST 86 LOCAL CONST BOOL 87 LOCAL ENUM~END ENUM 87 LOCAL STRUCT 88 LOCATE 47 LOF 152 LOG 88 LPAGE 48 LPRINT , LPRINT USING 48 LSET 153 LTRIM$ 89

MID$ 90 MID$ = “文字列” 89 MIDB$ 92 MIDB$ = “文字列” 91 MINUTE 92 MKD$ 93 MKDIR 153 MKI$ 93 MKL$ 93 MKS$ 94 MONTH 94 MSGBOX 202

NAME 154 NEW 48 NW ON/OFF/STOP 213 NWACCEPT 221 NWADDMEMBERSHIP 228 NWARP$ 234 NWCLOSE 206 NWCLOSESOCK 220 NWCONFBUF 210 NWCONNECT 221 NWDROPMEMBERSHIP 228 NWGETBUF$ 212 NWGETMAC$ 215 NWGETPNAME$ 226 NWGETSNAME$ 226

Page 338: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

338

NWIFCONFIG 216 NWIFCONFIG$ 217 NWLISTEN 220 NWMAILDEL 233 NWMAILGET$ 232 NWMAILLIST 231 NWMAILLOF 230 NWMOUNT 235 NWMYNAME 209 NWOPEN 205 NWPING 234 NWRECV$ 208 NWRECVFILE 225 NWRECVSOCK$ 223 NWRECVTIME 209, 226 NWSEND 207 NWSENDFILE 224 NWSENDMAIL 229 NWSENDSOCK 222 NWSETBUF 211 NWSETMULTICAST 227 NWSOCKET 219 NWUMOUNT 235 NWWAKEONLAN¥, NWWOL 236

OCT$ 94 ON ~ GOSUB 177 ON ~ GOTO 178 ON ERROR GOSUB 171 ON ERROR GOTO 172 ON ERROR RESUME NEXT 172 ON GUEVT~GOSUB~ 288 ON KEY GOSUB 173 ON NW GOSUB 214 ON SOCKET GOSUB 238 ON STOP GOSUB 174 ON TIME$ GOSUB 175 ON TIMER GOSUB 176 OPEN 155

POS 49 POWER ON 49 PRESET 196 PRINT, ? , PRINT USING 156 PSET 197

PUT 158

QUIT, SYSTEM 50

RANDOMIZE 95 READ 50 REBOOT, NEW ON 51 RECTANGLE 197 REM, ‘ 51 RENUM 52 REPLACE$ 95 RESTORE 53 RESUME 179 RETURN 180 RIGHT$ 96 RIGHTB$ 96 RMDIR 159 RND 97 ROUND 98 RPCRT 290 RPDEL CAO 290 RPFILL 291 RPIMGSFC CRT 291 RPLINE 292 RPMOVE 292 RPPAINT 293 RPPAINTA 293 RPPDF SFC 294 RPRCTG 295 RPROTATE 296 RPSET FONTF 297 RPSET FONTS 298 RPSET LINE, CAP 298 RPSET LINE, JOIN 299 RPSET LINE, WIDTH 299 RPSET LINESPC 300 RPSET SRC, RGB 301 RPSET SRC, RGBA 302 RPSET SRC, SFC 303 RPSFC DEL 303 RPSHWPAGE 304 RPSHWTXT 304 RPSTRK 305 RSET 159 RTRIM$ 98

Page 339: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

339

RUN 54

SAVE 55 SEARCH 122 SECOND 99 SELECT CASE~END SELECT 130 SELECT THREAD 189 SET 160 SGN 99 SHELL 56 SHMLOW CLOSE 198 SHMLOW OPEN 198 SHMLOW READ 200 SHMLOW WRITE 199 SHUTDOWN 56 SIN 99 SINGLETRACE 57 SINGLETRACEOVER 57 SLEEP 57 SOCKET ON/OFF/STOP 237 SPACE$, SPC 100 SPLIT 123 SPLIT$ 100 SPOOL ON/OFF 161 SQR 101 STOP 58 STOP ON/OFF/STOP 180 STR$ 101 STRCOMP 102 STRCOMPB 102 STRDEL$ 103 STRDELB$ 103 STRING$ 104 STRINS$ 105 STRINSB$ 105 STRUCT 106 SUB~END SUB 181 SWAP 107

TAB 108 TAN 108 THREAD INFO 190 THREAD STATUS 189 TIME$ 109 TIME$ = “文字列” 109 TIME$ ON/OFF/STOP 182 TIMECALC$ 110 TIMEDIFF 110 TIMENUM 111 TIMER 111 TIMER ON/OFF/STOP 183 TRACE 58 TRIM$ 111 TRON/TROFF 59 TRUNC 112

UCASE$ 112 USERFS RW/RO 161 USING$ 113 USLEEP , MSLEEP 58

VAL 114 VER$ 60

WATCH 60 WEEK 115 WEEKS 115 WHILE~WEND 131 WIDTH 162 WRITE 162

YEAR 116

Page 340: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

340

ご利用にあたっての重要な事項

・本ドキュメントは、予告無く改訂する場合があります。予めご了承ください。

・予め書面による弊社の許可なく、本ドキュメントに含まれるすべての情報に対する次の行為を禁

止します。

-弊社i99-BASICの利用以外を目的とした使用, 販売, 配布, 開示, 転載

・本ドキュメントに含まれるソースプログラムおよび、本ドキュメントに関する権利や知的所有権

は弊社が所有しています。

・弊社の許可なく、本ドキュメントのすべて、または一部に関わらず、複製, 改変, 転用等を行う

ことはできません。

・本ドキュメントに掲載されている会社名, 製品名は、それぞれ各社の商標または登録商標です。

Page 341: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

- - Interface Corporation

341

改訂履歴 Ver. 年 月 改 訂 内 容

1.0 2014年1月 新規作成 1.1 2014年3月 ・ 「演算の優先順位」を追加。

・ 「スレッドに関する関数・命令」を追加。 ・ 以下のコマンドを追加。

GREP ・ 以下のコマンドに使用例を追加。

BREAK, ATTACH THREAD, DETACH THREAD, SELECT THREAD, THREAD STATUS

・ 以下のコマンドに注意事項を追加。 CONT, DELETE, FILEPASSWD, GUARD ON/OFF, HIDDEN ON/OFF, LIST, LOAD, RENUM, SAVE, SHELL, GET, INCLUDE, INPUT, PUT, DBGET

1.2 2014年4月 ・ 「整数型定数」の「小数点以下を切り捨て」を「丸め込まれ」に修

正。 ・ 「整数型定数」、「実数型定数」に注意事項を追加。 ・ 以下のコマンドに注意事項を追加。

CINT, CLNG ・ 日時設定のコマンドの制限事項説明を、32ビット環境のみに修正。

DATE$, DATECALC$, DATEDIFF, DATENUM, DAY, FIRSTDAY$, LASTDAY$, MONTH, WEEK, WEEKS, YEAR

・ IF文の複数行形式の注意事項を追加。 ・ 以下のコマンドを追加。

USERFS RW / RO 2.0 2014年5月 ・ 文字列をバイト単位に扱う、以下のコマンドを追加。

ASCB, CHRB$, LEFTB$, RIGHTB$, MIDB$, STRDELB$, STRINSB$ ・ 文字列を操作する、以下のコマンドを追加。

STRDEL$, STRINS$ ・ ASC, CHR$をユニコードに対応。 ・ LENBをバイト単位処理に適用。 ・ 以下のコマンドを追加。

MSGBOX 2.2 2014年10月 ・ 以下のコマンドを追加。

BREAK CLEAR, BREAK LIST, CDIM, ASSERT, CLOCK ・ 以下の関数を追加。

HOSTNAME$ 環境変数@FONT, @SIZE, @POSI, @TIP, @DBINFOを取得する関数

・ DETACH THREADに注意喚起の説明を追加。 ・ DBコマンドの説明にSQL文の実行タイミングを記載。 ・ エラーコードリファレンスの修正。 ・ ダブルクォーテーション(“)を文字列中に記述する書式の追加。 ・ FILESコマンドに表示変更機能を追加。 ・ LISTコマンドで中断行を黄色で表示する機能を追加。 ・ SUB/FUNCTIONの呼び出しで、配列変数を引数に指定できる機能を

追加。 3.0 2015年9月 ・ 以下のコマンドおよび関数を追加。

SPLIT$, THREAD INFO, STRCOMP, STRCOMPB, THREAD RT PREEMPT

・ Linuxとの連携用のコマンドおよび関数を追加。 ・ ソケット互換ネットワーク用のコマンドおよび関数を追加。

TCP/IP通信, ファイル送受信, マルチキャスト通信, メール送受信

など。

Page 342: i99-BASIC - Interface2.7.11 ON ERROR RESUME NEXT.....172 2.7.12 ON KEY GOSUB.....174 2.7.13 ON STOP 2.7.14 ON TIME$ GOSUB.....176 2.7.15 ON TIMER GOSUB 2.7.16 ON 2.7.17 ON 2.7.18 2.7.19

i99-BASICコマンドリファレンス

Interface Corporation - -

342

・ GUI用のコマンドを追加。 棒グラフ, 円グラフ, 波形グラフの描画が簡単に使えます。 GUGPLOT HISTGRAM, GUGPLOT PIE, GUGWAVE, GUGETMS, GUMOV, GUSCALE, GUSWITCH

・ データベース用のコマンドおよび関数を追加。 DBTRANS, DBSETOPT

・ 以下のデータベース(ODBC接続)に対応。 PostgreSQL, SQL Server。

・ 以下のコマンドに注意事項を追加・修正。 GOSUB, GOTO, FUNCTION~END FUNCTION, SUB~END SUB, DO~LOOP, DO~LOOP UNTIL, DO~LOOP WHILE, DO UNTIL~LOOP, DO WHILE~LOOP, EXIT DO, EXIT FOR, EXIT WHILE, FOR~NEXT, WHILE~WEND, POWER ON, ON ERROR GOSUB, USERFS RW/RO

・ 以下のコマンドの説明を補足追加および修正。 RENUM, CLEAR, PRINT USING

・ ON ERROR文を定義すると、エラーメッセージを表示しなくなる旨

の注意事項を追加。 ・ CONFIG SET LPTNAMEコマンドで、cups印刷およびpdf出力印刷に

対応。 ・ 以下のサンプルプログラムを追加。

GUGHIST.BAS、GUGWAVE.BAS、Linux連携、ソケット互換ネッ

トワーク ・ 第1章の定数と変数の説明を整理。

3.1 2016年2月 ・ 以下のコマンドを削除。 THREAD RT PREEMPT

・ 第1章の演算子の説明の補足説明および修正。 ・ 各コマンドの参照部の修正。 ・ 以下のコマンドの誤記を修正。

DIM, FUNCTION, EXIT FUNCTION, DATE$, TIME$, EXIT SUB ・ 以下のコマンドの説明を補足追加および修正。

ON ERROR GOSUB, ON ERROR GOTO, HELP SHOW, INCLUDE ・

このマニュアルは、製品の改良その他により将来予告なく改訂しますので、予めご了承ください。