• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

private knowhow


Commit MetaInfo

Revision1f4be0dafd8bbfab700b7fc4abe5d9f2ebac80e3 (tree)
Zeit2013-12-27 06:41:08
AutorMoritaka Ogasawara <oga@coli...>
CommiterMoritaka Ogasawara

Log Message

add some knowhow

Ändern Zusammenfassung

Diff

--- /dev/null
+++ b/bat.txt
@@ -0,0 +1,215 @@
1+バッチファイルノウハウ
2+
3+{(1)引数 ($1, $2, ...)
4+ %1 %2 ... %9
5+
6+{(2)一時停止 (read X)
7+ pause
8+
9+{(3)コマンド非表示
10+ @echo off (set +x)
11+ @echo on (set -x)
12+
13+{(4)変数設定
14+set 変数=xxx
15+set /a 式
16+ DOS> set /a 3 + 2
17+ 5
18+ DOS> set /a ver = 3 + 2 (変数に入れつつ計算)
19+ 5
20+ DOS> echo %ver%
21+ 5
22+set /p 変数=xxx (プロンプト表示して文字入力)
23+ DOS> set /p num=Input Number :
24+ Input Number :5 <enter>
25+ DOS> echo %num%
26+ 5
27+
28+{(5)変数置換 (VER2=`echo $VER | sed "s@xxx@yyy@g"`)
29+ %V:c1=c2% 文字c1を文字c2に置換する。それぞれ複数の文字を指定することも可能
30+ ----
31+ DOS> echo %DATE%
32+ 2013/11/21
33+ DOS> set DT=%DATE:/=%
34+ DOS> echo %DT%
35+ 20131121
36+
37+{(6)動的変数
38+%CD% 現在のディレクトリ文字列に展開します。
39+%DATE% DATE コマンドと同じフォーマットで現在の日付に展開します。
40+%TIME% TIME コマンドと同じフォーマットで現在の時刻に展開します。
41+%RANDOM% 0 から 32767 の間の任意の 10 進数に展開します
42+%ERRORLEVEL% 現在の ERRORLEVEL の値に展開します。
43+%CMDEXTVERSION% 現在のコマンド プロセッサ拡張機能のバージョン番号に展開します。
44+%CMDCMDLINE% コマンド プロセッサを起動したオリジナル コマンド ラインに展開します。
45+
46+%SESSIONNAME% "Console" : コマンドプロンプト:
47+%OS% "Windows_NT": NT系
48+%WINDIR% Windowsインストールディレクトリ (C:\Windows)
49+
50+{(7)FOR文
51+FOR %変数 IN (セット) DO コマンド [コマンドパラメーター]
52+バッチでは %%変数
53+
54+引数 説明
55+%変数 単一文字の置き換え可能なパラメーターを指定します。
56+バッチ プログラムで FOR コマンドを使用するときは、%変数の代わりに、
57+ %%変数を使用してください。
58+ 変数名では大文字と小文字が区別されるため、 %i と %I は異なります。
59+
60+(セット) ファイル セットを指定します。ワイルドカードを使用できます。
61+
62+コマンド 各ファイルごとに実行するコマンドを指定します。
63+コマンドパラメーター 指定されたコマンドのパラメーターまたはスイッチを指定します。
64+
65+
66+
67+
68+
69+{(20)IF文
70+SET A=1
71+
72+IF %A%==1 (
73+ ECHO %A% & SET /A A=%A%+1
74+) ELSE (
75+ ECHO FALSE
76+)
77+ECHO %A%
78+
79+SET B="AAA"
80+IF %B% EQU "AAA" (ECHO OK) ELSE (ECHO NG)
81+
82+
83+{(21)ファイル存在チェック
84+SET filename="test.txt"
85+IF EXIST %filename% (GOTO FILE_TRUE) ELSE GOTO FILE_FALSE
86+
87+:FILE_TRUE
88+ECHO "ファイルが見つかりました"
89+GOTO BAT_END
90+
91+:FILE_FALSE
92+ECHO "ファイルが見つかりません"
93+GOTO BAT_END
94+
95+:BAT_END
96+
97+{(22)ファイルのn行目を取得する
98+SET COUNT=0
99+SET DATA=""
100+FOR /F "" %%i IN (data.txt) DO @CALL :MYSET %%i
101+ECHO %DATA%
102+EXIT /B
103+
104+:MYSET
105+SET /A COUNT=%COUNT%+1
106+@REM 1行目だったらDATAへSET
107+IF %COUNT%==1 SET DATA=%1
108+@REM EXIT /B で呼び出し元へ戻る
109+EXIT /B
110+
111+ ファイルの一行目を取得する場合は以下だけ
112+
113+ SET /P DATA=<data.txt
114+
115+
116+{(23)検査対象 %VAR1% 〜 %VAR4% に %SERCHTEXT% が含まれるか確認し、結果を ERRORLEVEL で取得します
117+@ECHO OFF
118+@REM テストする変数
119+SET VAR1=01234567890
120+SET VAR2=test4567890
121+SET VAR3=012test7890
122+SET VAR4=0123456test
123+
124+@REM 検索対象
125+SET SEARCHTEXT="test"
126+
127+ECHO %VAR1% | find %SEARCHTEXT% >NUL
128+IF NOT ERRORLEVEL 1 (ECHO %VAR1% TRUE) ELSE (ECHO %VAR1% FALSE)
129+ECHO %VAR2% | find %SEARCHTEXT% >NUL
130+IF NOT ERRORLEVEL 1 (ECHO %VAR2% TRUE) ELSE (ECHO %VAR2% FALSE)
131+ECHO %VAR3% | find %SEARCHTEXT% >NUL
132+IF NOT ERRORLEVEL 1 (ECHO %VAR3% TRUE) ELSE (ECHO %VAR3% FALSE)
133+ECHO %VAR4% | find %SEARCHTEXT% >NUL
134+IF NOT ERRORLEVEL 1 (ECHO %VAR4% TRUE) ELSE (ECHO %VAR4% FALSE)
135+
136+{(24)文字入力 (read X)
137+@ECHO off
138+cls
139+:start
140+ECHO.
141+ECHO 1. Print Hello
142+ECHO 2. Print Bye
143+ECHO 3. Print Test
144+set choice=
145+set /p choice=Type the number to print text. ★
146+if not '%choice%'=='' set choice=%choice:~0,1%
147+if '%choice%'=='1' goto hello
148+if '%choice%'=='2' goto bye
149+if '%choice%'=='3' goto test
150+ECHO "%choice%" is not valid please try again
151+ECHO.
152+goto start
153+:hello
154+ECHO HELLO
155+goto end
156+:bye
157+ECHO BYE
158+goto end
159+:test
160+ECHO TEST
161+goto end
162+:end
163+
164+
165+{(25)計算 (expr相当)
166+ set /a 式
167+
168+ 変数に入れつつ、echoバックされる。
169+set /a v = n + m
170+set /a v = n % m (剰余) bat内では%%とすること
171+
172+DOS> set /a vv = 3 + 6
173+9
174+DOS> echo %vv%
175+9
176+
177+{(26)文字列の切り出し
178+%V% 変数Vの値全体
179+%V:~m% m文字目から、最後まで
180+%V:~m,n% m文字目から、n文字分
181+%V:~m,-n% m文字目から、最後のn文字分を除いたもの
182+%V:~-m% 後ろからm文字目から、最後まで
183+%V:~-m,n% 後ろからm文字目から、n文字分
184+%V:~-m,-n% 後ろからm文字目から、最後のn文字分を除いたもの
185+%V:c1=c2% 文字c1を文字c2に置換する。それぞれ複数の文字を指定することも可能
186+
187+C:\>SET STR=abcdefg
188+C:\>ECHO %STR%
189+abcdefg
190+
191+C:\>ECHO %STR:~2%
192+cdefg
193+
194+C:\>ECHO %STR:~2,3%
195+cde
196+
197+C:\>ECHO %STR:~2,-3%
198+cd
199+
200+C:\>ECHO %STR:~-3%
201+efg
202+
203+C:\>ECHO %STR:~-3,2%
204+ef
205+
206+C:\>ECHO %STR:~-3,-2%
207+e
208+
209+C:\>ECHO %STR:~-3,-1%
210+ef
211+
212+C:\>ECHO %STR:~-3,-4%
213+ECHO は <ON> です。
214+
215+
--- /dev/null
+++ b/iocs.txt
@@ -0,0 +1,4416 @@
1+X68K iocs headers
2+
3+-----------------------
4+iocs.h
5+-----------------------
6+/*
7+ * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
8+ * --------------------------------------------------------------------
9+ * This file is written by the Project C Library Group, and completely
10+ * in public domain. You can freely use, copy, modify, and redistribute
11+ * the whole contents, without this notice.
12+ * --------------------------------------------------------------------
13+ * $Id: iocslib.h,v 1.4 1994/11/26 14:48:20 mura Exp $
14+ */
15+
16+/* for compatibility only */
17+
18+#ifndef __iocslib_h__
19+#define __iocslib_h__
20+
21+#ifndef __cdecl_h__
22+#include <cdecl.h>
23+#endif
24+
25+#ifndef __sys_iocs_h__
26+#include <sys/iocs.h>
27+#endif
28+
29+struct GETPTR {
30+ short x1;
31+ short y1;
32+ short x2;
33+ short y2;
34+ unsigned char *buf_start;
35+ unsigned char *buf_end;
36+};
37+
38+struct PAINTPTR {
39+ short x;
40+ short y;
41+ unsigned short color;
42+ unsigned char *buf_start;
43+ unsigned char *buf_end;
44+};
45+
46+struct PUTPTR {
47+ short x1;
48+ short y1;
49+ short x2;
50+ short y2;
51+ unsigned char *buf_start;
52+ unsigned char *buf_end;
53+};
54+
55+struct CHAIN {
56+ unsigned char *adr;
57+ unsigned short len;
58+};
59+
60+struct CHAIN2 {
61+ unsigned char *adr;
62+ unsigned short len;
63+ struct CHAIN2 *next;
64+};
65+
66+#define BOXPTR _boxptr
67+#define CIRCLEPTR _circleptr
68+#define CLIPXY _clipxy
69+#define FILLPTR _fillptr
70+#define FNTBUF _fntbuf
71+#define LINEPTR _lineptr
72+#define PATST _patst
73+#define POINTPTR _pointptr
74+#define PSETPTR _psetptr
75+#define REGS _regs
76+#define SYMBOLPTR _symbolptr
77+#define TBOXPTR _tboxptr
78+#define TREVPTR _trevptr
79+#define TXFILLPTR _txfillptr
80+#define XLINEPTR _xlineptr
81+#define YLINEPTR _ylineptr
82+
83+#define READCAP _readcap
84+#define INQUIRY _inquiry
85+
86+#define ABORTJOB _iocs_abortjob
87+#define ABORTRST _iocs_abortrst
88+#define ADPCMINP _iocs_adpcminp
89+#define ADPCMMOD _iocs_adpcmmod
90+#define ADPCMOUT _iocs_adpcmout
91+#define ADPCMSNS _iocs_adpcmsns
92+#define AKCONV _iocs_akconv
93+#define ALARMGET _iocs_alarmget
94+#define ALARMMOD _iocs_alarmmod
95+#define ALARMSET _iocs_alarmset
96+#define APAGE _iocs_apage
97+#define BGCTRLGT _iocs_bgctrlgt
98+#define BGCTRLST _iocs_bgctrlst
99+#define BGSCRLGT _iocs_bgscrlgt
100+#define BGSCRLST _iocs_bgscrlst
101+#define BGTEXTCL _iocs_bgtextcl
102+#define BGTEXTGT _iocs_bgtextgt
103+#define BGTEXTST _iocs_bgtextst
104+#define BINDATEBCD _iocs_bindatebcd
105+#define BINDATEGET _iocs_bindateget
106+#define BINDATESET _iocs_bindateset
107+#define BITSNS _iocs_bitsns
108+#define BOOTINF _iocs_bootinf
109+#define BOX _iocs_box
110+#define B_ASSIGN _iocs_b_assign
111+#define B_BADFMT _iocs_b_badfmt
112+#define B_BPEEK _iocs_b_bpeek
113+#define B_BPOKE _iocs_b_bpoke
114+#define B_CLR_AL _iocs_b_clr_al
115+#define B_CLR_ED _iocs_b_clr_ed
116+#define B_CLR_ST _iocs_b_clr_st
117+#define B_COLOR _iocs_b_color
118+#define B_CONSOL _iocs_b_consol
119+#define B_CUROFF _iocs_b_curoff
120+#define B_CURON _iocs_b_curon
121+#define B_DEL _iocs_b_del
122+#define B_DOWN _iocs_b_down
123+#define B_DOWN_S _iocs_b_down_s
124+#define B_DRVCHK _iocs_b_drvchk
125+#define B_DRVSNS _iocs_b_drvsns
126+#define B_DSKINI _iocs_b_dskini
127+#define B_EJECT _iocs_b_eject
128+#define B_ERA_AL _iocs_b_era_al
129+#define B_ERA_ED _iocs_b_era_ed
130+#define B_ERA_ST _iocs_b_era_st
131+#define B_FORMAT _iocs_b_format
132+#define B_INS _iocs_b_ins
133+#define B_INTVCS _iocs_b_intvcs
134+#define B_KEYINP _iocs_b_keyinp
135+#define B_KEYSNS _iocs_b_keysns
136+#define B_LEFT _iocs_b_left
137+#define B_LOCATE _iocs_b_locate
138+#define B_LPEEK _iocs_b_lpeek
139+#define B_LPOKE _iocs_b_lpoke
140+#define B_MEMSET _iocs_b_memset
141+#define B_MEMSTR _iocs_b_memstr
142+#define B_PRINT _iocs_b_print
143+#define B_PUTC _iocs_b_putc
144+#define B_PUTMES _iocs_b_putmes
145+#define B_READ _iocs_b_read
146+#define B_READDI _iocs_b_readdi
147+#define B_READDL _iocs_b_readdl
148+#define B_READID _iocs_b_readid
149+#define B_RECALI _iocs_b_recali
150+#define B_RIGHT _iocs_b_right
151+#define B_SEEK _iocs_b_seek
152+#define B_SFTSNS _iocs_b_sftsns
153+#define B_SUPER _iocs_b_super
154+#define B_UP _iocs_b_up
155+#define B_UP_S _iocs_b_up_s
156+#define B_VERIFY _iocs_b_verify
157+#define B_WPEEK _iocs_b_wpeek
158+#define B_WPOKE _iocs_b_wpoke
159+#define B_WRITE _iocs_b_write
160+#define B_WRITED _iocs_b_writed
161+#define CIRCLE _iocs_circle
162+#define CLIPPUT _iocs_clipput
163+#define CONTRAST _iocs_contrast
164+#define CRTCRAS _iocs_crtcras
165+#define CRTMOD _iocs_crtmod
166+#define DAKJOB _iocs_dakjob
167+#define DATEASC _iocs_dateasc
168+#define DATEBIN _iocs_datebin
169+#define DATECNV _iocs_datecnv
170+#define DAYASC _iocs_dayasc
171+#define DEFCHR _iocs_defchr
172+#define DENSNS _iocs_densns
173+#define DMAMODE _iocs_dmamode
174+#define DMAMOVE _iocs_dmamove
175+#define FILL _iocs_fill
176+#define FNTGET _iocs_fntget
177+#define GPALET _iocs_gpalet
178+#define G_CLR_ON _iocs_g_clr_on
179+#define HANJOB _iocs_hanjob
180+#define HOME _iocs_home
181+#define HSVTORGB _iocs_hsvtorgb
182+#define HSYNCST _iocs_hsyncst
183+#define INIT_PRN _iocs_init_prn
184+#define INP232C _iocs_inp232c
185+#define IPLERR _iocs_iplerr
186+#define ISNS232C _iocs_isns232c
187+#define JISSFT _iocs_jissft
188+#define JOYGET _iocs_joyget
189+#define LEDMOD _iocs_ledmod
190+#define LINE _iocs_line
191+#define LOF232C _iocs_lof232c
192+#define MS_CURGT _iocs_ms_curgt
193+#define MS_CUROF _iocs_ms_curof
194+#define MS_CURON _iocs_ms_curon
195+#define MS_CURST _iocs_ms_curst
196+#define MS_GETDT _iocs_ms_getdt
197+#define MS_INIT _iocs_ms_init
198+#define MS_LIMIT _iocs_ms_limit
199+#define MS_OFFTM _iocs_ms_offtm
200+#define MS_ONTM _iocs_ms_ontm
201+#define MS_PATST _iocs_ms_patst
202+#define MS_SEL _iocs_ms_sel
203+#define MS_SEL2 _iocs_ms_sel2
204+#define MS_STAT _iocs_ms_stat
205+#define ONTIME _iocs_ontime
206+#define OPMINTST _iocs_opmintst
207+#define OPMSET _iocs_opmset
208+#define OPMSNS _iocs_opmsns
209+#define OSNS232C _iocs_osns232c
210+#define OS_CUROF _iocs_os_curof
211+#define OS_CURON _iocs_os_curon
212+#define OUT232C _iocs_out232c
213+#define OUTLPT _iocs_outlpt
214+#define OUTPRN _iocs_outprn
215+#define POINT _iocs_point
216+#define PRNINTST _iocs_prnintst
217+#define PSET _iocs_pset
218+#define RMACNV _iocs_rmacnv
219+#define ROMVER _iocs_romver
220+#define SCROLL _iocs_scroll
221+#define SET232C _iocs_set232c
222+#define SFTJIS _iocs_sftjis
223+#define SKEYSET _iocs_skeyset
224+#define SKEY_MOD _iocs_skey_mod
225+#define SNSPRN _iocs_snsprn
226+#define SPALET _iocs_spalet
227+#define SP_CGCLR _iocs_sp_cgclr
228+#define SP_DEFCG _iocs_sp_defcg
229+#define SP_GTPCG _iocs_sp_gtpcg
230+#define SP_INIT _iocs_sp_init
231+#define SP_OFF _iocs_sp_off
232+#define SP_ON _iocs_sp_on
233+#define SP_REGGT _iocs_sp_reggt
234+#define SP_REGST _iocs_sp_regst
235+#define SYMBOL _iocs_symbol
236+#define TCOLOR _iocs_tcolor
237+#define TEXTGET _iocs_textget
238+#define TEXTPUT _iocs_textput
239+#define TGUSEMD _iocs_tgusemd
240+#define TIMEASC _iocs_timeasc
241+#define TIMEBCD _iocs_timebcd
242+#define TIMEBIN _iocs_timebin
243+#define TIMECNV _iocs_timecnv
244+#define TIMEGET _iocs_timeget
245+#define TIMERDST _iocs_timerdst
246+#define TIMESET _iocs_timeset
247+#define TPALET _iocs_tpalet
248+#define TPALET2 _iocs_tpalet2
249+#define TRAP15 _iocs_trap15
250+#define TVCTRL _iocs_tvctrl
251+#define TXBOX _iocs_txbox
252+#define TXFILL _iocs_txfill
253+#define TXRASCPY _iocs_txrascpy
254+#define TXREV _iocs_txrev
255+#define TXXLINE _iocs_txxline
256+#define TXYLINE _iocs_txyline
257+#define VDISPST _iocs_vdispst
258+#define VPAGE _iocs_vpage
259+#define WINDOW _iocs_window
260+#define WIPE _iocs_wipe
261+
262+#define S_CMDOUT _scsi_cmdout
263+#define S_DATAIN _scsi_datain
264+#define S_DATAIN_P _scsi_datain_p
265+#define S_DATAOUT _scsi_dataout
266+#define S_DATAOUT_P _scsi_dataout_p
267+#define S_FORMAT _scsi_format
268+#define S_INQUIRY _scsi_inquiry
269+#define S_MODESELECT _scsi_modeselect
270+#define S_MODESENSE _scsi_modesense
271+#define S_MSGIN _scsi_msgin
272+#define S_MSGOUT _scsi_msgout
273+#define S_PAMEDIUM _scsi_pamedium
274+#define S_PHASE _scsi_phase
275+#define S_READ _scsi_read
276+#define S_READCAP _scsi_readcap
277+#define S_READEXT _scsi_readext
278+#define S_REASSIGN _scsi_reassign
279+#define S_REQUEST _scsi_request
280+#define S_RESET _scsi_reset
281+#define S_REZEROUNIT _scsi_rezerounit
282+#define S_SEEK _scsi_seek
283+#define S_SELECT _scsi_select
284+#define S_STARTSTOP _scsi_startstop
285+#define S_STSIN _scsi_stsin
286+#define S_TESTUNIT _scsi_testunit
287+#define S_WRITE _scsi_write
288+#define S_WRITEEXT _scsi_writeext
289+
290+/* The following 9 macros prevent from conflictions */
291+
292+#define GETGRM(a) _iocs_getgrm ((struct _getptr *) (a))
293+#define PUTGRM(a) _iocs_putgrm ((const struct _putptr *) (a))
294+#define PAINT(a) _iocs_paint ((struct _paintptr *) (a))
295+#define ADPCMAIN(a,b,c) _iocs_adpcmain ((const struct _chain *) (a), (b), (c))
296+#define ADPCMAOT(a,b,c) _iocs_adpcmaot ((const struct _chain *) (a), (b), (c))
297+#define ADPCMLIN(a,b) _iocs_adpcmlin ((const struct _chain2 *) (a), (b))
298+#define ADPCMLOT(a,b) _iocs_adpcmlot ((const struct _chain2 *) (a), (b))
299+#define DMAMOV_A(a,b,c,d) _iocs_dmamov_a ((const struct _chain *) (a), (b), (c), (d))
300+#define DMAMOV_L(a,b,c) _iocs_dmamov_l ((const struct _chain2 *) (a), (b), (c))
301+
302+#endif
303+
304+
305+{
306+-----------------------
307+sys/iocs.h
308+-----------------------
309+/*
310+ * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
311+ * --------------------------------------------------------------------
312+ * This file is written by the Project C Library Group, and completely
313+ * in public domain. You can freely use, copy, modify, and redistribute
314+ * the whole contents, without this notice.
315+ * --------------------------------------------------------------------
316+ * $Id: iocs.h,v 1.1.1.1 1993/04/18 16:14:27 mura Exp $
317+ */
318+
319+#ifndef __sys_iocs_h__
320+#define __sys_iocs_h__
321+
322+#ifndef __cdecl_h__
323+#include <cdecl.h>
324+#endif
325+
326+struct _boxptr {
327+ short x1;
328+ short y1;
329+ short x2;
330+ short y2;
331+ unsigned short color;
332+ unsigned short linestyle;
333+};
334+
335+struct _circleptr {
336+ short x;
337+ short y;
338+ unsigned short radius;
339+ unsigned short color;
340+ short start;
341+ short end;
342+ unsigned short ratio;
343+};
344+
345+struct _fillptr {
346+ short x1;
347+ short y1;
348+ short x2;
349+ short y2;
350+ unsigned short color;
351+};
352+
353+struct _fntbuf {
354+ short xl;
355+ short yl;
356+ unsigned char buffer[72];
357+};
358+
359+struct _getptr {
360+ short x1;
361+ short y1;
362+ short x2;
363+ short y2;
364+ void *buf_start;
365+ void *buf_end;
366+};
367+
368+struct _lineptr {
369+ short x1;
370+ short y1;
371+ short x2;
372+ short y2;
373+ unsigned short color;
374+ unsigned short linestyle;
375+};
376+
377+struct _paintptr {
378+ short x;
379+ short y;
380+ unsigned short color;
381+ void *buf_start;
382+ void *buf_end;
383+};
384+
385+struct _pointptr {
386+ short x;
387+ short y;
388+ unsigned short color;
389+};
390+
391+struct _psetptr {
392+ short x;
393+ short y;
394+ unsigned short color;
395+};
396+
397+struct _putptr {
398+ short x1;
399+ short y1;
400+ short x2;
401+ short y2;
402+ const void *buf_start;
403+ const void *buf_end;
404+};
405+
406+struct _symbolptr {
407+ short x1;
408+ short y1;
409+ unsigned char *string_address;
410+ unsigned char mag_x;
411+ unsigned char mag_y;
412+ unsigned short color;
413+ unsigned char font_type;
414+ unsigned char angle;
415+};
416+
417+struct _regs {
418+ int_ d0;
419+ int_ d1;
420+ int_ d2;
421+ int_ d3;
422+ int_ d4;
423+ int_ d5;
424+ int_ d6;
425+ int_ d7;
426+ int_ a1;
427+ int_ a2;
428+ int_ a3;
429+ int_ a4;
430+ int_ a5;
431+ int_ a6;
432+};
433+
434+struct _chain {
435+ void *addr;
436+ unsigned short len;
437+};
438+
439+struct _chain2 {
440+ void *addr;
441+ unsigned short len;
442+ const struct _chain2 *next;
443+};
444+
445+struct _clipxy {
446+ short xs;
447+ short ys;
448+ short xe;
449+ short ye;
450+};
451+
452+struct _patst {
453+ short offsetx;
454+ short offsety;
455+ short shadow[16];
456+ short pattern[16];
457+};
458+
459+struct _tboxptr {
460+ unsigned short vram_page;
461+ short x;
462+ short y;
463+ short x1;
464+ short y1;
465+ unsigned short line_style;
466+};
467+
468+struct _txfillptr {
469+ unsigned short vram_page;
470+ short x;
471+ short y;
472+ short x1;
473+ short y1;
474+ unsigned short fill_patn;
475+};
476+
477+struct _trevptr {
478+ unsigned short vram_page;
479+ short x;
480+ short y;
481+ short x1;
482+ short y1;
483+};
484+
485+struct _xlineptr {
486+ unsigned short vram_page;
487+ short x;
488+ short y;
489+ short x1;
490+ unsigned short line_style;
491+};
492+
493+struct _ylineptr {
494+ unsigned short vram_page;
495+ short x;
496+ short y;
497+ short y1;
498+ unsigned short line_style;
499+};
500+
501+/*
502+** If you want to use other inline headers, please add your selection
503+** mechanism here...
504+*/
505+
506+#ifdef __IOCS_INLINE__
507+#include <sys/iocs_i.h>
508+#else
509+#include <sys/iocs_p.h>
510+#endif
511+
512+#endif
513+
514+
515+{
516+-----------------------
517+sys/iocs_p.h
518+-----------------------
519+/*
520+ * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
521+ * --------------------------------------------------------------------
522+ * This file is written by the Project C Library Group, and completely
523+ * in public domain. You can freely use, copy, modify, and redistribute
524+ * the whole contents, without this notice.
525+ * --------------------------------------------------------------------
526+ * $Id: iocs_p.h,v 1.5 1993/10/06 16:46:12 mura Exp $
527+ */
528+
529+#ifndef __sys_iocs_p_h__
530+#define __sys_iocs_p_h__
531+
532+_EXTERN (int_ __const _iocs_akconv (int_, int_));
533+_EXTERN (int_ __const _iocs_bootinf (void_));
534+_EXTERN (int_ __const _iocs_hsvtorgb (int_, int_, int_));
535+_EXTERN (int_ __const _iocs_jissft (int_));
536+_EXTERN (int_ __const _iocs_romver (void_));
537+_EXTERN (int_ __const _iocs_sftjis (int_));
538+_EXTERN (int_ _iocs_adpcmsns (void_));
539+_EXTERN (int_ _iocs_alarmget (int_ *, int_ *, int_ *));
540+_EXTERN (int_ _iocs_alarmmod (int_));
541+_EXTERN (int_ _iocs_alarmset (int_, int_, int_));
542+_EXTERN (int_ _iocs_apage (int_));
543+_EXTERN (int_ _iocs_b_assign (int_, int_, int_, const void *));
544+_EXTERN (int_ _iocs_b_badfmt (int_, int_, int_));
545+_EXTERN (int_ _iocs_b_bpeek (const void *));
546+_EXTERN (int_ _iocs_b_color (int_));
547+_EXTERN (int_ _iocs_b_consol (int_, int_, int_, int_));
548+_EXTERN (int_ _iocs_b_drvchk (int_, int_));
549+_EXTERN (int_ _iocs_b_drvsns (int_));
550+_EXTERN (int_ _iocs_b_dskini (int_, const void *, int_));
551+_EXTERN (int_ _iocs_b_eject (int_));
552+_EXTERN (int_ _iocs_b_format (int_, int_, int_, const void *));
553+_EXTERN (int_ _iocs_b_intvcs (int_, int_));
554+_EXTERN (int_ _iocs_b_keyinp (void_));
555+_EXTERN (int_ _iocs_b_keysns (void_));
556+_EXTERN (int_ _iocs_b_locate (int_, int_));
557+_EXTERN (int_ _iocs_b_lpeek (const void *));
558+_EXTERN (int_ _iocs_b_print (const char *));
559+_EXTERN (int_ _iocs_b_putc (int_));
560+_EXTERN (int_ _iocs_b_putmes (int_, int_, int_, int_, const char *));
561+_EXTERN (int_ _iocs_b_read (int_, int_, int_, void *));
562+_EXTERN (int_ _iocs_b_readdi (int_, int_, int_, void *));
563+_EXTERN (int_ _iocs_b_readdl (int_, int_, int_, void *));
564+_EXTERN (int_ _iocs_b_readid (int_, int_, void *));
565+_EXTERN (int_ _iocs_b_recali (int_));
566+_EXTERN (int_ _iocs_b_seek (int_, int_));
567+_EXTERN (int_ _iocs_b_sftsns (void_));
568+_EXTERN (int_ _iocs_b_super (int_));
569+_EXTERN (int_ _iocs_b_verify (int_, int_, int_, const void *));
570+_EXTERN (int_ _iocs_b_wpeek (const void *));
571+_EXTERN (int_ _iocs_b_write (int_, int_, int_, const void *));
572+_EXTERN (int_ _iocs_b_writed (int_, int_, int_, const void *));
573+_EXTERN (int_ _iocs_bgctrlgt (int_));
574+_EXTERN (int_ _iocs_bgctrlst (int_, int_, int_));
575+_EXTERN (int_ _iocs_bgscrlgt (int_, int_ *, int_ *));
576+_EXTERN (int_ _iocs_bgscrlst (int_, int_, int_));
577+_EXTERN (int_ _iocs_bgtextcl (int_, int_));
578+_EXTERN (int_ _iocs_bgtextgt (int_, int_, int_));
579+_EXTERN (int_ _iocs_bgtextst (int_, int_, int_, int_));
580+_EXTERN (int_ _iocs_bindatebcd (int_));
581+_EXTERN (int_ _iocs_bindateget (void_));
582+_EXTERN (int_ _iocs_bitsns (int_));
583+_EXTERN (int_ _iocs_box (const struct _boxptr *));
584+_EXTERN (int_ _iocs_circle (const struct _circleptr *));
585+_EXTERN (int_ _iocs_contrast (int_));
586+_EXTERN (int_ _iocs_crtcras (const void *, int_));
587+_EXTERN (int_ _iocs_crtmod (int_));
588+_EXTERN (int_ _iocs_dakjob (char *));
589+_EXTERN (int_ _iocs_dateasc (int_, char *));
590+_EXTERN (int_ _iocs_datebin (int_));
591+_EXTERN (int_ _iocs_datecnv (const char *));
592+_EXTERN (int_ _iocs_defchr (int_, int_, const void *));
593+_EXTERN (int_ _iocs_dmamode (void_));
594+_EXTERN (int_ _iocs_fill (const struct _fillptr *));
595+_EXTERN (int_ _iocs_fntget (int_, int_, struct _fntbuf *));
596+_EXTERN (int_ _iocs_getgrm (struct _getptr *));
597+_EXTERN (int_ _iocs_gpalet (int_, int_));
598+_EXTERN (int_ _iocs_hanjob (char *));
599+_EXTERN (int_ _iocs_home (int_, int_, int_));
600+_EXTERN (int_ _iocs_hsyncst (const void *));
601+_EXTERN (int_ _iocs_init_prn (int_, int_));
602+_EXTERN (int_ _iocs_inp232c (void_));
603+_EXTERN (int_ _iocs_isns232c (void_));
604+_EXTERN (int_ _iocs_joyget (int_));
605+_EXTERN (int_ _iocs_line (const struct _lineptr *));
606+_EXTERN (int_ _iocs_lof232c (void_));
607+_EXTERN (int_ _iocs_ms_curgt (void_));
608+_EXTERN (int_ _iocs_ms_curst (int_, int_));
609+_EXTERN (int_ _iocs_ms_getdt (void_));
610+_EXTERN (int_ _iocs_ms_limit (int_, int_, int_, int_));
611+_EXTERN (int_ _iocs_ms_offtm (int_, int_));
612+_EXTERN (int_ _iocs_ms_ontm (int_, int_));
613+_EXTERN (int_ _iocs_ms_stat (void_));
614+_EXTERN (int_ _iocs_ontime (void_));
615+_EXTERN (int_ _iocs_opmintst (const void *));
616+_EXTERN (int_ _iocs_opmsns (void_));
617+_EXTERN (int_ _iocs_osns232c (void_));
618+_EXTERN (int_ _iocs_paint (struct _paintptr *));
619+_EXTERN (int_ _iocs_point (const struct _pointptr *));
620+_EXTERN (int_ _iocs_prnintst (const void *));
621+_EXTERN (int_ _iocs_pset (const struct _psetptr *));
622+_EXTERN (int_ _iocs_putgrm (const struct _putptr *));
623+_EXTERN (int_ _iocs_rmacnv (int_, char *, char *));
624+_EXTERN (int_ _iocs_set232c (int_));
625+_EXTERN (int_ _iocs_skey_mod (int_, int_, int_));
626+_EXTERN (int_ _iocs_snsprn (void_));
627+_EXTERN (int_ _iocs_sp_cgclr (int_));
628+_EXTERN (int_ _iocs_sp_defcg (int_, int_, const void *));
629+_EXTERN (int_ _iocs_sp_gtpcg (int_, int_, void *));
630+_EXTERN (int_ _iocs_sp_init (void_));
631+_EXTERN (int_ _iocs_sp_on (void_));
632+_EXTERN (int_ _iocs_sp_reggt (int_, int_ *, int_ *, int_ *, int_ *));
633+_EXTERN (int_ _iocs_sp_regst (int_, int_, int_, int_, int_, int_));
634+_EXTERN (int_ _iocs_spalet (int_, int_, int_));
635+_EXTERN (int_ _iocs_symbol (const struct _symbolptr *));
636+_EXTERN (int_ _iocs_tgusemd (int_, int_));
637+_EXTERN (int_ _iocs_timeasc (int_, char *));
638+_EXTERN (int_ _iocs_timebcd (int_));
639+_EXTERN (int_ _iocs_timebin (int_));
640+_EXTERN (int_ _iocs_timecnv (const char *));
641+_EXTERN (int_ _iocs_timeget (void_));
642+_EXTERN (int_ _iocs_timerdst (const void *, int_, int_));
643+_EXTERN (int_ _iocs_tpalet (int_, int_));
644+_EXTERN (int_ _iocs_tpalet2 (int_, int_));
645+_EXTERN (int_ _iocs_trap15 (const struct _regs *, struct _regs *));
646+_EXTERN (int_ _iocs_vdispst (const void *, int_, int_));
647+_EXTERN (int_ _iocs_vpage (int_));
648+_EXTERN (int_ _iocs_window (int_, int_, int_, int_));
649+_EXTERN (int_ _iocs_wipe (void_));
650+_EXTERN (void __volatile _iocs_abortjob (void_));
651+_EXTERN (void __volatile _iocs_iplerr (void_));
652+_EXTERN (void _iocs_abortrst (void_));
653+_EXTERN (void _iocs_adpcmain (const struct _chain *, int_, int_));
654+_EXTERN (void _iocs_adpcmaot (const struct _chain *, int_, int_));
655+_EXTERN (void _iocs_adpcminp (void *, int_, int_));
656+_EXTERN (void _iocs_adpcmlin (const struct _chain2 *, int_));
657+_EXTERN (void _iocs_adpcmlot (const struct _chain2 *, int_));
658+_EXTERN (void _iocs_adpcmmod (int_));
659+_EXTERN (void _iocs_adpcmout (const void *, int_, int_));
660+_EXTERN (void _iocs_b_bpoke (void *, int_));
661+_EXTERN (void _iocs_b_clr_al (void_));
662+_EXTERN (void _iocs_b_clr_ed (void_));
663+_EXTERN (void _iocs_b_clr_st (void_));
664+_EXTERN (void _iocs_b_curoff (void_));
665+_EXTERN (void _iocs_b_curon (void_));
666+_EXTERN (void _iocs_b_del (int_));
667+_EXTERN (void _iocs_b_down (int_));
668+_EXTERN (void _iocs_b_down_s (void_));
669+_EXTERN (void _iocs_b_era_al (void_));
670+_EXTERN (void _iocs_b_era_ed (void_));
671+_EXTERN (void _iocs_b_era_st (void_));
672+_EXTERN (void _iocs_b_ins (int_));
673+_EXTERN (void _iocs_b_left (int_));
674+_EXTERN (void _iocs_b_lpoke (void *, int_));
675+_EXTERN (void _iocs_b_memset (void *, const void *, int_));
676+_EXTERN (void _iocs_b_memstr (const void *, void *, int_));
677+_EXTERN (void _iocs_b_right (int_));
678+_EXTERN (void _iocs_b_up (int_));
679+_EXTERN (void _iocs_b_up_s (void_));
680+_EXTERN (void _iocs_b_wpoke (void *, int_));
681+_EXTERN (void _iocs_bindateset (int_));
682+_EXTERN (void _iocs_clipput (int_, int_, const struct _fntbuf *, const struct _clipxy *));
683+_EXTERN (void _iocs_dayasc (int_, char *));
684+_EXTERN (void _iocs_densns (void_));
685+_EXTERN (void _iocs_dmamov_a (const struct _chain *, void *, int_, int_));
686+_EXTERN (void _iocs_dmamov_l (const struct _chain2 *, void *, int_));
687+_EXTERN (void _iocs_dmamove (void *, void *, int_, int_));
688+_EXTERN (void _iocs_g_clr_on (void_));
689+_EXTERN (void _iocs_ledmod (int_, int_));
690+_EXTERN (void _iocs_ms_curof (void_));
691+_EXTERN (void _iocs_ms_curon (void_));
692+_EXTERN (void _iocs_ms_init (void_));
693+_EXTERN (void _iocs_ms_patst (int_, const struct _patst *));
694+_EXTERN (void _iocs_ms_sel (int_));
695+_EXTERN (void _iocs_ms_sel2 (const short *));
696+_EXTERN (void _iocs_opmset (int_, int_));
697+_EXTERN (void _iocs_os_curof (void_));
698+_EXTERN (void _iocs_os_curon (void_));
699+_EXTERN (void _iocs_out232c (int_));
700+_EXTERN (void _iocs_outlpt (int_));
701+_EXTERN (void _iocs_outprn (int_));
702+_EXTERN (void _iocs_scroll (int_, int_, int_));
703+_EXTERN (void _iocs_skeyset (int_));
704+_EXTERN (void _iocs_sp_off (void_));
705+_EXTERN (void _iocs_tcolor (int_));
706+_EXTERN (void _iocs_textget (int_, int_, struct _fntbuf *));
707+_EXTERN (void _iocs_textput (int_, int_, const struct _fntbuf *));
708+_EXTERN (void _iocs_timeset (int_));
709+_EXTERN (void _iocs_tvctrl (int_));
710+_EXTERN (void _iocs_txbox (const struct _tboxptr *));
711+_EXTERN (void _iocs_txfill (const struct _txfillptr *));
712+_EXTERN (void _iocs_txrascpy (int_, int_, int_));
713+_EXTERN (void _iocs_txrev (const struct _trevptr *));
714+_EXTERN (void _iocs_txxline (const struct _xlineptr *));
715+_EXTERN (void _iocs_txyline (const struct _ylineptr *));
716+
717+#endif
718+
719+
720+{
721+-----------------------
722+iocs CALL Manual
723+-----------------------
724+http://datacrystal.romhacking.net/wiki/X68k:IOCS
725+
726+X68k:IOCS
727+
728+ - IOCS CALL MANUAL -
729+
730+==============================================================================
731+
732+・IOCSコール一覧
733+
734+$00 _B_KEYINP キーデータの読み込み
735+$01 _B_KEYSNS キーの入力検査
736+$02 _B_SFTSNS シフトキー状態の収得
737+$03 _KEY_INIT 入力関係の初期化
738+$04 _BITSNS キー状態の収得
739+$05 _SKEYSET キー入力の発生
740+$06 _LEDCTRL キーボード LED の設定
741+$07 _LEDSET キーボード LED をキー入力モードに合わせる
742+$08 _KEYDLY キーリピートの開始時間設定
743+$09 _KEYREP キーリピートの間隔設定
744+$0a (未公開) OPT.2 によるテレビコントロール許可
745+$0b (未公開) OPT.2 によるテレビコントロール禁止
746+$0c _TVCTRL テレビコントロール
747+$0d _LEDMOD LED モードの設定
748+$0e _TGUSEMD 画面の使用状態の設定
749+$0f _DEFCHR 外字定義
750+$10 _CRTMOD CRT モード設定
751+$11 _CONTRAST コントラスト設定
752+$12 _HSVTORGB HSV→RGB 変換
753+$13 _TPALET テキストパレット設定
754+$14 _TPALET2 テキストパレット独立設定
755+$15 _TCOLOR テキストプレーン指定
756+$16 _FNTADR フォントアドレスの収得
757+$17 _VRAMGET テキスト VRAM のバイト単位読み込み
758+$18 _VRAMPUT テキスト VRAM のバイト単位書き込み
759+$19 _FNTGET フォント読み込み
760+$1a _TEXTGET テキスト VRAM のドット単位読み込み
761+$1b _TEXTPUT テキスト VRAM のドット単位書き込み
762+$1c _CLIPPUT テキスト VRAM のドット単位書き込み(クリッピング処理あり)
763+$1d _SCROLL 表示座標の設定
764+$1e _B_CURON カーソル一時停止解除
765+$1f _B_CUROFF カーソル一時停止
766+$20 _B_PUTC 文字表示
767+$21 _B_PRINT 文字列表示
768+$22 _B_COLOR 表示色設定
769+$23 _B_LOCATE カーソル移動
770+$24 _B_DOWN_S カーソルを 1 行下に移動
771+$25 _B_UP_S カーソルを 1 行上に移動
772+$26 _B_UP カーソルを指定行数だけ上に移動
773+$27 _B_DOWN カーソルを指定行数だけ下に移動
774+$28 _B_RIGHT カーソルを指定桁数だけ右に移動
775+$29 _B_LEFT カーソルを指定桁数だけ左に移動
776+$2a _B_CLR_ST 画面の複数行消去
777+$2b _B_ERA_ST 現在行の複数桁消去
778+$2c _B_INS 複数行挿入
779+$2d _B_DEL 複数行削除
780+$2e _B_CONSOL 表示範囲設定
781+$2f _B_PUTMES 座標指定文字列表示
782+$30 _SET232C RS-232C パラメータ設定
783+$31 _LOF232C RS-232C 受信バッファのデータ数を求める
784+$32 _INP232C RS-232C 受信データを得る
785+$33 _ISNS232C RS-232C 受信データの検査
786+$34 _OSNS232C RS-232C データが送信可能か検査する
787+$35 _OUT232C RS-232C データ送信
788+$36 (未公開) マウスデータ受信時の処理アドレス設定
789+$37 (未公開) ESC[>系エスケープシーケンスの拡張処理アドレス設定
790+$38 _SETFNTADR 外字フォントアドレス設定
791+$39 (未公開) BEEP音用PCMのデータ設定
792+$3a (未公開) プリンタパラメータ設定
793+$3b _JOYGET ジョイスティック入力
794+$3c _INIT_PRN プリンタ初期化
795+$3d _SNSPRN プリンタに出力可能か検査する
796+$3e _OUTLPT プリンタ直接出力
797+$3f _OUTPRN プリンタ出力
798+$40 _B_SEEK ディスクのシーク
799+$41 _B_VERIFY ディスクのベリファイ
800+$42 _B_READDI ディスクの診断の為の読み出し
801+$43 _B_DSKINI ドライブの初期化
802+$44 _B_DRVSNS ドライブの状態検査
803+$45 _B_WRITE ディスクへの書き込み
804+$46 _B_READ ディスクからの読み込み
805+$47 _B_RECALI ディスクのリキャリブレイト
806+$48 _B_ASSIGN ハードディスクの代替トラック設定
807+$49 _B_WRITED 2HD への破損データ書き込み
808+$4a _B_READID 2HD の ID 情報の読み出し
809+$4b _B_BADFMT ハードディスクの破損トラックを使用不能にする
810+$4c _B_READDL 2HD からの破損データ読み込み
811+$4d _B_FORMAT ディスクのフォーマット
812+$4e _B_DRVCHK 2HD ドライブの状態設定
813+$4f _B_EJECT ディスクのイジェクト/シッピング
814+$50 _DATEBCD 日付データのバイナリ→BCD 変換
815+$51 _DATESET 日付の設定
816+$52 _TIMEBCD 時刻データのバイナリ→BCD 変換
817+$53 _TIMESET 時刻の設定
818+$54 _DATEGET 日付の読み込み
819+$55 _DATEBIN 日付データの BCD→バイナリ変換
820+$56 _TIMEGET 時刻の読み込み
821+$57 _TIMEBIN 時刻データの BCD→バイナリ変換
822+$58 _DATECNV 日付データの文字列→バイナリ変換
823+$59 _TIMECNV 時刻データの文字列→バイナリ変換
824+$5a _DATEASC 日付データのバイナリ→文字列変換
825+$5b _TIMEASC 時刻データのバイナリ→文字列変換
826+$5c _DAYASC 曜日データのバイナリ→文字列変換
827+$5d _ALARMMOD アラーム許可/禁止
828+$5e _ALARMSET アラーム設定
829+$5f _ALARMGET アラームの設定状態を収得
830+$60 _ADPCMOUT ADPCM 出力
831+$61 _ADPCMINP ADPCM 入力
832+$62 _ADPCMAOT ADPCM 出力(アレイチェーン)
833+$63 _ADPCMAIN ADPCM 入力(アレイチェーン)
834+$64 _ADPCMLOT ADPCM 出力(リンクアレイチェーン)
835+$65 _ADPCMLIN ADPCM 入力(リンクアレイチェーン)
836+$66 _ADPCMSNS ADPCM 状態検査
837+$67 _ADPCMMOD ADPCM 実行制御
838+$68 _OPMSET OPM レジスタ設定
839+$69 _OPMSNS OPM 状態検査
840+$6a _OPMINTST OPM 割り込み設定
841+$6b _TIMERDST Timer-D 割り込み設定
842+$6c _VDISPST 垂直同期割り込み設定
843+$6d _CRTCRAS ラスター割り込み設定
844+$6e _HSYNCST 水平同期割り込み設定
845+$6f _PRNINTST プリンタ割り込み設定
846+$70 _MS_INIT マウス初期化
847+$71 _MS_CURON マウスカーソル表示
848+$72 _MS_CUROF マウスカーソル消去
849+$73 _MS_STAT マウスカーソルの表示状態を調べる
850+$74 _MS_GETDT マウス移動量/ボタン状態を調べる
851+$75 _MS_CURGT マウスカーソルの座標収得
852+$76 _MS_CURST マウスカーソルの座標設定
853+$77 _MS_LIMIT マウスカーソルの移動範囲設定
854+$78 _MS_OFFTM マウスのボタンを離すまでの時間を調べる
855+$79 _MS_ONTM マウスのボタンを押すまでの時間を調べる
856+$7a _MS_PATST マウスカーソルのパターン定義
857+$7b _MS_SEL マウスカーソルのパターン選択
858+$7c _MS_SEL2 マウスカーソルのアニメーション
859+$7d _SKEY_MOD ソフトキーボード制御
860+$7e _DENSNS 電卓制御
861+$7f _ONTIME 起動後の経過時間を調べる
862+$80 _B_INTVCS ベクタ設定
863+$81 _B_SUPER スーパーバイザ/ユーザモードの切り換え
864+$82 _B_BPEEK 指定アドレスから 1 バイト読み込み
865+$83 _B_WPEEK 指定アドレスから 1 ワード読み込み
866+$84 _B_LPEEK 指定アドレスから 1 ロングワード読み込み
867+$85 _B_MEMSTR 指定アドレスから複数バイト読み込み
868+$86 _B_BPOKE 指定アドレスヘ 1 バイト書き込み
869+$87 _B_WPOKE 指定アドレスヘ 1 ワード書き込み
870+$88 _B_LPOKE 指定アドレスヘ 1 ロングワード書き込み
871+$89 _B_MEMSET 指定アドレスヘ複数バイト書き込み
872+$8a _DMAMOVE DMA 転送
873+$8b _DMAMOV_A DMA 転送(アレイチェーン)
874+$8c _DMAMOV_L DMA 転送(リンクアレイチェーン)
875+$8d _DMAMODE DMA 状態検査
876+$8e _BOOTINF 起動情報を得る
877+$8f _ROMVER ROM バージョンを得る
878+$90 _G_CLR_ON グラフィック画面の初期化及び表示モードの設定
879+$91 (未公開) グラフィック画面モードの設定
880+$92 (未公開) プライオリティ設定
881+$93 (未公開) 画面表示及び特殊モードの設定
882+$94 _GPALET グラフィックパレット設定
883+$95 (未公開) カラーコード設定
884+$96 (未公開) アクセスページ設定
885+$97 (未公開) グラフィック VRAM のドット単位読み込み
886+$98 (未公開) グラフィック VRAM のドット単位書き込み(色マスクあり)
887+$99 (未公開) グラフィック VRAM のドット単位書き込み
888+$9a (未公開) グラフィック VRAM のビットパターン書き込み
889+$9b (未公開) グラフィック VRAM のビットパターン書き込み(バックカラーあり)
890+$9c (未公開) グラフィック VRAM のビットパターン拡大書き込み
891+$a0 _SFTJIS S-JIS→JIS コード変換
892+$a1 _JISSFT JIS→S-JIS コード変換
893+$a2 _AKCONV ANK→S-JIS コード変換
894+$a3 _RMACNV ローマ字→ANK カナ変換
895+$a4 _DAKJOB 濁点処理
896+$a5 _HANJOB 半濁点処理
897+$ac _SYS_STAT システム状態の設定
898+$ad _B_CONMOD カーソルおよびスクロールの設定
899+$ae _OS_CURON カーソル表示
900+$af _OS_CUROF カーソル消去
901+$b0 _DRAWMODE グラフィック描画モードの設定
902+$b1 _APAGE グラフィック描画ページの設定
903+$b2 _VPAGE グラフィック画面表示ページの設定
904+$b3 _HOME グラフィック画面の表示位置設定
905+$b4 _WINDOW グラフィック描画ウィンドウの設定
906+$b5 _WIPE グラフィック画面のクリア
907+$b6 _PSET グラフィック画面のポイントセット
908+$b7 _POINT グラフィック画面のポイントゲット
909+$b8 _LINE グラフィック画面のライン
910+$b9 _BOX グラフィック画面のボックス
911+$ba _FILL グラフィック画面のボックスフィル
912+$bb _CIRCLE グラフィック画面のサークル
913+$bc _PAINT グラフィック画面のペイント
914+$bd _SYMBOL グラフィック画面のシンボル
915+$be _GETGRM グラフィック画面のドット単位読み込み
916+$bf _PUTGRM グラフィック画面のドット単位書き込み
917+$c0 _SP_INIT スプライト初期化
918+$c1 _SP_ON スプライト表示
919+$c2 _SP_OFF スプライト消去
920+$c3 _SP_CGCLR スプライトパターンのクリア
921+$c4 _SP_DEFCG スプライトパターンの定義
922+$c5 _SP_GTPCG スプライトパターンの読み込み
923+$c6 _SP_REGST スプライトレジスタの設定
924+$c7 _SP_REGGT スプライトレジスタの読み出し
925+$c8 _BGSCRLST バックグラウンドスクロールレジスタの設定
926+$c9 _BGSCRLGT バックグラウンドスクロールレジスタの読み出し
927+$ca _BGCTRLST バックグラウンドコントロールレジスタの設定
928+$cb _BGCTRLGT バックグラウンドコントロールレジスタの読み出し
929+$cc _BGTEXTCL バックグラウンドテキストのクリア
930+$cd _BGTEXTST バックグラウンドテキストの設定
931+$ce _BGTEXTGT バックグラウンドテキストの読み出し
932+$cf _SPALET スプライトパレットの設定
933+$d3 _TXXLINE テキスト画面の水平ライン
934+$d4 _TXYLINE テキスト画面の垂直ライン
935+$d5 _TXLINE テキスト画面のライン
936+$d6 _TXBOX テキスト画面のボックス
937+$d7 _TXFILL テキスト画面のボックスフィル
938+$d8 _TXREV テキスト画面の反転
939+$df _TXRASCPY テキスト画面のラスターコピー
940+$f0 _OPMDRV OPMDRV 制御
941+$f1 _RSDRV 拡張 RS-232C 制御
942+$f2 _A_JOYGET アナログジョイスティック制御
943+$f3 _MUSICDRV MUSICDRV 制御
944+$f5 _SCSIDRV SCSI IOCS
945+$fd _ABORTRST アボートする為に環境を再設定する
946+$fe _IPLERR 再起動する
947+$ff _ABORTJOB アボート
948+
949+==============================================================================
950+
951+・キーのスキャンコード
952+
953+キーコード キー入力状態ビット
954+ グループ 7 6 5 4 3 2 1 0
955+
956+ 0 6& 5% 4$ 3# 2" 1! ESC
957+ 1 BS \| ^~ -= 0 9) 8( 7'
958+ 2 U Y T R E W Q TAB
959+ 3 S A CR [{ @` P O I
960+ 4 ;+ L K J H G F D
961+ 5 N B V C X Z ]} :*
962+ 6 DEL HOME SPACE _ /? .> ,< M
963+ 7 CLR ↓ → ↑ ← UNDO R_DOWN R_UP
964+ 8 4 + 9 8 7 - * /
965+ 9 0 ENTER 3 2 1 = 6 5
966+ a XF3 XF2 XF1 HELP 登録 記号 . ,
967+ b ひら INS CAPS コード ロ-マ字 かな XF5 XF4
968+ c F4 F3 F2 F1 F0 COPY BREAK 全角
969+ d F9 F8 F7 F6 F5
970+ e OPT.2 OPT.1 CTRL SHIFT
971+
972+ スキャンコード = キーコードグループ×8+キー入力状態ビット
973+
974+ 10:TAB 20:D 30:M 40:/ 50:, 60:全角 70:SHIFT
975+01:ESC 11:Q 21:F 31:,< 41:* 51:. 61:BREAK 71:CTRL
976+02:1! 12:W 22:G 32:.> 42:- 52:記号 62:COPY 72:OPT.1
977+03:2" 13:E 23:H 33:/? 43:7 53:登録 63:F0 73:OPT.2
978+04:3# 14:R 24:J 34:_ 44:8 54:HELP 64:F1
979+05:4$ 15:T 25:K 35:SPACE 45:9 55:XF1 65:F2
980+06:5% 16:Y 26:L 36:HOME 46:+ 56:XF2 66:F3
981+07:6& 17:U 27:;+ 37:DEL 47:4 57:XF3 67:F4
982+08:7' 18:I 28::* 38:R_UP 48:5 58:XF4 68:F5
983+09:8( 19:O 29:]} 39:R_DOWN 49:6 59:XF5 69:F6
984+0a:9) 1a:P 2a:Z 3a:UNDO 4a:= 5a:かな 6a:F7
985+0b:0 1b:@` 2b:X 3b:← 4b:1 5b:ロ-マ字 6b:F8
986+0c:-= 1c:[{ 2c:C 3c:↑ 4c:2 5c:コ-ド 6c:F9
987+0d:^~ 1d:CR 2d:V 3d:→ 4d:3 5d:CAPS
988+0e:\| 1e:A 2e:B 3e:↓ 4e:ENTER 5e:INS
989+0f:BS 1f:S 2f:N 3f:CLR 4f:0 5f:ひらがな
990+
991+==============================================================================
992+
993+==============================================================================
994+
995+$00 _B_KEYINP キーデータの読み込み
996+
997+返値 キーデータ
998+ d0.hb スキャンコード
999+ d0.b ASCII コード
1000+
1001+ キーデータを読み込む. キーが入力されていなければ入力されるまで待つ.
1002+ SHIFT,CTRL,OPT.1,OPT.2 については、離した時にもスキャンコードに $80 を
1003+ 足した値を返す.
1004+ ASCII コードは SHIFT,CTRL,かな,CAPS により変化し、また ASCII 文字が定義
1005+ されていない場合は 0 になる.
1006+ 通常テレビコントロールに割り当てられているキーは入力されないが、押し下げ
1007+ 状態には反映される.
1008+
1009+==============================================================================
1010+
1011+$01 _B_KEYSNS キーの入力検査
1012+
1013+返値 d0.l = 0 キー入力なし
1014+ $1_???? 〃 あり($???? はキーデータ)
1015+
1016+ キーが入力されているか調べる. キーデータバッファの内容は変化しない.
1017+
1018+==============================================================================
1019+
1020+$02 _B_SFTSNS シフトキー状態の収得
1021+
1022+返値 d0.l シフトキーの状態
1023+ bit 14 全角
1024+ bit 13 ひらがな
1025+ bit 12 INS
1026+ bit 11 CAPS
1027+ bit 10 コード入力
1028+ bit 9 ローマ字
1029+ bit 8 かな
1030+
1031+ bit 7 CAPS
1032+ bit 6 コード入力
1033+ bit 5 ローマ字
1034+ bit 4 かな
1035+ bit 3 OPT.2
1036+ bit 2 OPT.1
1037+ bit 1 CTRL
1038+ bit 0 SHIFT
1039+
1040+ bit 7〜0 はキーが実際に押されている(1)か押されていない(0)か、
1041+ bit 14〜8 は LED が点灯(1)しているか消灯(0)しているかを表す.
1042+
1043+ シフトキーの状態を調べる.
1044+
1045+==============================================================================
1046+
1047+$03 _KEY_INIT 入力関係の初期化
1048+
1049+引数 d1.b LED キーモード初期値
1050+
1051+ キーボードバッファをクリアし、LED モードを初期化する. この IOCS コール
1052+ は ROM 起動時に使用されるので、一般のアプリケーションからは使用禁止.
1053+ ROM IOCS では、ショートカットで呼び出すと割り込みが全て許可された状態
1054+ で帰るので注意すること.
1055+
1056+==============================================================================
1057+
1058+$04 _BITSNS キー状態の収得
1059+
1060+引数 d1.w キーコードグループ(0〜$f)
1061+
1062+返値 d0.b キーの押し下げ状態
1063+
1064+ 指定したキーコードグループに含まれるキーの押し下げ状態をビット単位で
1065+ 調べる. 対応するビットが 1 でキーが押されていることを示す.
1066+
1067+==============================================================================
1068+
1069+$05 _SKEYSET キー入力の発生
1070+
1071+引数 d1.l スキャンコード
1072+ bit 7 0:キーを押す 1:キーを離す
1073+ bit 6〜0 スキャンコード
1074+
1075+ 指定したキーの入力をソフト的に発生させる.
1076+
1077+==============================================================================
1078+
1079+$06 _LEDCTRL キーボード LED の設定
1080+
1081+引数 d1.b キーボード LED 状態
1082+ bit 6 全角
1083+ bit 5 ひらがな
1084+ bit 4 INS
1085+ bit 3 CAPS
1086+ bit 2 コード入力
1087+ bit 1 ローマ字
1088+ bit 0 かな
1089+
1090+ キーボード LED のモードを設定する. キー入力モードは変更されない.
1091+
1092+==============================================================================
1093+
1094+$07 _LEDSET キーボード LED をキー入力モードに合わせる
1095+
1096+ キーボード LED のモードをキー入力モードに合わせる.
1097+
1098+==============================================================================
1099+
1100+$08 _KEYDLY キーリピートの開始時間設定
1101+
1102+引数 d1.b キーリピート開始時間(0〜15)
1103+
1104+ キーリピート開始までの時間を (200+100×d1.b)ms に設定する.
1105+
1106+==============================================================================
1107+
1108+$09 _KEYREP キーリピートの間隔設定
1109+
1110+引数 d1.b キーリピート間隔(0〜15)
1111+
1112+ キーリピートの間隔を (30+5×d1.b・)ms に設定する.
1113+
1114+==============================================================================
1115+
1116+$0a (未公開) OPT.2 によるテレビコントロール許可
1117+
1118+ OPT.2 によるテレビコントロールを許可する.
1119+ ROM IOCS では、d0.b に $0a がセットされた状態で呼び出さないと正常動作
1120+ しないので注意すること.
1121+
1122+==============================================================================
1123+
1124+$0b (未公開) OPT.2 によるテレビコントロール禁止
1125+
1126+ OPT.2 によるテレビコントロールを禁止する.
1127+ ROM IOCS では、d0.b に $0b がセットされた状態で呼び出さないと正常動作
1128+ しないので注意すること.
1129+
1130+==============================================================================
1131+
1132+$0c _TVCTRL テレビコントロール
1133+
1134+引数 d1.l テレビコントロールコード
1135+ d1.l = $01 ボリュームアップ
1136+ $02 〃 ダウン
1137+ $03 〃 標準
1138+ $04 チャンネルコール
1139+ $05 テレビ画面(リセット)
1140+ $06 音声ミュート
1141+ $07 電源オン
1142+ $08 テレビ/コンピュータ画面切り替え
1143+ $09 テレビ/外部入力の切り替え若しくはコンピュータ表示モードの変更
1144+ $0a コントラスト標準
1145+ $0b チャンネルアップ
1146+ $0c 〃 ダウン
1147+ $0d 電源オフ
1148+ $0e 電源オン/オフ切り替え
1149+ $0f スーパーインポーズ及びコントラストダウン/標準切り替え
1150+ $10 チャンネル 1
1151+ $11 〃 2
1152+ $12 〃 3
1153+ $13 〃 4
1154+ $14 〃 5
1155+ $15 〃 6
1156+ $16 〃 7
1157+ $17 〃 8
1158+ $18 〃 9
1159+ $19 〃 10
1160+ $1a 〃 11
1161+ $1b 〃 12
1162+ $1c テレビ画面($05)
1163+ $1d コンピュータ画面($05+$08)
1164+ $1e スーパーインポーズ及びコントラストダウン($05+$0f)
1165+ $1f スーパーインポーズ及びコントラスト標準($05+$0f+$0a)
1166+ +$20 電源オン($07)後、上記の機能を実行
1167+
1168+返値 d1.w は破壊される.
1169+
1170+ ディスプレイを制御する.
1171+
1172+==============================================================================
1173+
1174+$0d _LEDMOD LED モードの設定
1175+
1176+引数 d1.l LED キーの番号
1177+ d1.l = 0 かな
1178+ 1 ローマ字
1179+ 2 コード入力
1180+ 3 CAPS
1181+ 4 INS
1182+ 5 ひらがな
1183+ 6 全角
1184+ d2.b ON/OFF の指定(0:OFF 1:ON)
1185+
1186+返値 d0.l = 0 正常終了
1187+ -1 エラー(キー番号が大きすぎる)
1188+
1189+ キーボード LED とキー入力モードを設定する.
1190+
1191+==============================================================================
1192+
1193+$0e _TGUSEMD 画面の使用状態の設定
1194+
1195+引数 d1.b グラフィック/テキスト画面の指定
1196+ d1.b = 0 グラフィック画面($c00000〜$dfffff)
1197+ 1 テキスト画面 ($e40000〜$e7ffff)
1198+ d2.b 画面の使用状態
1199+ d2.b = 0 未使用
1200+ 1 システムで使用中(ソフトキーボード/電卓)
1201+ 2 アプリケーションで使用中(RAMDISK等)
1202+ 3 破壊
1203+ -1 現在の使用状態を調べる.
1204+
1205+返値 変更前の使用状態(-1 なら画面の指定が異常)
1206+
1207+ グラフィック/テキスト画面の使用状態を設定する.
1208+ テキストの使用状態を 2 にすると、ソフトキーボード/電卓が消去され、以後
1209+ マウスカーソル/ソフトキーボード/電卓が新たに表示出来なくなる.
1210+
1211+==============================================================================
1212+
1213+$0f _DEFCHR 外字定義
1214+
1215+引数 d1.hw パターンの大きさ
1216+ d1.hw = 8 8x16,16x16ドット
1217+ 12 12x24,24x24〃
1218+ d1.w 漢字コード(Shift-JIS/JIS)
1219+ a1.l パターンアドレス
1220+
1221+返値 d0.l = 0 正常終了
1222+ -1 エラー(指定の漢字コードは外字ではない)
1223+
1224+ 外字を設定する.
1225+ 指定できる漢字コードは、全角 $eb9f〜$ebfc(JIS:$7621〜$767e) 及び
1226+ $ec40〜$ec7e($7721〜777e)、半角 $f400〜$f5ff.
1227+ CONDRV.SYS 及び HIOCS.X 常駐時には、d1.l = 0 でカーソルの形状を設定し、
1228+ d1.l = -1 で元に戻す. また、d1.l = $ffff で CONDRV.SYS の
1229+ バックスクロールウィンドウ内のカーソル形状を設定する.
1230+
1231+==============================================================================
1232+
1233+$10 _CRTMOD CRT モード設定
1234+
1235+引数 d1.w CRT モード
1236+ 実画面 表示画面 色数 枚数 kHz
1237+ d1.w = 0 1024 512 x 512 16 1 31
1238+ 1 〃 〃 〃 〃 15
1239+ 2 〃 256 x 256 〃 〃 31
1240+ 3 〃 〃 〃 〃 15
1241+ 4 512 512 x 512 16 4 31
1242+ 5 〃 〃 〃 〃 15
1243+ 6 〃 256 x 256 〃 〃 31
1244+ 7 〃 〃 〃 〃 15
1245+ 8 〃 512 x 512 256 2 31
1246+ 9 〃 〃 〃 〃 15
1247+ 10 〃 256 x 256 〃 〃 31
1248+ 11 〃 〃 〃 〃 15
1249+ 12 〃 512 x 512 65536 1 31
1250+ 13 〃 〃 〃 〃 15
1251+ 14 〃 256 x 256 〃 〃 31
1252+ 15 〃 〃 〃 〃 15
1253+ 16 1024 768 x 512 16 1 31
1254+ 17 〃 1024 x 424 〃 〃 24
1255+ 18 〃 1024 x 848 〃 〃 24
1256+
1257+ 19 〃 640 x 480 〃 〃 24
1258+
1259+ 20 〃 768 x 512 256 2 31
1260+ 21 〃 1024 x 848 〃 〃 24
1261+ 22 〃 1024 x 424 〃 〃 24
1262+ 23 〃 640 x 480 〃 〃 24
1263+ 24 〃 768 x 512 65536 1 31
1264+ 25 〃 1024 x 848 〃 〃 24
1265+ 26 〃 1024 x 424 〃 〃 24
1266+ 27 〃 640 x 480 〃 〃 24
1267+ +$100 モードの切り換えのみ行なう
1268+ -1 現在のモードを調べる
1269+
1270+返値 d1.w = -1 の時、現在のモード(0〜19)
1271+
1272+ CRT モードを設定する. テキスト画面のプレーン 0/1 をクリアして表示モード
1273+ に、グラフィック画面とスプライト画面はクリアせずに無表示モードにする.
1274+ テキストパレットは初期化される.
1275+ d1.w = 19 の 640 x 480 のモードは ROM IOCS version 1.2 以上で使用可能.
1276+ d1.w = 20〜27 は表示画面サイズより小さい実画面のグラフィックを表示する
1277+ モードで、ROM IOCS version 1.3 だけで使用可能(ハードウェア的には全機種
1278+ とも実現可能).
1279+
1280+==============================================================================
1281+
1282+$11 _CONTRAST コントラスト設定
1283+
1284+引数 d1.b コントラスト
1285+ d1.b = 0〜15 コントラストを設定する
1286+ -1 コントラストを調べる
1287+ -2 システム設定値に戻す
1288+
1289+返値 変更前のコントラスト
1290+
1291+ コントラストを設定する.
1292+
1293+==============================================================================
1294+
1295+$12 _HSVTORGB HSV→RGB 変換
1296+
1297+引数 d1.l HSV データ
1298+ %iiif_ffff_000s_ssss_000v_vvvv
1299+ bit 23〜21 色相
1300+ %000 赤 〜黄色
1301+ %001 黄色 〜緑
1302+ %010 緑 〜シアン
1303+ %011 シアン 〜青
1304+ %100 青 〜マゼンダ
1305+ %101 マゼンダ〜赤
1306+ %110 禁止
1307+ %111 〃
1308+ bit 20〜16 色相(色合)
1309+ bit 12〜 8 彩度(0:白 $1f:原色)
1310+ bit 4〜 0 明度(0:黒 $1f:原色)
1311+
1312+返値 RGB データ(輝度ビットは常に 0)
1313+ %gggg_grrr_rrbb_bbb0
1314+ bit 15〜11 緑成分
1315+ bit 10〜 6 赤〃
1316+ bit 5〜 1 青〃
1317+ ただし、色相が異常な場合は -1 が返る.
1318+
1319+ HSV 方式による色データを RGB 方式に変換する.
1320+ HSV 方式は、色相/彩度/明度による色の指定方法.
1321+
1322+==============================================================================
1323+
1324+$13 _TPALET テキストパレット設定
1325+
1326+引数 d1.b パレットコード(0〜15)
1327+ d1.b = 0 テキストカラー 0
1328+ 1 〃 1
1329+ 2 〃 2
1330+ 3 〃 3
1331+ 4〜7 ソフトキーボード/電卓 0
1332+ 8〜15 〃 1
1333+ d2.l カラーコード
1334+ d2.l = 0〜$ffff カラーコードを設定
1335+ -1 カラーコードを調べる
1336+ -2 システム設定値に戻す
1337+
1338+返値 ステータス(d2.l = -1 の時はカラーコード)
1339+ d0.l = 0 正常終了
1340+ -1 カラーコードが異常
1341+
1342+ テキストパレットにカラーコードを設定する. パレットに 4〜7,8〜15 を指定
1343+ した時は、それらの全てに同じカラーコードが設定される.
1344+
1345+==============================================================================
1346+
1347+$14 _TPALET2 テキストパレット独立設定
1348+
1349+引数 d1.b パレットコード(0〜15)
1350+ d2.l カラーコード
1351+ d2.l = 0〜$ffff カラーコードを設定
1352+ -1 カラーコードを調べる
1353+
1354+返値 ステータス(d2.l = -1 の時はカラーコード)
1355+ d0.l = 0 正常終了
1356+ -1 カラーコードが異常
1357+
1358+ テキストパレットにカラーコードを設定する.
1359+ IOCS TPALET($13) とは違い、パレットごとに独立して設定出来る.
1360+
1361+==============================================================================
1362+
1363+$15 _TCOLOR テキストプレーン指定
1364+
1365+引数 d1.b アクセスプレーンの指定
1366+ d1.b = %???1 プレーン 0
1367+ %??10 〃 1
1368+ %?100 〃 2
1369+ %1000 〃 3
1370+ %0000 〃 0
1371+
1372+返値 d1.w は破壊される.
1373+
1374+ IOCS TEXTGET($1a),TEXTPUT($1b),CLIPPUT($1c) でアクセスされるテキスト
1375+ プレーンを設定する. 使用後はプレーン 0 を設定しなければならないが、0
1376+ 以外のままの場合、その他の IOCS コールの動作は保証されない.
1377+
1378+==============================================================================
1379+
1380+$16 _FNTADR フォントアドレスの収得
1381+
1382+引数 d1.w 漢字コード(Shift-JIS/JIS)
1383+ d2.b パターンの大きさ
1384+ d2.b = 6 6x12,12x12ドット
1385+ 8 8x16,16x16〃
1386+ 12 12x24,24x24〃
1387+
1388+返値 d0.l パターンアドレス
1389+ d1.hw パターンの X 方向のドット数
1390+ d1.w パターンの X 方向のバイト数-1
1391+ d2.w 〃 Y 〃 ドット数-1
1392+
1393+ 指定の文字フォントのアドレスを調べる.
1394+ 得られたアドレスはスーパーバイザ領域の可能性がある.
1395+ それぞれの文字は文字コードの順に連続的に配置されているとは限らない.
1396+ 外字、12ドット文字はいつまでもパターンデータが残っているとは限らない.
1397+ この IOCS コールはシステムで使用するので、一般のアプリケーションからは
1398+ 使用しないこと.
1399+ なお、ROM IOCS version 1.3 及び HIOCS.X では d2.b = 0 の場合 8 が指定
1400+ されたものと扱うが、それ以外だと動作が違うので注意すること.
1401+
1402+==============================================================================
1403+
1404+$17 _VRAMGET テキスト VRAM のバイト単位読み込み
1405+
1406+引数 d1.w バッファの X 方向のバイト数-1
1407+ d2.w 〃 Y 〃 ドット数-1
1408+ d3.l (VRAM の X 方向-バッファの X 方向)のバイト数
1409+ a1.l バッファのアドレス
1410+ a2.l VRAM 〃
1411+
1412+返値 d0/d1/d2/a1/a2 は内容が保証されない.
1413+
1414+ VRAM からバッファにバイト単位で読み込む.
1415+ VRAM にテキスト画面を指定する場合は、VRAM の X 方向のバイト数は 128 バ
1416+ イトとなる.
1417+
1418+==============================================================================
1419+
1420+$18 _VRAMPUT テキスト VRAM のバイト単位書き込み
1421+
1422+引数 d1.w バッファの X 方向のバイト数-1
1423+ d2.w 〃 Y 〃 ドット数-1
1424+ d3.l (VRAM の X 方向-バッファの X 方向)のバイト数
1425+ a1.l バッファのアドレス
1426+ a2.l VRAM 〃
1427+
1428+返値 d0/d1/d2/a1/a2 は内容が保証されない.
1429+
1430+ バッファから VRAM にバイト単位で書き込む.
1431+ VRAM にテキスト画面を指定する場合は、VRAM の X 方向のバイト数は 128 バ
1432+ イトとなる.
1433+
1434+==============================================================================
1435+
1436+$19 _FNTGET フォント読み込み
1437+
1438+引数 d1.hw パターンの大きさ
1439+ d1.hw = 6 6x12,12x12ドット
1440+ 0,8 8x16,16x16〃
1441+ 12 12x24,24x24〃
1442+ d1.w 漢字コード(Shift-JIS/JIS)
1443+ a1.l データバッファのアドレス(4+フォントサイズ分のバイト数が必要)
1444+ (0,a1) パターンの X 方向のドット数
1445+ (2,a1) Y 〃
1446+ (4,a1) (パターンデータ)
1447+
1448+返値 パターンの存在するアドレス(転送元)
1449+
1450+ 指定の文字フォントを読み込む.
1451+
1452+==============================================================================
1453+
1454+$1a _TEXTGET テキスト VRAM のドット単位読み込み
1455+
1456+引数 d1.w X 座標
1457+ d2.w Y 座標
1458+ a1.l データバッファのアドレス
1459+ (0,a1) パターンの X 方向のドット数
1460+ (2,a1) Y 〃
1461+ (4,a1) (パターンデータ)
1462+
1463+ テキスト VRAM からドット単位で読み込む.
1464+
1465+==============================================================================
1466+
1467+$1b _TEXTPUT テキスト VRAM のドット単位書き込み
1468+
1469+引数 d1.w X 座標
1470+ d2.w Y 座標
1471+ a1.l データバッファのアドレス
1472+ (0,a1) パターンの X 方向のドット数
1473+ (2,a1) Y 〃
1474+ (4,a1) パターンデータ
1475+
1476+ テキスト VRAM へドット単位で書き込む.
1477+
1478+==============================================================================
1479+
1480+$1c _CLIPPUT テキスト VRAM のドット単位書き込み(クリッピング処理あり)
1481+
1482+引数 d1.w X 座標
1483+ d2.w Y 座標
1484+ a1.l データバッファのアドレス
1485+ (0,a1) パターンの X 方向のドット数
1486+ (2,a1) Y 〃
1487+ (4,a1) パターンデータ
1488+ a2.l クリッピング座標バッファのアドレス
1489+ (0,a2) 左端 X 座標
1490+ (2,a2) 上端 Y 〃
1491+ (4,a2) 右端 X 〃
1492+ (6,a2) 下端 Y 〃
1493+
1494+ クリッピング処理をしながら、テキスト VRAM へドット単位で書き込む.
1495+
1496+==============================================================================
1497+
1498+$1d _SCROLL 表示座標の設定
1499+
1500+引数 d1.w 動作の指定
1501+ d1.w = 0 グラフィックページ 0 の設定
1502+ 1 〃 1 〃
1503+ 2 〃 2 〃
1504+ 3 〃 3 〃
1505+ 4 〃 0 の表示座標の収得のみ
1506+ 5 〃 1 〃
1507+ 6 〃 2 〃
1508+ 7 〃 3 〃
1509+ 8 テキストの設定
1510+ 9 〃表示座標の収得のみ
1511+ d2.w X 座標(設定時)
1512+ d3.w Y 〃
1513+
1514+返値 変更前の表示座標
1515+ d0.hw X 座標
1516+ d0.lw Y 〃
1517+
1518+ グラフィック及びテキストの表示座標を設定する.
1519+ テキスト画面の X 座標を、表示画面が実画面からはみ出る位置に設定すると
1520+ 表示が乱れる.
1521+ 通常、変更前の表示座標はハードウェアの仕様により常に 0 が返る.
1522+
1523+==============================================================================
1524+
1525+$1e _B_CURON カーソル一時停止解除
1526+
1527+ カーソルの表示の一時停止を解除する.
1528+
1529+==============================================================================
1530+
1531+$1f _B_CUROFF カーソル一時停止
1532+
1533+ カーソルの表示を一時停止する.
1534+
1535+==============================================================================
1536+
1537+$20 _B_PUTC 文字表示
1538+
1539+引数 d1.w 文字コード
1540+
1541+返値 表示後のカーソル位置
1542+ d0.hw 桁位置
1543+ d0.w 行〃
1544+
1545+ 文字を表示する.
1546+ 漢字を表示する場合、第 1/第 2 バイトを 2 回に分けてもかまわない.
1547+ 画面の右端で半角 1 文字しか表示出来ない時に全角文字を表示しようとした
1548+ 場合、半角スペースを表示して改行してから全角文字を表示する.
1549+
1550+==============================================================================
1551+
1552+$21 _B_PRINT 文字列表示
1553+
1554+引数 a1.l 文字列のアドレス
1555+
1556+返値 d0.l 表示後のカーソル位置
1557+ d0.hw 桁位置
1558+ d0.w 行〃
1559+ a1.l 文字列終端の 0 のアドレス
1560+
1561+ 文字列を表示する.
1562+
1563+==============================================================================
1564+
1565+$22 _B_COLOR 表示色設定
1566+
1567+引数 d1.w 表示属性
1568+ d1.w = 0 テキストパレット 0 (通常黒)
1569+ 1 〃 1 (〃 水色)
1570+ 2 〃 2 (〃 黄色)
1571+ 3 〃 3 (〃 白)
1572+ + 4 強調
1573+ + 8 逆転
1574+ +12 逆転強調
1575+ -1 属性を調べる
1576+
1577+返値 d0.b 変更前の表示属性(負数なら表示属性の指定が異常)
1578+
1579+ IOCS B_PUTC($20),B_PRINT($21) で表示する文字の属性を設定する.
1580+
1581+==============================================================================
1582+
1583+$23 _B_LOCATE カーソル移動
1584+
1585+引数 d1.w 桁位置(ただし、d1.w = -1 の時カーソル位置の収得のみ)
1586+ d2.w 行〃
1587+
1588+返値 移動前のカーソル位置(-1 ならカーソル位置の指定が異常)
1589+ d0.hw 桁位置
1590+ d0.w 行〃
1591+
1592+ カーソルを指定位置に移動する.
1593+ ROM IOCS version 1.3 では、座標収得時のみ d1.l に d0.l と同じ値が返る.
1594+
1595+==============================================================================
1596+
1597+$24 _B_DOWN_S カーソルを 1 行下に移動
1598+
1599+返値 常に 0
1600+
1601+ カーソルを 1 行下に移動する.
1602+ カーソルが最下行にある場合はスクロールアップする.
1603+
1604+==============================================================================
1605+
1606+$25 _B_UP_S カーソルを 1 行下に移動
1607+
1608+返値 常に 0
1609+
1610+ カーソルを 1 行上に移動する.
1611+ カーソルが先頭行にある場合はスクロールダウンする.
1612+
1613+==============================================================================
1614+
1615+$26 _B_UP カーソルを指定行数だけ上に移動
1616+
1617+引数 d1.b 移動行数(0 の時は 1 と見なします)
1618+
1619+返値 常に 0
1620+
1621+ カーソルを指定行上に移動する.
1622+ 指定行数だけ移動出来ない場合は移動しない.
1623+ ROM IOCS version 1.3 では、移動した場合に 0、移動しなかった場合には -1
1624+ を返す.
1625+
1626+==============================================================================
1627+
1628+$27 _B_DOWN カーソルを指定行数だけ下に移動
1629+
1630+引数 d1.b 移動行数(0 の時は 1 と見なします)
1631+
1632+返値 常に 0
1633+
1634+ カーソルを指定行下に移動する.
1635+ 指定行数だけ移動出来ない場合は最下行まで移動する.
1636+
1637+==============================================================================
1638+
1639+$28 _B_RIGHT カーソルを指定桁数だけ右に移動
1640+
1641+引数 d1.b 移動桁数(0 の時は 1 と見なします)
1642+
1643+返値 常に 0
1644+
1645+ カーソルを指定桁右に移動する.
1646+ 指定桁数だけ移動出来ない場合は右端まで移動する.
1647+
1648+==============================================================================
1649+
1650+$29 _B_LEFT カーソルを指定桁数だけ左に移動
1651+
1652+引数 d1.b 移動桁数(0 の時は 1 と見なします)
1653+
1654+返値 常に 0
1655+
1656+ カーソルを指定桁左に移動する.
1657+ 指定桁数だけ移動出来ない場合は左端まで移動する.
1658+
1659+==============================================================================
1660+
1661+$2a _B_CLR_ST 画面の複数行消去
1662+
1663+引数 d1.b 消去範囲の指定
1664+ d1.b = 0 カーソル位置から最終行右端まで
1665+ 1 先頭行左端からカーソル位置まで
1666+ 2 画面全体(消去後カーソルは先頭行左端に移動します)
1667+
1668+ 範囲を指定して画面の複数行を消去する.
1669+
1670+==============================================================================
1671+
1672+$2b _B_ERA_ST 現在行の複数桁消去
1673+
1674+引数 d1.b 消去範囲の指定
1675+ d1.b = 0 カーソル位置から右端まで
1676+ 1 左端からカーソル位置まで
1677+ 2 カーソル行全体
1678+
1679+返値 d0.l = 0 正常終了
1680+ その他 異常終了(範囲指定若しくはカーソル位置が異常)
1681+
1682+ 範囲を指定してカーソル行の複数桁を消去する.
1683+ 異常終了した時の返値は通常 -1 だが、ROM IOCS version 1.3 未満でかつカ
1684+ ーソル位置が原因の場合は不定である.
1685+
1686+==============================================================================
1687+
1688+$2c _B_INS 複数行挿入
1689+
1690+引数 d1.b 挿入行数(0 の時は 1 と見なします)
1691+
1692+返値 常に 0
1693+
1694+ カーソル位置に複数行挿入する. カーソル行以下の行はスクロールする.
1695+ カーソルは左端に移動する.
1696+ ROM IOCS version 1.3 未満では引数の d1.w の上位バイトを 0 にしておかな
1697+ いと正常に動作しないので注意すること.
1698+
1699+==============================================================================
1700+
1701+$2d _B_DEL 複数行削除
1702+
1703+引数 d1.b 削除行数(0 の時は 1 と見なします)
1704+
1705+返値 常に 0
1706+
1707+ カーソル位置から複数行削除する. カーソル行以下の行はスクロールする.
1708+ ROM IOCS version 1.3 未満では引数の d1.w の上位バイトを 0 にしておかな
1709+ いと正常に動作しないので注意すること.
1710+
1711+==============================================================================
1712+
1713+$2e _B_CONSOL 表示範囲設定
1714+
1715+引数 d1.l 表示開始位置(d1.l = -1 の時変更しません)
1716+ d1.hw X 方向の表示開始ドット位置(16の倍数で1008以下)
1717+ d1.w Y 〃 ( 4 〃 1020 〃 )
1718+ d2.l 表示範囲(d2.l = -1 の時変更しません)
1719+ d2.hw X 方向の表示桁数-1(0〜127)
1720+ d2.w Y 〃 行数-1(0〜 63)
1721+
1722+返値 d0.l 常に 0
1723+ d1.l 変更前の表示開始オフセット(X/8+Y*128)
1724+ d2.l 〃 表示範囲
1725+
1726+ テキスト画面の表示範囲を設定する. カーソルは先頭行左端に移動する.
1727+ IOCS $20〜$2d で扱う座標は設定した表示範囲の左上が(0,0)となり、表示
1728+ 範囲内に影響する. ただし、スクロール/画面クリアは表示範囲外の桁に
1729+ 影響が出る. 表示範囲だけスクロールさせるには IOCS B_CONMOD($ad) の
1730+ モード 18:ソストコピースクロールを指定する.
1731+ IOCS.X 組み込み時は引数の d1.hw に 8 の倍数を指定出来るが、ROM IOCS
1732+ version 1.3 未満で 8 の倍数を指定するとアドレスエラーが発生する.
1733+
1734+==============================================================================
1735+
1736+$2f _B_PUTMES 座標指定文字列表示
1737+
1738+引数 d1.b 表示属性
1739+ d1.b = 0 テキストパレット 0 (通常黒)
1740+ 1 〃 1 (〃 水色)
1741+ 2 〃 2 (〃 黄色)
1742+ 3 〃 3 (〃 白)
1743+ + 4 強調
1744+ + 8 逆転
1745+ +12 逆転強調
1746+ d2.w 表示桁位置(絶対座標:0〜127)
1747+ d3.w 表示行位置(絶対座標:0〜 63)
1748+ d4.w 表示桁数-1
1749+ a1.l 表示文字列のアドレス
1750+
1751+返値 d0.l 不定(内容は保証されない)
1752+ d2.w 表示後の桁位置
1753+ d4.w 不定(内容は保証されない)
1754+ a1.l 文字列の終端のアドレス(指定した文字列が表示桁数より長ければ、
1755+ 最後に表示した文字の次のアドレス)
1756+
1757+ 指定した絶対座標から文字列を直接表示する. ファンクションキー行表示用で、
1758+ IOCS B_CONSOL($2e) の影響を受けない.
1759+ 桁数以上は表示しない(全角文字が表示出来ない場合は半角スペースが表示
1760+ される). 文字列が指定の桁数未満の長さの場合、残りは半角スペースを表示
1761+ する. 文字コード $fe は空白が表示される.
1762+ テキスト画面の右端まで行ったらそれ以上表示せず、スクロールもしない.
1763+
1764+==============================================================================
1765+
1766+$30 _SET232C RS-232C パラメータ設定
1767+
1768+引数 d1.w RS-232C 設定値(d1.w = -1 の時 現在の設定を調べます)
1769+ bit 15〜14 ストップビット(1:1bit 2:1.5bit 0,3:2bit)
1770+ bit 13〜12 パリティ(1:奇数 3:偶数 0,2:なし)
1771+ bit 11〜10 ビット長(0:5bit以下 1:6bit 2:7bit 3:8bit)
1772+ bit 9 XON/XOFF処理(0:OFF 1:ON)
1773+ bit 8 SI/SO 処理( 〃 )
1774+ bit 7〜 0 BPS(0: 75 1: 150 2: 300 3: 600 4:1200
1775+ 5:2400 6:4800 7:9600 8:17361)
1776+
1777+返値 変更前の設定
1778+
1779+ RS-232C のモードを設定する.
1780+ BPS に範囲外の値を指定した場合、1200BPS として初期化する.
1781+ ROM IOCS では、SI/SO処理が正常に動作しないので使用しないこと.
1782+ BPS の 8 番は ROM IOCS version 1.3 だけで使用可能.
1783+
1784+==============================================================================
1785+
1786+$31 _LOF232C RS-232C 受信バッファのデータ数を求める
1787+
1788+返値 d0.w RS-232C 受信データ数
1789+
1790+ RS-232C の受信バッファ内のデータ数を調べる.
1791+
1792+==============================================================================
1793+
1794+$32 _INP232C RS-232C 受信データを得る
1795+
1796+返値 d0.w RS-232C 受信データ(下位 8 ビット)
1797+
1798+ RS-232C からデータを受信する.
1799+ データを受信していなければ受信するまで待つ.
1800+
1801+==============================================================================
1802+
1803+$33 _ISNS232C RS-232C 受信データの検査
1804+
1805+返値 d0.l = 0 受信データなし
1806+ $100?? 〃 あり($?? は受信データ)
1807+
1808+ RS-232C からデータを受信しているか調べる.
1809+ 受信データバッファの内容は変化ない.
1810+
1811+==============================================================================
1812+
1813+$34 _OSNS232C RS-232C データが送信可能か検査する
1814+
1815+返値 d0.l = 0 送信不可能
1816+ 4 〃 可能(バッファが空で、XON でもない)
1817+
1818+ RS-232C にデータが送信可能か調べる.
1819+
1820+==============================================================================
1821+
1822+$35 _OUT232C RS-232C データ送信
1823+
1824+引数 d1.b 送信データ
1825+
1826+ RS-232C にデータを送信する.
1827+ データが送信不可能であれば送信可能になるまで待つ.
1828+
1829+==============================================================================
1830+
1831+$36 (未公開) マウスデータ受信時の処理アドレス設定
1832+
1833+引数 d1.l 処理アドレス(0 の時取り消し)
1834+ d2.w カウンタ初期値
1835+
1836+ マウスからデータを受信した時に呼び出されるサブルーチンのアドレスを設定
1837+ する. 通常はマウス処理 IOCS で使用するデータの書き換えを行うアドレスが
1838+ 設定されている.
1839+ 設定したアドレスが呼び出される時は、a1.l が示すアドレスからの 3 バイト
1840+ にマウスからの受信データがセットされている.
1841+ カウンタの値を大きくすると呼び出される間隔が長くなる(1 の時最短).
1842+ 処理アドレスに 0 を指定すると、標準アドレスが設定される.
1843+
1844+==============================================================================
1845+
1846+$37 (未公開) ESC[>系エスケープシーケンスの拡張処理アドレス設定
1847+
1848+引数 d1.l 処理アドレス(0 の時取り消し)
1849+
1850+返値 変更前のアドレス(ROM IOCS version 1.3 のみ)
1851+
1852+ エスケープシーケンスのうち、ESC[> 系の拡張処理を行うサブルーチンのアド
1853+ レスを設定する. 処理アドレスに 0 を指定すると、標準アドレスが設定される.
1854+ 設定したアドレスが呼び出される時は、d0.w に ESC[> の次の 2 バイトデータ、
1855+ a0.l に ESC[> のアドレスがセットされている.
1856+ ROM IOCS version 1.3のみ、変更前のアドレスを返す.
1857+
1858+==============================================================================
1859+
1860+$38 _SETFNTADR 外字フォントアドレス設定
1861+
1862+引数 d1.l フォントアドレス(負数でアドレス収得のみ)
1863+ d2.l 外字グループ番号
1864+ d2.l = 0 16x16ドット JIS:$2c21〜$2d7e
1865+ 1 16x16 〃 :$7621〜$777e
1866+ 2 8x16 〃 :$f400〜$f5ff
1867+ 3 24x24 〃 :$2c21〜$2d7e
1868+ 4 24x24 〃 :$7621〜$777e
1869+ 5 12x24 〃 :$f400〜$f5ff
1870+ 6 6x12 〃(半角)
1871+ 7 8x 8 〃(1/4角)
1872+ 8 8x16 〃(半角)
1873+ 9 16x16 〃(全角)
1874+ 10 12x12 〃(1/4角)
1875+ 11 12x24 〃(半角)
1876+ 12 24x24 〃(全角)
1877+ 13 16x16 〃(全角非漢字)
1878+ 14 16x16 〃(第1水準文字)
1879+ 15 16x16 〃(第2水準文字)
1880+ 0x80 拡張外字処理アドレスを得る
1881+
1882+返値 変更前のアドレス
1883+ アドレス設定時に -1 が返った時はエラー(奇数アドレスを指定した場合等).
1884+
1885+ 外字フォントデータのアドレスを設定する.
1886+ HIOCS.X 組み込み時には d2.l が 6 以上で普通の文字のフォントも設定可能.
1887+ ROM IOCS では奇数アドレスを設定してもエラーにならないので注意すること.
1888+
1889+==============================================================================
1890+
1891+$39 (未公開) BEEP音用PCMのデータ設定
1892+
1893+引数 d1.l PCM データアドレス
1894+ d2.w 〃 サイズ
1895+
1896+返値 d0.l 常に 0
1897+ d1.l 変更前の PCM データアドレス
1898+ d2.w 〃 サイズ
1899+
1900+ BEEP 音用の PCM データのアドレスと長さを設定する.
1901+
1902+==============================================================================
1903+
1904+$3a (未公開) プリンタパラメータ設定
1905+
1906+引数 a1.l パラメータアドレス(0 で ROM)
1907+
1908+ プリンタ処理 IOCS で使用するパラメータを設定する.
1909+ パラメータアドレスに 0 を指定すると ROM 内の初期値を設定する.
1910+ パラメータの内容は以下の通り.
1911+
1912+offset size
1913+$00 1.l T-VRAM プレーン 0 アドレス($e00000)
1914+$04 1.w Y 方向ドット数÷12-1(41)
1915+$06 1.l 拡大ビットイメージ出力時の Y 方向余りラインパターン
1916+$0a 1.w Y 方向ドット数÷24-1(21)
1917+$0c 1.l 縮小ビットイメージ出力時の Y 方向余りラインパターン
1918+$10 1.w X 方向ドット数÷ 8-1(96)
1919+$12 8.b 漢字モード指定コード
1920+$1a 8.b 〃 解除 〃
1921+$22 4.b LF のコード
1922+$26 6.b 改行幅 16/120インチのコード
1923+$2c 6.b 改行幅を電源投入時の状態に戻すコード
1924+$32 6.b 改行幅 10/120インチのコード
1925+$38 6.b 〃 5/150 〃
1926+$3e 8.b ビットイメージ出力コード(1536×24ドット出力)
1927+$46 8.b 〃 ( 768×24 〃 )
1928+$4e 8.b 〃 ( 18×24 〃 )
1929+$56 8.b 〃 ( 36×24 〃 )
1930+$5e 1.b 0:MSB〜LSB 1:LSB〜MSB の順で出力
1931+$5f 1.b 半角ビットイメージ出力時の左右の空白ドット数
1932+$60 1.b 全角〃
1933+$61 1.b モード(bitの値が1ならビットイメージで出力する)
1934+ bit 4:半角文字
1935+ bit 3:第一水準漢字及び全角非漢字
1936+ bit 2:第二水準漢字
1937+ bit 1:第一外字
1938+ bit 0:第二外字
1939+
1940+ $06,$0c は下位 3 バイトのみ有効で、左端から 512/($04,$0a の値)の余り
1941+ のドット数だけビットを 1 にする.
1942+ $12〜$56 のコードは、先頭 1 バイトでコードのバイト数を指定し、残りで
1943+ コードを指定する.
1944+ なお、$22 からの LF コード指定バッファは PRNDRVn.SYS を組み込むとサイ
1945+ ズが 2 バイトに縮まり、$24 から CR のコードを指定するようになっている.
1946+
1947+==============================================================================
1948+
1949+$3b _JOYGET ジョイスティック入力
1950+
1951+引数 d1.w ジョイスティック番号(0/1)
1952+
1953+返値 ジョイスティックデータ(0 の時押されていて、1 の時離されています.)
1954+ bit 7 常に 1
1955+ bit 6 ボタン 1
1956+ bit 5 〃 2
1957+ bit 4 常に 1
1958+ bit 3 レバー 右
1959+ bit 2 〃 左
1960+ bit 1 〃 下
1961+ bit 0 〃 上
1962+
1963+ ジョイスティックのデータを読む.
1964+ 無効なジョイスティック番号を指定した場合は、常に 0 が返ります.
1965+
1966+==============================================================================
1967+
1968+$3c _INIT_PRN プリンタ初期化
1969+
1970+引数 d1.hb 1 ページの行数-1(-1で指定なし)
1971+ d1.b 1 行の桁数-1 ( 〃 )
1972+
1973+返値 d0.l = 0 出力不可能
1974+ $20 出力可能
1975+
1976+ プリンタポートを初期化し、同時にプリンタに出力可能か調べる.
1977+ 引数の d1.w は IOCS _OUTPRN($3f) 用のプリントフォーマット.
1978+
1979+==============================================================================
1980+
1981+$3d _SNSPRN プリンタに出力可能か検査する
1982+
1983+返値 d0.l = 0 出力不可能
1984+ $20 出力可能
1985+
1986+ プリンタに出力可能か調べる.
1987+
1988+==============================================================================
1989+
1990+$3e _OUTLPT プリンタ直接出力
1991+
1992+引数 d1.b 出力データ
1993+
1994+ プリンタに直接データを出力する. 漢字処理はせず、また自動改行/改頁しない.
1995+ 通常はプリンタに出力が完了するまで処理が戻らない.
1996+ ROM IOCS version 1.3 未満では、アクセラレータ等で高速動作中に使用する
1997+ とウェイト不足で正常動作しない場合がある.
1998+
1999+==============================================================================
2000+
2001+$3f _OUTPRN プリンタ出力
2002+
2003+引数 d1.b 出力データ
2004+
2005+返値 d1.b は破壊される.
2006+
2007+ プリンタに文字を出力する. 漢字処理は S-JIS で行い、2 バイト文字の場合は
2008+ 1 バイトずつ 2 回に分けて出力すること.
2009+ 通常はプリンタに出力が完了するまで処理が戻らない.
2010+
2011+==============================================================================
2012+
2013+$40 _B_SEEK ディスクのシーク
2014+
2015+引数 d1.hb PDA
2016+ d1.hb = $10〜$13 2DD/8 0〜 3
2017+ $30〜$33 2DD/9 〃
2018+ $70〜$73 2HQ 〃
2019+ $80〜$8f SASI-HD 0〜15
2020+ $90〜$93 2HD 0〜 3
2021+ d1.b モード(SASI-HD の時は意味がありません)
2022+ bit 6 MFM/MFM モード切り換え 0:FM 1:MFM(通常は 1)
2023+ bit 5 リトライ 0:リトライしない 1:する
2024+ bit 4 シーク 0:シークしない 1:する
2025+ リトライする場合、5 回シークせずにリトライし、その後 5 回
2026+ リキャリブレート/シークをしてからリトライします.
2027+ d2.l 目的シーク位置(SASI-HD の時は 256 バイト単位のレコード番号)
2028+ bit 31〜24 セクタ長 0:128 1:256 2:512 3:1024(バイト)
2029+ bit 23〜16 トラック(0〜76)
2030+ bit 15〜 8 サイド(0/1)
2031+ bit 7〜 0 セクタ(1〜8)
2032+
2033+返値 SASI-HD : ステータス
2034+ d0.l = 正数 正常終了
2035+ -1 規定時間内に応答がなかった
2036+ -3 エラー
2037+ その他 異常終了(最下位バイトがエラーコード)
2038+ 2HD-FD : FDC ステータス
2039+ bit 31〜24 リザルトステータス 0(ST0)
2040+ bit 23〜16 コマンド終了時のシリンダ番号(PCN)
2041+
2042+ ディスクの指定位置までシークする.
2043+ SASI-HD のシークで返値が $ffffff?? の場合、$?? はセンスバイトの先頭バ
2044+ イトを示す.
2045+ PDA の $10〜13,$30〜$33,$70〜$73 は ROM IOCS version 1.3 若しくは
2046+ FDDEVICE.X 常駐時のみ使用可能. また、ROM IOCS version 1.3 の場合、
2047+ SASI-HD は SCSI に接続されているのものが対象となる.
2048+
2049+==============================================================================
2050+
2051+$41 _B_VERIFY ディスクのベリファイ
2052+
2053+引数 d1.hb PDA
2054+ d1.b モード(SASI-HD の時は意味がありません)
2055+ d2.l 目的検査位置
2056+ d3.l 検査するバイト数
2057+ a1.l 検査するデータのアドレス
2058+
2059+返値 d2/d3/a1 は内容が保証されない.
2060+ SASI-HD : ステータス(負数で異常終了)
2061+ d0.l = 正数 正常終了
2062+ -1 規定時間内に応答がなかった
2063+ -2 データが不一致
2064+ -3 エラー
2065+ その他 異常終了(最下位バイトがエラーコード)
2066+ 2HD-FD : FDC ステータス(-1 でパラメータが異常)
2067+ bit 31〜24 リザルトステータス 0(ST0)
2068+ bit 23〜16 〃 1(ST1)
2069+ bit 15〜 8 〃 2(ST2)
2070+ bit 7〜 0 シリンダ番号(C)
2071+
2072+ データの比較検査を行なう.
2073+
2074+ 2HD-FD との比較の場合、FDC の SCAN EQUAL 命令を使用してデータの比較を
2075+ 行うので、データが $ff である時はそのバイトの比較は行われずに等しいも
2076+ のとして扱われる.
2077+
2078+==============================================================================
2079+
2080+$42 _B_READDI ディスクの診断の為の読み出し
2081+
2082+引数 d1.hb PDA(SASI-HD:$80〜$8f は指定出来ません)
2083+ d1.b モード
2084+ d2.l 目的読み込み位置
2085+ d3.l 読み込むバイト数
2086+ a1.l 読み込むバッファのアドレス
2087+
2088+返値 d2/d3/a1 は内容が保証されない.
2089+ FDC ステータス(-1 でパラメータが異常)
2090+ bit 31〜24 リザルトステータス 0(ST0)
2091+ bit 23〜16 〃 1(ST1)
2092+ bit 15〜 8 〃 2(ST2)
2093+ bit 7〜 0 シリンダ番号(C)
2094+
2095+ 2HD の診断の為のディスク読み出しをする. 通常の読み込みでは使わない.
2096+
2097+==============================================================================
2098+
2099+$43 _B_DSKINI ドライブの初期化
2100+
2101+引数 d1.hb PDA
2102+ d2.l モーターオフまでの時間(SASI-HD の時は意味がありません)
2103+ a1.l SASI-HD : アサインドライブパラメータのデータアドレス
2104+ 2HD-FD : SPECIFY コマンドのデータアドレス
2105+
2106+返値 SASI-HD : ステータス(負数で異常終了)
2107+ 2HD-FD : FDC ステータス
2108+ bit 31〜24 リザルトステータス 3(ST3)
2109+ bit 23〜 0 不定
2110+
2111+ ドライブを初期化する.
2112+ モーターオフまでの時間は 1/100 秒単位で、0 を指定すると標準値( 2 秒)になる.
2113+ a1.l に 0 を指定すると、標準の設定が使用される.
2114+
2115+==============================================================================
2116+
2117+$44 _B_DRVSNS ドライブの状態検査
2118+
2119+引数 d1.hb PDA
2120+
2121+返値 SASI-HD : ステータス(負数で異常終了)
2122+ 2HD-FD : FDC ステータス
2123+ bit 31〜24 リザルトステータス 3(ST3)
2124+ bit 23〜 0 不定
2125+
2126+ ディスクの状態を調べる.
2127+
2128+==============================================================================
2129+
2130+$45 _B_WRITE ディスクへの書き込み
2131+
2132+引数 d1.hb PDA
2133+ d1.b モード(SASI-HD の時は意味がありません)
2134+ d2.l 目的書き込み位置
2135+ d3.l 書き込むバイト数
2136+ a1.l 書き込むデータのアドレス
2137+
2138+返値 d2/d3/a1 は内容が保証されない.
2139+ SASI-HD : ステータス(負数で異常終了)
2140+ 2HD-FD : FDC ステータス(-1 でパラメータが異常)
2141+ bit 31〜24 リザルトステータス 0(ST0)
2142+ bit 23〜16 〃 1(ST1)
2143+ bit 15〜 8 〃 2(ST2)
2144+ bit 7〜 0 シリンダ番号(C)
2145+
2146+ ディスクにデータを書き込む.
2147+ 注意:OS が行っているバッファリング処理とは無関係に動作するので、OS が
2148+ バッファ中にデータを保持している場合、ディスク上のデータは内容が保証さ
2149+ れない場合がある.
2150+
2151+==============================================================================
2152+
2153+$46 _B_READ ディスクからの読み込み
2154+
2155+引数 d1.hb PDA
2156+ d1.b モード(SASI-HD の時は意味がありません)
2157+ d2.l 目的読み込み位置
2158+ d3.l 読み込むバイト数
2159+ a1.l 読み込むバッファのアドレス
2160+
2161+返値 d2/d3/a1 は内容が保証されない.
2162+ SASI-HD : ステータス(負数で異常終了)
2163+ 2HD-FD : FDC ステータス(-1 でパラメータが異常)
2164+ bit 31〜24 リザルトステータス 0(ST0)
2165+ bit 23〜16 〃 1(ST1)
2166+ bit 15〜 8 〃 2(ST2)
2167+ bit 7〜 0 シリンダ番号(C)
2168+
2169+ ディスクからデータを読み込む.
2170+ 注意:OS が行っているバッファリング処理とは無関係に動作するので、OS が
2171+ バッファ中にデータを保持している場合、ディスク上のデータは内容が保証さ
2172+ れない場合がある.
2173+
2174+==============================================================================
2175+
2176+$47 _B_RECALI ディスクのリキャリブレイト
2177+
2178+引数 d1.hb PDA
2179+ d1.b モード(SASI-HD の時は 0 にします)
2180+ d1.b = 0 トラック 0 へのシーク
2181+ -1 強制レディ状態での検査
2182+
2183+返値 SASI-HD : ステータス(負数で異常終了)
2184+ 2HD-FD : FDC ステータス
2185+ bit 31〜24 リザルトステータス 0(ST0)
2186+ bit 23〜16 シリンダ番号(C)
2187+
2188+ トラック 0 へのシーク若しくは強制レディ状態での検査を行なう.
2189+ 後者を実行後、ST0 の bit 4(EQUIPMENT CHECK) が 1 になっていた場合は
2190+ 指定のドライブは存在しない.
2191+ 2HD-FD の ドライブの有無はこの IOCS コールでしか検査出来ない.
2192+
2193+==============================================================================
2194+
2195+$48 _B_ASSIGN ハードディスクの代替トラック設定
2196+
2197+引数 d1.hb PDA(2HD-FD:$90〜$93 は指定できません)
2198+ d2.l レコード番号
2199+ d3.l インタリーブコード
2200+ a1.l 代替トラック指定データのアドレス
2201+ (0,a1) 代替トラック番号上位バイト
2202+ (1,a1) 〃 中位〃
2203+ (2,a1) 〃 下位〃
2204+ (3,a1) 常に 0
2205+
2206+返値 ステータス(負数で異常終了)
2207+
2208+ ハードディスクの代替トラックを設定する.
2209+
2210+==============================================================================
2211+
2212+$49 _B_WRITED 2HD への破損データ書き込み
2213+
2214+引数 d1.hb PDA(SASI-HD:$80〜$8f は指定出来ません)
2215+ d1.b モード
2216+ d2.l 目的書き込み位置
2217+ d3.l 書き込むバイト数
2218+ a1.l 書き込むデータのアドレス
2219+
2220+返値 d2/d3/a1 は内容が保証されない.
2221+ FDC ステータス(-1 でパラメータが異常)
2222+ bit 31〜24 リザルトステータス 0(ST0)
2223+ bit 23〜16 〃 1(ST1)
2224+ bit 15〜 8 〃 2(ST2)
2225+ bit 7〜 0 シリンダ番号(C)
2226+
2227+ ディスクに破損データを書き込む. 通常の書き込みでは使わない.
2228+
2229+==============================================================================
2230+
2231+$4a _B_READID 2HD の ID 情報の読み出し
2232+
2233+引数 d1.hb PDA(SASI-HD:$80〜$8f は指定出来ません)
2234+ d1.b モード
2235+ d2.l 目的読み出し位置(トラックとサーフェスの指定のみ)
2236+ bit 31 を 1 にすると検出IDを収得する.
2237+
2238+返値 d0.l FDC ステータス
2239+ bit 31〜24 リザルトステータス 0(ST0)
2240+ bit 23〜16 〃 1(ST1)
2241+ bit 15〜 8 〃 2(ST2)
2242+ bit 7〜 0 シリンダ番号(C)
2243+ d2.l 読み出したID(d2.l の bit 31=1 の時のみ)
2244+
2245+ 2HD-FD の ID 情報を読み出す.
2246+
2247+==============================================================================
2248+
2249+$4b _B_BADFMT ハードディスクの破損トラックを使用不能にする
2250+
2251+引数 d1.hb PDA(2HD-FD:$90〜$93 は指定できません)
2252+ d2.l レコード番号
2253+ d3.b インタリーブコード(1 または 6)
2254+
2255+返値 ステータス(負数で異常終了)
2256+
2257+ ハードディスクの破壊トラックを使用不能にする.
2258+
2259+==============================================================================
2260+
2261+$4c _B_READDL 2HD からの破損データ読み込み
2262+
2263+引数 d1.hb PDA(SASI-HD:$80〜$8f は指定出来ません)
2264+ d1.b モード
2265+ d2.l 目的読み込み位置
2266+ d3.l 読み込むバイト数
2267+ a1.l 読み込むバッファのアドレス
2268+
2269+返値 d2/d3/a1 は内容が保証されない.
2270+ FDC ステータス(-1 でパラメータが異常)
2271+ bit 31〜24 リザルトステータス 0(ST0)
2272+ bit 23〜16 〃 1(ST1)
2273+ bit 15〜 8 〃 2(ST2)
2274+ bit 7〜 0 シリンダ番号(C)
2275+
2276+ ディスクから破損データを読み込む. 通常の読み込みでは使わない.
2277+
2278+==============================================================================
2279+
2280+$4d _B_FORMAT ディスクのフォーマット
2281+
2282+引数 d1.hb PDA
2283+ d1.b モード(SASI-HD の時は意味がありません)
2284+ d2.l 目的フォーマット位置(SASI-HD の時はレコード番号)
2285+ bit 31〜24 セクタ長 0:128 1:256 2:512 3:1024(バイト)
2286+ bit 23〜16 トラック(0〜76)
2287+ bit 15〜 8 サイド(0/1)
2288+ bit 7〜 0 各セクタのデータ部に書き込む値
2289+ d3.l SASI-HD : インタリーブコード(1 または 6)
2290+ 2HD-FD : ID データのバイト数
2291+ a1.l ID データのアドレス(SASI-HD の時は意味がありません)
2292+
2293+返値 SASI-HD : ステータス(負数で異常終了)
2294+ 2HD-FD : FDC ステータス(-1 でパラメータが異常)
2295+ bit 31〜24 リザルトステータス 0(ST0)
2296+ bit 23〜16 〃 1(ST1)
2297+ bit 15〜 8 〃 2(ST2)
2298+ bit 7〜 0 シリンダ番号(C)
2299+
2300+ ディスクの物理フォーマットを行なう.
2301+ 2HD-FD のフォーマット時に使用する ID データの内容は、以下のテーブルを
2302+ セクタ数だけ繰り返したもの.
2303+
2304+offset size
2305+0 1.b トラック番号
2306+1 1.b サイド(0/1)
2307+2 1.b セクタ番号
2308+3 1.b セクタ長(128x2?バイト)
2309+
2310+ 通常トラック番号は 0〜76、セクタ番号は 1〜8、セクタ長は 0〜3 になる.
2311+
2312+==============================================================================
2313+
2314+$4e _B_DRVCHK 2HD ドライブの状態設定
2315+
2316+引数 d1.hb PDA(SASI-HD:$80〜$8f は指定出来ません)
2317+ d2.w 機能番号
2318+ d2.w = 0 状態検査
2319+ 1 排出(排出禁止状態では排出不可)
2320+ 2 排出禁止 1
2321+ 3 〃 許可 1
2322+ 4 ディスクがセットされていない時 LED 点滅
2323+ 5 〃 消灯
2324+ 6 排出禁止 2(OS 用なのでユーザーは使用禁止)
2325+ 7 〃 許可 2(〃)
2326+ 8 排出検査 (〃)
2327+ 9 状態検査 2
2328+
2329+返値 d2.w = 0〜7,9 の時、ディスクの状態
2330+ bit 7 LED 点滅
2331+ bit 6 排出禁止
2332+ bit 5 排出禁止 2(OS バッファ有り)
2333+ bit 4 〃 1(ユーザー指定)
2334+ bit 3 書き込み禁止
2335+ bit 2 ノットレディ
2336+ bit 1 メディア挿入
2337+ bit 0 メディア誤挿入
2338+ ノットレディとライトプロテクトは d2.w = 0 の場合のみ有効.
2339+ また、この時メディア未挿入なら両方のビットが 1 になる.
2340+ d2.w = 8 の時、前回の検査後に排出したか(1:していない -1:した)
2341+
2342+ 2HD-FD の状態を参照/設定する.
2343+
2344+==============================================================================
2345+
2346+$4f _B_EJECT ディスクのイジェクト/シッピング
2347+
2348+引数 d1.hb PDA
2349+
2350+返値 終了コード(負数なら異常終了)
2351+ 2HD-FD の時は意味がありません
2352+
2353+ 2HD-FD を排出若しくは SASI-HD をシッピングする.
2354+ 排出禁止状態でも排出できるが、OS のバッファリング処理とは無関係に動作
2355+ するので、OS がバッファ中にデータを保持している場合排出を行うとディス
2356+ クの内容が保証されなくなるため、排出してはいけない.
2357+
2358+==============================================================================
2359+
2360+$50 _DATEBCD 日付データのバイナリ→BCD 変換
2361+
2362+引数 d1.l 日付データ(バイナリ)
2363+ $0y_yy_mm_dd
2364+ bit 27〜16 年バイナリ(1980〜2079)
2365+ bit 15〜 8 月〃 (1〜12)
2366+ bit 7〜 0 日〃 (1〜31)
2367+
2368+返値 変換後の日付データ(BCD)
2369+ $uw_yy_mm_dd
2370+ bit 31〜28 閏年カウンタ(0:今年が閏年 1:3年後 2:2年後 3:1年後)
2371+ bit 27〜24 曜日カウンタ(0:日曜日 1:月曜日 … 6:土曜日)
2372+ bit 23〜16 年 BCD 2 桁($00〜$99)
2373+ bit 15〜 8 月 〃 ($01〜$12)
2374+ bit 7〜 0 日 〃 ($01〜$31)
2375+ ただし、日付が異常な場合は -1 が返る.
2376+
2377+ 日付をバイナリから BCD に変換する.
2378+ 閏年カウンタは、年カウンタとともに加算される.
2379+
2380+==============================================================================
2381+
2382+$51 _DATESET 日付の設定
2383+
2384+引数 日付データ(BCD)
2385+
2386+返値 常に 0
2387+
2388+ 時計に日付を設定する. ただし、正しい日付の指定であるかは検査されない.
2389+ X680x0 のクロック IC(RTC) は BCD 形式のデータを設定しなければならない
2390+ ので、IOCS DATEBCD($50) でバイナリの日付を BCD に変換した後にこのコー
2391+ ルで設定する.
2392+
2393+==============================================================================
2394+
2395+$52 _TIMEBCD 時刻データのバイナリ→BCD 変換
2396+
2397+引数 d1.l 時刻データ(バイナリ)
2398+ $00_hh_mm_ss
2399+ bit 23〜16 時バイナリ(0〜23)
2400+ bit 15〜 8 分〃 (0〜59)
2401+ bit 7〜 0 秒〃 (0〜59)
2402+
2403+返値 時刻データ(BCD)
2404+ $0t_hh_mm_ss
2405+ bit 27〜24 1(システム規定:24時間計であることを表す)
2406+ bit 23〜16 時 BCD 2 桁(0〜23)
2407+ bit 15〜 8 分 〃 (0〜59)
2408+ bit 7〜 0 秒 〃 (0〜59)
2409+ ただし、時刻が異常な場合は -1 が返る.
2410+
2411+ 時刻をバイナリから BCD に変換する.
2412+
2413+==============================================================================
2414+
2415+$53 _TIMESET 時刻の設定
2416+
2417+引数 時刻データ(BCD)
2418+
2419+返値 常に 0
2420+
2421+ 時計に時刻を設定する. ただし、正しい時刻の指定であるかは検査されない.
2422+
2423+==============================================================================
2424+
2425+$54 _DATEGET 日付の読み込み
2426+
2427+返値 日付データ(BCD)
2428+ $0w_yy_mm_dd
2429+ bit 27〜24 曜日カウンタ
2430+ bit 23〜16 年 BCD 2 桁($00〜$99)
2431+ bit 15〜 8 月 〃 ($01〜$12)
2432+ bit 7〜 0 日 〃 ($01〜$31)
2433+
2434+ 時計から日付を読み込む.
2435+
2436+==============================================================================
2437+
2438+$55 _DATEBIN 日付データの BCD→バイナリ変換
2439+
2440+引数 日付データ(BCD)
2441+ $0w_yy_mm_dd
2442+ bit 27〜24 曜日カウンタ
2443+ bit 23〜16 年 BCD 2 桁($00〜$99)
2444+ bit 15〜 8 月 〃 ($01〜$12)
2445+ bit 7〜 0 日 〃 ($01〜$31)
2446+
2447+返値 変換後の日付データ(バイナリ)
2448+ $wy_yy_mm_dd
2449+ bit 31〜28 曜日カウンタ
2450+ bit 27〜16 年バイナリ(1980〜2079)
2451+ bit 15〜 8 月〃 (1〜12)
2452+ bit 7〜 0 日〃 (1〜31)
2453+
2454+ 日付データを BCD からバイナリに変換する.
2455+
2456+==============================================================================
2457+
2458+$56 _TIMEGET 時刻の読み込み
2459+
2460+返値 時刻データ(BCD)
2461+
2462+ 時計から時刻を読み込む.
2463+
2464+==============================================================================
2465+
2466+$57 _TIMEBIN 時刻データの BCD→バイナリ変換
2467+
2468+引数 時刻データ(BCD)
2469+
2470+返値 変換後の時刻データ(バイナリ)
2471+
2472+ 時刻データを BCD からバイナリに変換する.
2473+
2474+==============================================================================
2475+
2476+$58 _DATECNV 日付データの文字列→バイナリ変換
2477+
2478+引数 a1.l 日付を表す文字列のアドレス(区切りは '/' と '-' のどちらでもよい)
2479+ 形式は 'yyyy/mm/dd',0 または 'yy-mm-dd',0
2480+
2481+返値 d0.l 変換後の日付データ(バイナリ)
2482+ ただし、日付を表す文字列が異常な場合は d0.l = -1 が返る.
2483+ a1.l 文字列末尾(変換に失敗した場合、内容は保証されない)
2484+
2485+ 日付データを文字列からバイナリに変換する. ただし、正しい日付の指定であ
2486+ るかは検査されない. 年が 80〜99、0〜79 である時は下二桁の指定と見なし
2487+ てそれぞれ 1900、2000 を足した値を返す.
2488+ 数値の先頭にある空白と '0' は読み飛ばされる. 区切りは実際にはどの記号
2489+ を使用しても正常に動作する.
2490+
2491+==============================================================================
2492+
2493+$59 _TIMECNV 時刻データの文字列→バイナリ変換
2494+
2495+引数 a1.l 時刻を表す文字列のアドレス(区切りは ':' のみ)
2496+ 形式は 'hh:mm:ss',0
2497+
2498+返値 d0.l 変換後のデータ(バイナリ)
2499+ ただし、時刻を表す文字列が異常な場合は d0.l = -1 が返る.
2500+ a1.l 文字列末尾(変換に失敗した場合、内容は保証されない)
2501+
2502+ 時刻データを文字列からバイナリに変換する.
2503+ 数値の先頭にある空白と '0' は読み飛ばされる. 区切りは実際にはどの記号
2504+ を使用しても正常に動作する.
2505+
2506+==============================================================================
2507+
2508+$5a _DATEASC 日付データのバイナリ→文字列変換
2509+
2510+引数 d1.l 日付データ(バイナリ)
2511+ $fy_yy_mm_dd
2512+ bit 31〜28 文字列形式
2513+ 0 'yyyy/mm/dd',0
2514+ 1 'yyyy-mm-dd',0
2515+ 2 'yy/mm/dd',0
2516+ 3 'yy-mm-dd',0
2517+ bit 27〜16 年バイナリ(1980〜2079)
2518+ bit 15〜 8 月〃 (1〜12)
2519+ bit 7〜 0 日〃 (1〜31)
2520+ a1.l 文字列バッファのアドレス
2521+
2522+返値 d0.l = 0 正常終了
2523+ -1 エラー
2524+ a1.l 文字列終端の 0 のアドレス
2525+
2526+ 日付データをバイナリから文字列に変換する.
2527+ 文字列バッファは 9 または 11 バイト以上必要.
2528+
2529+==============================================================================
2530+
2531+$5b _TIMEASC 時刻データのバイナリ→文字列変換
2532+
2533+引数 d1.l 時刻データ(バイナリ)
2534+ $00_hh_mm_ss
2535+ bit 23〜16 時バイナリ(0〜23)
2536+ bit 15〜 8 分〃 (0〜59)
2537+ bit 7〜 0 秒〃 (0〜59)
2538+ a1.l 文字列バッファのアドレス(形式は 'hh:mm:ss',0)
2539+
2540+返値 d0.l = 0 正常終了
2541+ -1 エラー
2542+ a1.l 文字列終端の 0 のアドレス
2543+
2544+ 時刻データをバイナリから文字列に変換する.
2545+ 文字列バッファは 9 バイト以上必要.
2546+
2547+==============================================================================
2548+
2549+$5c _DAYASC 曜日データのバイナリ→文字列変換
2550+
2551+引数 d1.l 曜日データ(0:日曜日 1:月曜日 … 6:土曜日)
2552+ a1.l 文字列バッファのアドレス(形式は '?',0)
2553+
2554+返値 d0.l 常に 0
2555+ a1.l 文字列終端の 0 のアドレス
2556+
2557+ 曜日データをバイナリから文字列に変換する.
2558+ 文字列バッファは 3 バイト以上必要.
2559+
2560+==============================================================================
2561+
2562+$5d _ALARMMOD アラーム許可/禁止
2563+
2564+引数 d1.l アラームの設定
2565+ d1.l = 0 禁止
2566+ 1 許可
2567+ 2 現在の状態を調べる
2568+
2569+返値 現在の状態(0/1)
2570+
2571+ アラームの禁止/許可を設定する. 設定は SRAM に記録される.
2572+
2573+==============================================================================
2574+
2575+$5e _ALARMSET アラーム設定
2576+
2577+引数 d1.l アラーム時間
2578+ $0wddhhmm
2579+ bit 27〜24 曜日(0:日曜日 1:月曜日 … 6:土曜日 $f:無指定)
2580+ bit 23〜16 日 BCD 2 桁($01〜$31,$ff:無指定)
2581+ bit 15〜 8 時 〃 ($00〜$23, 〃 )
2582+ bit 7〜 0 分 〃 ($00〜$59, 〃 )
2583+ d2.l 電源オフまでの時間(分)
2584+ a1.l テレビコントロールコード若しくは処理アドレス
2585+ a1.l = -1 ディスプレイ制御しない
2586+ 0 ディスプレイ電源オン/コンピュータモード
2587+ 1〜$3f 指定の数値でテレビコントロール
2588+ その他 処理アドレス(偶数アドレスかつ先頭が $60:bra であること)
2589+
2590+返値 常に 0
2591+
2592+ アラーム時間と処理内容を設定し、アラームを許可する. 設定は SRAM に記録
2593+ される.
2594+ 曜日を $f、日/時/分を $ff にすると、それぞれが無指定になる. ただし、全
2595+ てを無指定にしないこと.
2596+ 電源オフまでの時間に 0 を指定すると、電源オフしない.
2597+
2598+==============================================================================
2599+
2600+$5f _ALARMGET アラームの設定状態を収得
2601+
2602+返値 d0.l 処理アドレス
2603+ d1.l アラーム時間
2604+ d2.l 電源オフまでの時間(分)
2605+
2606+ アラーム時間と処理内容を調べる.
2607+
2608+==============================================================================
2609+
2610+$60 _ADPCMOUT ADPCM 出力
2611+
2612+引数 d1.w ウェイトモード/周波数/出力モード
2613+ bit 15 ウェイトモード(0:通常 1:ノーウェイト)
2614+ bit 10〜 8 サンプリング周波数
2615+ (0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
2616+ bit 1〜 0 出力モード(0:なし 1:左 2:右 3:左右)
2617+ d2.l 再生データのバイト数
2618+ a1.l 〃 アドレス
2619+
2620+返値 d0/d2/a1 は内容が保証されない.
2621+
2622+ ADPCM を再生する. データが $ff00 バイト以下の場合はすぐに戻る.
2623+ DMA が使用不可能であれば、使用可能になるまで待つ.
2624+
2625+==============================================================================
2626+
2627+$61 _ADPCMINP ADPCM 入力
2628+
2629+引数 d1.w ウェイトモード/周波数/出力モード
2630+ bit 15 ウェイトモード(0:通常 1:ノーウェイト)
2631+ bit 10〜 8 サンプリング周波数
2632+ (0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
2633+ bit 1〜 0 出力モード(0:なし 1:左 2:右 3:左右)
2634+ d2.l 録音バッファのバイト数
2635+ a1.l 〃 アドレス
2636+
2637+返値 d0/d2/a1 は内容が保証されない.
2638+
2639+ ADPCM を録音する. データが $ff00 バイト以下の場合はすぐに戻る.
2640+ DMA が使用不可能であれば、使用可能になるまで待つ.
2641+ データ自体はモノラルで入力するが、モニタ出力を出力モードで指定出来る.
2642+
2643+==============================================================================
2644+
2645+$62 _ADPCMAOT ADPCM 出力(アレイチェーン)
2646+
2647+引数 d1.w ウェイトモード/周波数/出力モード
2648+ bit 15 ウェイトモード(0:通常 1:ノーウェイト)
2649+ bit 10〜 8 サンプリング周波数
2650+ (0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
2651+ bit 1〜 0 出力モード(0:なし 1:左 2:右 3:左右)
2652+ d2.l チェーンテーブルの個数
2653+ a1.l 〃 アドレス
2654+
2655+ アレイチェーンによって ADPCM を再生する.
2656+ DMA が使用不可能であれば、使用可能になるまで待つ.
2657+ アレイチェーンテーブルの内容は、以下のチェーンテーブルを繰り返したもの.
2658+
2659+offset size
2660+0 1.l 再生データのアドレス
2661+4 1.w 〃 バイト数(1〜$ffff)
2662+
2663+==============================================================================
2664+
2665+$63 _ADPCMAIN ADPCM 入力(アレイチェーン)
2666+
2667+引数 d1.w ウェイトモード/周波数/出力モード
2668+ bit 15 ウェイトモード(0:通常 1:ノーウェイト)
2669+ bit 10〜 8 サンプリング周波数
2670+ (0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
2671+ bit 1〜 0 出力モード(0:なし 1:左 2:右 3:左右)
2672+ d2.l チェーンテーブルの個数
2673+ a1.l 〃 アドレス
2674+
2675+ アレイチェーンによって ADPCM を録音する.
2676+ DMA が使用不可能であれば、使用可能になるまで待つ.
2677+ アレイチェーンテーブルの内容は、以下のチェーンテーブルを繰り返したもの.
2678+
2679+offset size
2680+0 1.l 録音バッファのアドレス
2681+4 1.w 〃 バイト数(1〜$ffff)
2682+
2683+==============================================================================
2684+
2685+$64 _ADPCMLOT ADPCM 出力(リンクアレイチェーン)
2686+
2687+引数 d1.w ウェイトモード/周波数/出力モード
2688+ bit 15 ウェイトモード(0:通常 1:ノーウェイト)
2689+ bit 10〜 8 サンプリング周波数
2690+ (0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
2691+ bit 1〜 0 出力モード(0:なし 1:左 2:右 3:左右)
2692+ a1.l チェーンテーブルのアドレス
2693+
2694+ リンクアレイチェーンによって ADPCM を再生する.
2695+ DMA が使用不可能であれば、使用可能になるまで待つ.
2696+ リンクアレイチェーンテーブルの内容は、以下のチェーンテーブルを連結したもの.
2697+
2698+offset size
2699+0 1.l 再生データのアドレス
2700+4 1.w 〃 バイト数(1〜$ffff)
2701+6 1.l 次のテーブルのアドレス(0 でテーブルの終わり)
2702+
2703+==============================================================================
2704+
2705+$65 _ADPCMLIN ADPCM 入力(リンクアレイチェーン)
2706+
2707+引数 d1.w ウェイトモード/周波数/出力モード
2708+ bit 15 ウェイトモード(0:通常 1:ノーウェイト)
2709+ bit 10〜 8 サンプリング周波数
2710+ (0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
2711+ bit 1〜 0 出力モード(0:なし 1:左 2:右 3:左右)
2712+ a1.l チェーンテーブルのアドレス
2713+
2714+ リンクアレイチェーンによって ADPCM を録音する.
2715+ DMA が使用不可能であれば、使用可能になるまで待つ.
2716+ リンクアレイチェーンテーブルの内容は、以下のチェーンテーブルを連結したもの.
2717+
2718+offset size
2719+0 1.l 録音バッファのアドレス
2720+4 1.w 〃 バイト数(1〜$ffff)
2721+6 1.l 次のテーブルのアドレス(0 でテーブルの終わり)
2722+
2723+==============================================================================
2724+
2725+$66 _ADPCMSNS ADPCM 状態検査
2726+
2727+返値 実行状態
2728+ d0.l = $00 何も実行していない
2729+ $02 IOCS ADPCMOUT($60) を実行中
2730+ $04 IOCS ADPCMINP($61) 〃
2731+ $12 IOCS ADPCMAOT($62) 〃
2732+ $14 IOCS ADPCMAIN($63) 〃
2733+ $22 IOCS ADPCMLOT($64) 〃
2734+ $24 IOCS ADPCMLIN($65) 〃
2735+
2736+ ADPCM の実行状態を調べる.
2737+
2738+==============================================================================
2739+
2740+$67 _ADPCMMOD ADPCM 実行制御
2741+
2742+引数 d1.l 制御内容(0:終了 1:中断 2:再開)
2743+
2744+返値 d0.l = 0 正常終了
2745+ -1 制御モードが不正
2746+
2747+ ADPCM の実行を制御する.
2748+ ROM IOCS では、ショートカットで呼び出すと割り込み禁止状態になったまま
2749+ で帰るので注意すること.
2750+
2751+==============================================================================
2752+
2753+$68 _OPMSET OPM レジスタ設定
2754+
2755+引数 d1.b レジスタ番号
2756+ d2.b データ
2757+
2758+返値 d2.b は破壊される.
2759+
2760+ OPM に書き込める状態になるまで待ってから、レジスタにデータを書き込む.
2761+ レジスタ $1b に書き込む場合、汎用出力のモードは変更できない.
2762+
2763+==============================================================================
2764+
2765+$69 _OPMSNS OPM 状態検査
2766+
2767+返値 d0.b ステータス
2768+ bit 7 Busy フラグ(0 で書き込み可能)
2769+ bit 1 タイマ A オーバーフロー(1 の時オーバーフローが発生)
2770+ bit 0 〃 B 〃
2771+
2772+ OPM のステータスを読み込む.
2773+
2774+==============================================================================
2775+
2776+$6a _OPMINTST OPM 割り込み設定
2777+
2778+引数 a1.l 処理アドレス(0 で割り込み禁止)
2779+
2780+返値 d0.l = 0 割り込みを設定/禁止した
2781+ その他 すでに使用中
2782+
2783+ OPM による割り込みを設定する. MFP のみ制御するので、OPM に対しても設定
2784+ する必要がある.
2785+ ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
2786+ 止された状態で帰るので注意すること.
2787+ 割り込みの処理アドレスが $01000000 以上(最上位バイトが 0 以外)で割り込
2788+ みが未使用と見なされるが、ROM IOCS version 1.3 で vbr が有効になってい
2789+ る場合は処理アドレスが $00ff0770 の時のみ未使用と見なされる.
2790+
2791+==============================================================================
2792+
2793+$6b _TIMERDST Timer-D 割り込み設定
2794+
2795+引数 d1.hb 単位時間(1:1.0 2:2.5 3:4.0 4:12.5 5:16.0 6:25.0 7:50.0 μ秒単位)
2796+ d1.b カウンタ(0 の時は 256 として扱う)
2797+ a1.l 処理アドレス(0 で割り込み禁止)
2798+
2799+返値 d0.l = 0 割り込みを設定/禁止した
2800+ その他 すでに使用中
2801+
2802+ Timer-D による割り込みを設定する. 割り込み周期は単位時間×カウンタ.
2803+ CONFIG.SYS で PROCESS を設定している場合は、割り込みを変更出来ない.
2804+ ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
2805+ 止された状態で帰るので注意すること.
2806+ 割り込みを未使用と見なす条件は _OPMINTST と同じ.
2807+
2808+==============================================================================
2809+
2810+$6c _VDISPST 垂直同期割り込み設定
2811+
2812+引数 d1.hb 割り込み期間(0:垂直帰線期間 1:垂直表示期間)
2813+ d1.b カウンタ(0 の時は 256 として扱う)
2814+ a1.l 処理アドレス(0 で割り込み禁止)
2815+
2816+返値 d0.l = 0 割り込みを設定/禁止した
2817+ その他 すでに使用中
2818+
2819+ 垂直同期による割り込みを設定する.
2820+ ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
2821+ 止された状態で帰るので注意すること.
2822+ 割り込みを未使用と見なす条件は _OPMINTST と同じ.
2823+
2824+ 実際には Timer-A に割り込みを設定している. 垂直表示回数は 31kHz で秒間
2825+ 約 55.4 回、24kHz で約 53.0 回、15kHz で約 61.3 回(実測値).
2826+ 電源投入後か以前に大きいカウンタ値で設定していた時は、最初の割り込みが
2827+ 発生するタイミングが遅くなる.
2828+
2829+==============================================================================
2830+
2831+$6d _CRTCRAS ラスター割り込み設定
2832+
2833+引数 d1.w ラスタ番号
2834+ a1.l 処理アドレス(0 で割り込み禁止)
2835+
2836+返値 d0.l = 0 割り込みを設定した
2837+ その他 すでに使用中
2838+
2839+ ラスタ走査による割り込みを設定する.
2840+ CRTC が指定のラスタを走査開始すると割り込みが発生する.
2841+ ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
2842+ 止された状態で帰るので注意すること.
2843+ 割り込みを未使用と見なす条件は _OPMINTST と同じ.
2844+
2845+==============================================================================
2846+
2847+$6e _HSYNCST 水平同期割り込み設定
2848+
2849+引数 a1.l 処理アドレス(0 で割り込み禁止)
2850+
2851+返値 d0.l = 0 割り込みを設定した
2852+ その他 すでに使用中
2853+
2854+ 水平同期による割り込みを設定する.
2855+ 水平同期信号の立ち下がり時に割り込みが発生する.
2856+ ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
2857+ 止された状態で帰るので注意すること.
2858+ 割り込みを未使用と見なす条件は _OPMINTST と同じ.
2859+
2860+==============================================================================
2861+
2862+$6f _PRNINTST プリンタ割り込み設定
2863+
2864+引数 a1.l 処理アドレス(0 で割り込み禁止)
2865+
2866+返値 d0.l = 0 割り込みを設定した
2867+ その他 すでに使用中
2868+
2869+ プリンタによる割り込みを設定する.
2870+ プリンタがデータを受け取ることが可能になった時に割り込みが発生する.
2871+ ROM IOCS version 1.3 では、ショートカットで呼び出すと割り込みが全て禁
2872+ 止された状態で帰るので注意すること.
2873+ 割り込みを未使用と見なす条件は _OPMINTST と同じ.
2874+
2875+==============================================================================
2876+
2877+$70 _MS_INIT マウス初期化
2878+
2879+ マウスを初期化する.
2880+
2881+==============================================================================
2882+
2883+$71 _MS_CURON マウスカーソル表示
2884+
2885+ マウスカーソルを表示する.
2886+
2887+==============================================================================
2888+
2889+$72 _MS_CUROF マウスカーソル消去
2890+
2891+ マウスカーソルを消去する.
2892+
2893+==============================================================================
2894+
2895+$73 _MS_STAT マウスカーソルの表示状態を調べる
2896+
2897+返値 d0.w = 0 マウスカーソルは表示されていない
2898+ -1 〃 表示されている
2899+
2900+ マウスカーソルの表示状態を調べる.
2901+
2902+==============================================================================
2903+
2904+$74 _MS_GETDT マウス移動量/ボタン状態を調べる
2905+
2906+返値 マウスの移動量及びボタンの状態
2907+ bit 31〜24 X 方向移動量
2908+ bit 23〜16 Y 〃
2909+ bit 15〜 8 左ボタン(0:OFF -1:ON)
2910+ bit 7〜 0 右〃 (〃 )
2911+
2912+ マウスの移動量及びボタンの状態を調べる.
2913+
2914+==============================================================================
2915+
2916+$75 _MS_CURGT マウスカーソルの座標収得
2917+
2918+返値 マウスカーソルの座標
2919+ d0.hw X 座標
2920+ d0.w Y 〃
2921+
2922+ マウスカーソルの座標を調べる.
2923+
2924+==============================================================================
2925+
2926+$76 _MS_CURST マウスカーソルの座標設定
2927+
2928+引数 マウスカーソルの座標
2929+ d1.hw X 座標
2930+ d1.w Y 〃
2931+
2932+返値 d0.l = 0 座標が指定出来た
2933+ -1 座標が異常
2934+
2935+ マウスカーソルの座標を設定する.
2936+
2937+==============================================================================
2938+
2939+$77 _MS_LIMIT マウスカーソルの移動範囲設定
2940+
2941+引数 マウスカーソルの座標
2942+ d1.hw 左端 X 座標
2943+ d1.w 上端 Y 〃
2944+ d2.hw 右端 X 座標
2945+ d2.w 下端 Y 〃
2946+
2947+返値 d0.l = 0 座標が指定出来た
2948+ -1 座標が異常
2949+
2950+ マウスカーソルの移動範囲を設定する.
2951+
2952+==============================================================================
2953+
2954+$78 _MS_OFFTM マウスのボタンを離すまでの時間を調べる
2955+
2956+引数 d1.w ボタンの指定(0:左ボタン -1:右ボタン)
2957+ d2.w 待ち時間(0 の時は離すまで待つ)
2958+
2959+返値 d0.w = 0 ドラッグ
2960+ -1 待ち時間の最大値を超えた
2961+ その他 待ち時間
2962+
2963+ マウスのボタンを離すまでの時間を調べる.
2964+
2965+==============================================================================
2966+
2967+$79 _MS_ONTM マウスのボタンを押すまでの時間を調べる
2968+
2969+引数 d1.w ボタンの指定(0:左ボタン -1:右ボタン)
2970+ d2.w 待ち時間(0 の時は押すまで待つ)
2971+
2972+返値 d0.w = 0 ドラッグ
2973+ -1 待ち時間の最大値を超えた
2974+ その他 待ち時間
2975+
2976+ マウスのボタンを押すまでの時間を調べる.
2977+
2978+==============================================================================
2979+
2980+$7a _MS_PATST マウスカーソルのパターン定義
2981+
2982+引数 d1.w カーソル番号(0〜15)
2983+ a1.l パターンデータのアドレス
2984+
2985+ マウスカーソルのパターンを定義する.
2986+ ROM IOCS version 1.1 では正常に動作しないので注意すること.
2987+ マウスカーソルの大きさは 16 x 16 ドットで、1 ドットが 1 ビットに対応する.
2988+ パターンデータの内容は以下の通り(カラーコード 8〜15 は 4〜7 より優先される).
2989+
2990+offset size
2991+0 1.w パターンの左端 X 座標からマウス X 座標までの距離
2992+2 1.w 〃 上端 Y 〃 Y 〃
2993+4 16.w マスクパターン(陰にするデータ)
2994+36 16.w マウスパターン(表示するデータ)
2995+
2996+ パターンの左端/上端からマウス座標までの距離は、0(パターンの左隅/上隅を
2997+ マウス座標にする)〜15(パターンの右隅/下隅をマウス座標にする)で指定する.
2998+ マスクパターンが 0 のドットはカラーコード 4〜7 で表示され、1 のドット
2999+ は無視される.
3000+ マウスパターンが 1 のドットはカラーコード 8〜15 で表示され、0 のドット
3001+ は無視される. ただし、マスクパターンが 0 でマウスパターンが 1 の場合は
3002+ カラーコード 8〜15 が優先して表示される.
3003+
3004+==============================================================================
3005+
3006+$7b _MS_SEL マウスカーソルのパターン選択
3007+
3008+引数 d1.w カーソル番号(0〜15)
3009+
3010+ マウスカーソルのパターンを選択する.
3011+
3012+==============================================================================
3013+
3014+$7c _MS_SEL2 マウスカーソルのアニメーション
3015+
3016+引数 a1.l カーソル番号テーブルのアドレス
3017+
3018+ マウスパターンを複数個用いて、アニメーションで表示する.
3019+ カーソル番号テーブルはカーソル番号をワードサイズで 6 個以下並べ、最後は
3020+ -1 にする.
3021+
3022+==============================================================================
3023+
3024+$7d _SKEY_MOD ソフトキーボード制御
3025+
3026+引数 d1.l 制御コード
3027+ d1.l = 0 ソフトキーボード消去
3028+ 1 〃 表示
3029+ 2 〃 表示状態の検査
3030+ -1 〃 自動制御
3031+ d2.l 表示座標(d1.l = 1 の時)
3032+ d2.hw X 座標
3033+ d2.w Y 〃
3034+
3035+返値 表示状態(0:消去 1:表示)
3036+
3037+ ソフトキーボードを制御する.
3038+ 自動制御を指定すると、マウスの右ボタンを押すことにより状態が
3039+ 非表示→マウス表示→キーボード/マウス表示→マウス表示→非表示
3040+ と変化する.
3041+
3042+==============================================================================
3043+
3044+$7e _DENSNS 電卓制御
3045+
3046+ 電卓による入力を調べる. 結果はキー入力として返る.
3047+
3048+==============================================================================
3049+
3050+$7f _ONTIME 起動後の経過時間を調べる
3051+
3052+返値 d0.l 経過時間の時分秒(0〜23:59:59"99=8639999,1/100秒単位)
3053+ d1.l 〃 日数 (0〜65535)
3054+
3055+ ROM が起動してからの時間を調べる.
3056+ ROM IOCS では、ショートカットで呼び出すと割り込み禁止状態になったまま
3057+ で帰るので注意すること.
3058+
3059+==============================================================================
3060+
3061+$80 _B_INTVCS ベクタ設定
3062+
3063+引数 d1.w ベクタ番号($0000〜$00ff:割り込み $0100〜$01ff:IOCS コール)
3064+ a1.l 処理アドレス
3065+
3066+返値 変更前の処理アドレス
3067+
3068+ ベクタの処理アドレスを設定する.
3069+ 設定したアドレスはスーパーバイザモードで呼び出される.
3070+ 割り込みからは rte で、IOCS コールは rts で戻る.
3071+ ROM IOCS version 1.3 のみ、ベクタ番号が異常な場合に -1 を返す.
3072+
3073+==============================================================================
3074+
3075+$81 _B_SUPER スーパーバイザ/ユーザモードの切り換え
3076+
3077+引数 a1.l ssp(0 の時ユーザモードからスーパーバイザモードに切り換え)
3078+
3079+返値 d0.l ユーザモードに切り換えた場合は常に 0 を返す.
3080+ スーパバイザモードに切り換えた場合は、切り換え前の ssp の値を
3081+ 返す. ただし、既にスーパバイザモードになっていたら -1 を返す.
3082+ a1.l 不定
3083+
3084+ スーパーバイザ/ユーザモードを切り換える.
3085+ スーパバイザモードに切り換えた場合、usp が ssp に設定される.
3086+ ユーザモードに切り換えた場合、ssp は指定したアドレスになり、usp は以前
3087+ のアドレスに戻る.
3088+
3089+==============================================================================
3090+
3091+$82 _B_BPEEK 指定アドレスから 1 バイト読み込み
3092+
3093+引数 a1.l 読み込みアドレス
3094+
3095+返値 d0.b データ
3096+ a1.l 次のアドレス
3097+
3098+ 指定アドレスから 1 バイトデータを読み込む.
3099+
3100+==============================================================================
3101+
3102+$83 _B_WPEEK 指定アドレスから 1 ワード読み込み
3103+
3104+引数 a1.l 読み込みアドレス
3105+
3106+返値 d0.w データ
3107+ a1.l 次のアドレス
3108+
3109+ 指定アドレスから 1 ワードデータを読み込む.
3110+
3111+==============================================================================
3112+
3113+$84 _B_LPEEK 指定アドレスから 1 ロングワード読み込み
3114+
3115+引数 a1.l 読み込みアドレス
3116+
3117+返値 d0.l データ
3118+ a1.l 次のアドレス
3119+
3120+ 指定アドレスから 1 ロングワードデータを読み込む.
3121+
3122+==============================================================================
3123+
3124+$85 _B_MEMSTR 指定アドレスから複数バイト読み込み
3125+
3126+引数 d1.l 転送バイト数-1
3127+ a1.l 転送元アドレス
3128+ a2.l 転送先アドレス
3129+
3130+返値 a1.l 次のアドレス
3131+ a2.l 〃
3132+ d1.l は破壊される.
3133+
3134+ 指定アドレスから複数バイトデータを転送する.
3135+ IOCS _B_MEMSET とは転送の方向が違う(*a2++ = *a1++).
3136+
3137+==============================================================================
3138+
3139+$86 _B_BPOKE 指定アドレスヘ 1 バイト書き込み
3140+
3141+引数 d1.b データ
3142+ a1.l 書き込みアドレス
3143+
3144+返値 a1.l 次のアドレス
3145+
3146+ 指定アドレスに 1 バイトデータを書き込む.
3147+
3148+==============================================================================
3149+
3150+$87 _B_WPOKE 指定アドレスヘ 1 ワード書き込み
3151+
3152+引数 d1.w データ
3153+ a1.l 書き込みアドレス
3154+
3155+返値 a1.l 次のアドレス
3156+
3157+ 指定アドレスに 1 ワードデータを書き込む.
3158+
3159+==============================================================================
3160+
3161+$88 _B_LPOKE 指定アドレスヘ 1 ロングワード書き込み
3162+
3163+引数 d1.l データ
3164+ a1.l 書き込みアドレス
3165+
3166+返値 a1.l 次のアドレス
3167+
3168+ 指定アドレスに 1 ロングワードデータを書き込む.
3169+
3170+==============================================================================
3171+
3172+$89 _B_MEMSET 指定アドレスヘ複数バイト書き込み
3173+
3174+引数 d1.l 転送バイト数-1
3175+ a1.l 転送先アドレス
3176+ a2.l 転送元アドレス
3177+
3178+返値 a1.l 次のアドレス
3179+ a2.l 〃
3180+ d1.l は破壊される.
3181+
3182+ 指定アドレスに複数バイトデータを転送する.
3183+ IOCS _B_MEMSTR とは転送の方向が違う(*a1++ = *a2++).
3184+
3185+==============================================================================
3186+
3187+$8a _DMAMOVE DMA 転送
3188+
3189+引数 d1.b モード
3190+ bit 7 方向(0:a1からa2 1:a2からa1)
3191+ bit 3〜2 MAC(0:a1固定 1:a1++ 2:a1-- 3:指定禁止)
3192+ bit 1〜0 DAC(0:a2固定 1:a2++ 2:a2-- 3:指定禁止)
3193+ d2.l 転送バイト数
3194+ a1.l 転送元アドレス
3195+ a2.l 転送先〃
3196+
3197+返値 d0/d2/a1/a2 は内容が保証されない.
3198+
3199+ バイト単位で DMA 転送を行なう.
3200+ $ff00 バイト以上転送する場合はすぐに戻ってこない.
3201+ DMA が使用不可能であれば、使用可能になるまで待つ.
3202+
3203+==============================================================================
3204+
3205+$8b _DMAMOV_A DMA 転送(アレイチェーン)
3206+
3207+引数 d1.b モード
3208+ d2.l チェーンテーブルの個数
3209+ a1.l 〃 アドレス
3210+ a2.l 転送先アドレス
3211+
3212+ アレイチェーンによってバイト単位で DMA 転送を行なう.
3213+ DMA が使用不可能であれば、使用可能になるまで待つ.
3214+ アレイチェーンテーブルの内容は、以下のチェーンテーブルを繰り返したもの.
3215+
3216+offset size
3217+0 1.l 転送元データのアドレス
3218+4 1.w 転送バイト数(1〜$ffff)
3219+
3220+==============================================================================
3221+
3222+$8c _DMAMOV_L DMA 転送(リンクアレイチェーン)
3223+
3224+引数 d1.b モード
3225+ a1.l チェーンテーブルのアドレス
3226+ a2.l 転送先アドレス
3227+
3228+ リンクアレイチェーンによってバイト単位で DMA 転送を行なう.
3229+ DMA が使用不可能であれば、使用可能になるまで待つ.
3230+ リンクアレイチェーンテーブルの内容は、以下のチェーンテーブルを連結したもの.
3231+
3232+offset size
3233+0 1.l 転送元データのアドレス
3234+4 1.w 転送バイト数(1〜$ffff)
3235+6 1.l 次のテーブルのアドレス(0 でテーブルの終わり)
3236+
3237+==============================================================================
3238+
3239+$8d _DMAMODE DMA 状態検査
3240+
3241+返値 実行状態
3242+ d0.l = $00 何も実行していない
3243+ $8a IOCS DMAMOVE ($8a) を実行中
3244+ $8b IOCS DMAMOV_A($8b) 〃
3245+ $8c IOCS DMAMOV_L($8c) 〃
3246+
3247+ DMA の実行状態を調べる.
3248+
3249+==============================================================================
3250+
3251+$8e _BOOTINF 起動情報を得る
3252+
3253+返値 起動状態
3254+ bit 31〜24 起動方法(0:パワースイッチ 1:外部スイッチ 2:タイマ)
3255+ bit 23〜 0 ブート情報($80〜$8f:SASI-HD 0〜15 $90〜$93:2HD-FD 0〜3)
3256+ ($ed0000〜$ed3ffe:SRAM その他:ROM )
3257+
3258+ 起動情報を調べる. ROM から起動した場合は起動アドレス(1.l)へのポインタ
3259+ を返すが、SRAM から起動した場合は起動したアドレスそのものを返す.
3260+ なお、SRAM/ROM から起動後、SRAM に設定されている起動アドレスを変更する
3261+ と正しいアドレスを返さない.
3262+
3263+==============================================================================
3264+
3265+$8f _ROMVER ROM バージョンを得る
3266+
3267+返値 バージョン/作成日(BCD)
3268+ bit 31〜24 バージョン
3269+ bit 23〜16 年
3270+ bit 15〜 8 月
3271+ bit 7〜 0 日
3272+
3273+ ROM のバージョンと作成年月日を調べる.
3274+
3275+==============================================================================
3276+
3277+$90 _G_CLR_ON グラフィック画面の初期化及び表示モードの設定
3278+
3279+ グラフィック画面をクリアして表示する. パレットは標準に戻り、アクセスペ
3280+ ージは 0 に設定される.
3281+
3282+==============================================================================
3283+
3284+$91 (未公開) グラフィック画面モードの設定
3285+
3286+引数 d1.b グラフィック画面モード
3287+ d1.b = 0 16 色 4 画面(実画面 512)
3288+ 1 256 〃 2 〃 ( 〃 512)
3289+ 3 65536 〃 1 〃 ( 〃 512)
3290+ 4 16 〃 1 〃 ( 〃 1024)
3291+ -1 現在のモードを調べる
3292+
3293+返値 変更前のグラフィック画面モード
3294+
3295+ グラフィック画面モードを直接設定する.
3296+ 設定データは VC R0($e82400) の設定と同じ.
3297+
3298+==============================================================================
3299+
3300+$92 (未公開) プライオリティ設定
3301+
3302+引数 d1.w プライオリティ設定(ただし d1.w = -1 の時は現在の設定を調べます)
3303+
3304+返値 変更前の設定
3305+
3306+ プライオリティを直接設定する.
3307+ 設定データは VC R1($e82500) の設定と同じ.
3308+
3309+==============================================================================
3310+
3311+$93 (未公開) 画面表示及び特殊モードの設定
3312+
3313+引数 d1.w 画面表示及び特殊モード設定(ただし d1.w = -1 の時は現在の設定を調べます)
3314+
3315+返値 変更前の設定
3316+
3317+ 画面表示及び特殊モードを直接設定する.
3318+ 設定データは VC R2($e82600) の設定と同じ.
3319+
3320+==============================================================================
3321+
3322+$94 GPALET グラフィックパレット設定
3323+
3324+引数 d1.w パレットコード
3325+ d2.l カラーコード(d2.l = -1 の時カラーコードを調べます)
3326+
3327+返値 d0.l = 0 正常終了
3328+ -1 グラフィック画面が初期化されていないか、パレットコードが異常
3329+ d2.l = -1 の時はカラーコードを返す(-1 ならエラー)
3330+
3331+ グラフィックパレットを設定/収得する.
3332+ ROM IOCS では65536色モードで正常に動作しないので注意すること.
3333+
3334+==============================================================================
3335+
3336+$95 (未公開) カラーコード設定
3337+
3338+引数 d1.w パレットコード
3339+
3340+ IOCS $9a,$9b,$9c で書き込まれるパレットコードを設定する.
3341+
3342+==============================================================================
3343+
3344+$96 (未公開) アクセスページ設定
3345+
3346+引数 d1.w アクセスページ(0〜3)
3347+
3348+ グラフィック IOCS で操作されるページを直接設定する.
3349+ IOCS APAGE($b1) とほぼ同じであるが、存在しないページを指定してもエラー
3350+ にならないので注意すること.
3351+
3352+==============================================================================
3353+
3354+$97 (未公開) グラフィック VRAM のドット単位読み込み
3355+
3356+引数 d1.w X 座標
3357+ d2.w Y 〃
3358+ a1.l バッファのアドレス
3359+ (0,a1) X 方向のドット数
3360+ (2,a1) Y 〃
3361+ (4,a1) (色数 $000f:16色 $00ff:256色 $ffff:65536色)
3362+ (6,a1) (パターンデータ)
3363+
3364+ グラフィック画面からバッファにドット単位で読み込む.
3365+
3366+==============================================================================
3367+
3368+$98 (未公開) グラフィック VRAM のドット単位書き込み(色マスクあり)
3369+
3370+引数 d1.w X 座標
3371+ d2.w Y 〃
3372+ d3.w マスクするカラーコード
3373+ a1.l バッファのアドレス
3374+ (0,a1) X 方向のドット数
3375+ (2,a1) Y 〃
3376+ (4,a1) 色数($000f:16色 $00ff:256色 $ffff:65536色)
3377+ (6,a1) パターンデータ
3378+
3379+返値 d0.l = 0 正常終了
3380+ -1 エラー(指定された色数と実際の設定が異なる)
3381+
3382+ バッファからグラフィック画面にドット単位で書き込む.
3383+ マスクするカラーコードに指定した色のドットは書き込まれない.
3384+
3385+==============================================================================
3386+
3387+$99 (未公開) グラフィック VRAM のドット単位書き込み
3388+
3389+引数 d1.w X 座標
3390+ d2.w Y 〃
3391+ a1.l バッファのアドレス
3392+ (0,a1) X 方向のドット数
3393+ (2,a1) Y 〃
3394+ (4,a1) 色数($000f:16色 $00ff:256色 $ffff:65536色)
3395+ (6,a1) パターンデータ
3396+
3397+返値 d0.l = 0 正常終了
3398+ -1 エラー(指定された色数と実際の設定が異なる)
3399+
3400+ バッファからグラフィック画面にドット単位で書き込む.
3401+
3402+==============================================================================
3403+
3404+$9a (未公開) グラフィック VRAM のビットパターン書き込み
3405+
3406+引数 d1.w X 座標
3407+ d2.w Y 〃
3408+ a1.l バッファのアドレス
3409+ (0,a1) X 方向のドット数
3410+ (2,a1) Y 〃
3411+ (4,a1) ビットパターン
3412+
3413+ グラフィック画面にビットパターンを書き込む.
3414+ ビットが 1 のドットは IOCS $95 で設定したカラーコードが書き込まれ、
3415+ 0 のドットは何も書き込まれない.
3416+
3417+==============================================================================
3418+
3419+$9b (未公開) グラフィック VRAM のビットパターン書き込み(バックカラーあり)
3420+
3421+引数 d1.w X 座標
3422+ d2.w Y 〃
3423+ d3.w バックカラーコード
3424+ a1.l バッファのアドレス
3425+ (0,a1) X 方向のドット数
3426+ (2,a1) Y 〃
3427+ (4,a1) ビットパターン
3428+
3429+ グラフィック画面にビットパターンを書き込む.
3430+ ビットが 1 のドットは IOCS $95 で設定したカラーコードが書き込まれ、
3431+ 0 のドットはバックカラーコードが書き込まれる.
3432+
3433+==============================================================================
3434+
3435+$9c (未公開) グラフィック VRAM のビットパターン拡大書き込み
3436+
3437+引数 d1.w X 座標
3438+ d2.w Y 〃
3439+ d3.w X 方向の拡大率
3440+ d4.w Y 〃
3441+ a1.l バッファのアドレス
3442+ (0,a1) X 方向のドット数
3443+ (2,a1) Y 〃
3444+ (4,a1) ビットパターン
3445+
3446+ グラフィック画面にビットパターンを拡大して書き込む.
3447+ ビットが 1 のドットは IOCS $95 で設定したカラーコードが書き込まれ、
3448+ 0 のドットは何も書き込まれない.
3449+
3450+==============================================================================
3451+
3452+$a0 _SFTJIS S-JIS→JIS コード変換
3453+
3454+引数 d1.w S-JIS 漢字コード
3455+
3456+返値 d0.hw = 0 変換成功
3457+ -1 エラー
3458+ d0.w JIS 漢字コード(エラーの場合通常 $2228:※)
3459+ d1.l 〃
3460+
3461+ S-JIS 漢字コードを JIS 漢字コードに変換する.
3462+
3463+==============================================================================
3464+
3465+$a1 _JISSFT JIS→S-JIS コード変換
3466+
3467+引数 d1.w JIS 漢字コード
3468+
3469+返値 d0.hw = 0 変換成功
3470+ -1 エラー
3471+ d0.w S-JIS 漢字コード(エラーの場合通常 $81a6:※)
3472+ d1.l 〃
3473+
3474+ JIS 漢字コードを S-JIS 漢字コードに変換する.
3475+
3476+==============================================================================
3477+
3478+$a2 _AKCONV ANK→S-JIS コード変換
3479+
3480+引数 d1.hw 平仮名/片仮名の指定(0:平仮名に変換 1:片仮名に変換)
3481+ d1.w ANK コード($20〜7e,$a1〜df)
3482+
3483+返値 d0.hw = 0 変換成功
3484+ -1 エラー
3485+ d0.w S-JIS 漢字コード(エラーの場合通常 $81a6:※)
3486+
3487+ ANK コードを 全角 S-JIS コードに変換する.
3488+
3489+==============================================================================
3490+
3491+$a3 _RMACNV ローマ字→ANK カナ変換
3492+
3493+引数 d1.b アルファベット
3494+ a1.l 作業領域のアドレス
3495+ a2.l 変換結果を入れるバッファのアドレス
3496+
3497+返値 ステータス
3498+ d0.l = 0 変換途中で返せる仮名文字がない
3499+ (作業領域に変換途中の文字が残っているので、それを破棄
3500+ してはいけない)
3501+ -1 変換不可能な文字が指定された
3502+ (作業領域の先頭バイトは 0 になる)
3503+ その他 変換文字数(作業領域に変換途中の文字が残っている可能性
3504+ があるので、それを破棄してはいけない)
3505+
3506+ ローマ字を仮名に変換する. ローマ字は通常大文字を使用し、促音や拗音など
3507+ 小さい仮名はローマ字の母音にアルファベットの小文字を用いる.
3508+ 最初の変換の前に、作業領域の先頭のバイトを 0 にしておく.
3509+
3510+==============================================================================
3511+
3512+$a4 _DAKJOB 濁点処理
3513+
3514+引数 a1.l 全角文字列の終端(0)のアドレス
3515+
3516+返値 d0.l 文字列の増加したバイト数
3517+ d0.l = 0 最後の全角文字に濁点を付けた場合
3518+ 2 文字列の最後に濁点を加えた場合
3519+ a1.l 処理後の全角文字列の終端のアドレス
3520+
3521+ 全角文字列の濁点処理を行なう.
3522+
3523+==============================================================================
3524+
3525+$a5 _HANJOB 半濁点処理
3526+
3527+引数 a1.l 全角文字列の終端(0)のアドレス
3528+
3529+返値 d0.l 文字列の増加したバイト数
3530+ d0.l = 0 最後の全角文字に半濁点を付けた場合
3531+ 2 文字列の最後に半濁点を加えた場合
3532+ a1.l 処理後の全角文字列の終端のアドレス
3533+
3534+ 全角文字列の半濁点処理を行なう.
3535+
3536+==============================================================================
3537+
3538+$ac _SYS_STAT システム状態の設定
3539+
3540+引数 d1.l モード
3541+ d1.l = 0 MPU 状態の収得
3542+ 1 キャッシュ状態の収得
3543+ 2 キャッシュを SRAM の設定値に設定
3544+ 3 キャッシュの消去
3545+ 4 キャッシュの設定
3546+ d2.l キャッシュ有効/無効フラグ(d1.l = 4 の時のみ)
3547+ bit 1 データキャッシュ(0:無効 1:有効)
3548+ bit 0 命令 〃 ( 〃 )
3549+
3550+返値 d1.l = 0 の時、MPU ステータス
3551+ bit 31〜16 クロックスピード(0.1MHz単位)
3552+ bit 15 浮動小数点演算コプロセッサ(0:なし 1:あり)
3553+ bit 14 MMU(0:なし 1:あり)
3554+ bit 7〜 0 MPU タイプ(0:68000 1:68010 2:68020 3:68030)
3555+ d1.l = 1,2,4 の時、変更前のキャッシュ有効/無効フラグ
3556+
3557+ システム状態の設定を行なう.
3558+ この IOCS コールは ROM IOCS version 1.3 だけで使用可能.
3559+
3560+==============================================================================
3561+
3562+$ad _B_CONMOD カーソルおよびスクロールの設定
3563+
3564+引数 d1.l モード
3565+ d1.w = 0 カーソル点滅許可
3566+ 1 カーソル点滅禁止
3567+ 2 カーソルパターン指定
3568+ 3 カーソルパターン定義
3569+ 16 スムーススクロールの指定
3570+ 17 ラスタコピースクロールの指定
3571+ 18 ソフト〃
3572+ d2.l d1.w = 2 の時、カーソルパターン
3573+ d2.w = 0 内部バッファに定義されたパターンで描画する.
3574+ その他 d2.hw をスタートラインと見なして、d2.b/d2.hb
3575+ をプレーン 0/1 と排他論理和をとる.
3576+ d1.w = 3 の時、パターンアドレス
3577+ d1.w = 16 の時、スクロールの指定
3578+ d2.l = 0 ジャンプスクロール
3579+ 1 4 ドットスクロール
3580+ 2 8 〃
3581+ 3 16 〃
3582+
3583+ カーソルおよびスクロールを設定する.
3584+ カーソルの点滅を禁止した場合、カーソルが表示されたままになる. 許可状態
3585+ ならば一定時間ごとに反転する.
3586+
3587+ カーソルパターンの指定は、d2.b でプレーン 0 の反転パターン、d2.hb でプ
3588+ レーン 1 の反転パターンを設定し、d2.hw で指定したライン位置から一番下
3589+ のラインまで排他的論理和がとられる. $0000_ffffで従来のパターンと同じに
3590+ なる. d2.w が 0 の場合は d1.w = 3 で設定したパターンが使用される.
3591+
3592+ カーソルパターンの定義は、d2.l をカーソルのパターンアドレスと見なして
3593+ 内部バッファにコピーする. パターンはプレーン 0/1 の順に 16 バイトずつ
3594+ 並べる.
3595+
3596+ スムーススクロールを使用する場合は、文字を連続的に出力しなければスクロ
3597+ ール時に画面が乱れる. 垂直同期(16ms)の間に 1 ライン出力を終了すること.
3598+ また、広範囲でのソフトコピースクロールは、表示速度が遅くなる.
3599+
3600+ この IOCS コールは ROM IOCS version 1.3 若しくは IOCS.X 常駐時のみ使用
3601+ 可能. ただし、前者の場合は d1.w = 2 のカーソルパターン指定で d2.l = 0
3602+ の場合は標準のカーソルが表示される. また d2.w = 3 のカーソルパターン定
3603+ 義は使用できないので注意すること.
3604+
3605+==============================================================================
3606+
3607+$ae _OS_CURON カーソル表示
3608+
3609+ カーソル表示をする. コンソールに対して ESC[>5l を出力した時に使用される.
3610+ IOCS $20〜$2f に対して有効.
3611+
3612+==============================================================================
3613+
3614+$af _OS_CUROF カーソル消去
3615+
3616+ カーソル表示しない. コンソールに対して ESC[>5h を出力した時に使用される.
3617+ IOCS $20〜$2f に対して有効.
3618+
3619+==============================================================================
3620+
3621+$b0 _DRAWMODE グラフィック描画モードの設定
3622+
3623+引数 d1.w 描画モード(0:通常 1:反転 -1:現在のモードを調べる)
3624+
3625+返値 変更前のモード
3626+
3627+ グラフィック描画の際の描画モードを設定する.
3628+ 反転モードで描画した場合、書き込まれるドットの色の NOT 値で描画する.
3629+ このモードで 2 回描画すると、画面が元に戻る. 使用後は通常の描画モード
3630+ に戻すこと.
3631+ 反転モードが有効な IOCS コールは _LINE、_BOX、_FILL、_SYMBOL だけで、
3632+ 他のコールは常に通常のモードで描画される.
3633+ この IOCS コールは ROM IOCS version 1.3 若しくは IOCS.X、HIOCS.X 常駐
3634+ 時のみ使用可能だが、前の二つでは正常に動作しない.
3635+
3636+==============================================================================
3637+
3638+$b1 _APAGE グラフィック描画ページの設定
3639+
3640+引数 d1.b 書き込みページ(0〜3,-1 の時は現在の設定を調べます)
3641+
3642+返値 d1.b = -1 の時、現在の書き込みページ
3643+ それ以外の時、ステータス
3644+ d0.l = 0 正常終了
3645+ -1 グラフィック使用不可
3646+ -2 ページが指定外(4 以上)
3647+ -3 指定ページは現在のモードでは使用不可
3648+
3649+ グラフィック画面の書き込みページを設定する.
3650+
3651+==============================================================================
3652+
3653+$b2 _VPAGE グラフィック画面表示ページの設定
3654+
3655+引数 d1.b 表示ページ(bit 0〜3 がページ 0〜3 に対応)
3656+
3657+返値 d0.l = 0 正常終了
3658+ -1 グラフィック使用不可
3659+ -2 ページが指定外
3660+ -3 指定ページは現在のモードでは使用不可
3661+
3662+ グラフィック画面の表示ページを設定する.
3663+
3664+==============================================================================
3665+
3666+$b3 _HOME グラフィック画面の表示位置設定
3667+
3668+引数 d1.b 表示位置を設定するページ(bit 0〜3 がページ 0〜3 に対応,0 で全てのページ)
3669+ d2.w X 座標
3670+ d3.w Y 〃
3671+
3672+返値 d0.l = 0 正常終了
3673+ -1 グラフィック使用不可
3674+ -2 ページ若しくは座標が指定外
3675+ -3 指定ページ若しくは座標は現在のモードでは使用不可
3676+
3677+ グラフィック画面の表示位置を設定する.
3678+ d1.b = 0 の時、有効なページが全て変更される.
3679+
3680+==============================================================================
3681+
3682+$b4 _WINDOW グラフィック描画ウィンドウの設定
3683+
3684+引数 d1.w 左端 X 座標
3685+ d2.w 上端 Y 〃
3686+ d3.w 右端 X 〃
3687+ d4.w 下端 Y 〃
3688+
3689+返値 d0.l = 0 正常終了
3690+ -1 グラフィック使用不可
3691+ -2 座標指定が異常
3692+ -3 指定座標は現在のモードでは使用不可
3693+
3694+ グラフィック画面のクリッピング範囲を設定する. IOCS $b5〜$bf に対して有効.
3695+ d1.w ≦ d3.w かつ d2.w ≦ d4.w でなければならない.
3696+
3697+==============================================================================
3698+
3699+$b5 _WIPE グラフィック画面のクリア
3700+
3701+返値 d0.l = 0 正常終了
3702+ -1 グラフィック使用不可
3703+
3704+ グラフィック画面をクリアする.
3705+
3706+==============================================================================
3707+
3708+$b6 _PSET グラフィック画面のポイントセット
3709+
3710+引数 a1.l パラメータバッファのアドレス
3711+ (0,a1) X 座標
3712+ (2,a1) Y 〃
3713+ (4,a1) パレットコード
3714+
3715+返値 d0.l = 0 正常終了
3716+ -1 グラフィック使用不可
3717+ -2 指定パレットコードは現在のモードでは使用不可
3718+
3719+ グラフィック画面に点を描画する.
3720+
3721+==============================================================================
3722+
3723+$b7 _POINT グラフィック画面のポイントゲット
3724+
3725+引数 a1.l パラメータバッファのアドレス
3726+ (0,a1) X 座標
3727+ (2,a1) Y 〃
3728+ (4,a1) (パレットコード)
3729+
3730+返値 d0.l = 0 正常終了
3731+ -1 グラフィック使用不可
3732+
3733+ グラフィック画面の指定の点のパレットコードを調べる.
3734+ 指定座標がクリッピング範囲外であった場合、パレットコードは常に 0 が返る.
3735+
3736+==============================================================================
3737+
3738+$b8 _LINE グラフィック画面のライン
3739+
3740+引数 a1.l パラメータバッファのアドレス
3741+ (0,a1) 始点 X 座標
3742+ (2,a1) 〃 Y 〃
3743+ (4,a1) 終点 X 〃
3744+ (6,a1) 〃 Y 〃
3745+ (8,a1) パレットコード
3746+ (10,a1) ラインスタイル
3747+
3748+返値 d0.l = 0 正常終了
3749+ -1 グラフィック使用不可
3750+ -2 指定パレットコードは現在のモードでは使用不可
3751+
3752+ グラフィック画面に線を描画する.
3753+
3754+==============================================================================
3755+
3756+$b9 _BOX グラフィック画面のボックス
3757+
3758+引数 a1.l パラメータバッファのアドレス
3759+ (0,a1) 始点 X 座標
3760+ (2,a1) 〃 Y 〃
3761+ (4,a1) 終点 X 〃
3762+ (6,a1) 〃 Y 〃
3763+ (8,a1) パレットコード
3764+ (10,a1) ラインスタイル
3765+
3766+返値 d0.l = 0 正常終了
3767+ -1 グラフィック使用不可
3768+ -2 指定パレットコードは現在のモードでは使用不可
3769+
3770+ グラフィック画面に長方形を描画する.
3771+
3772+==============================================================================
3773+
3774+$ba _FILL グラフィック画面のボックスフィル
3775+
3776+引数 a1.l パラメータバッファのアドレス
3777+ (0,a1) 始点 X 座標
3778+ (2,a1) 〃 Y 〃
3779+ (4,a1) 終点 X 〃
3780+ (6,a1) 〃 Y 〃
3781+ (8,a1) パレットコード
3782+
3783+返値 d0.l = 0 正常終了
3784+ -1 グラフィック使用不可
3785+ -2 指定パレットコードは現在のモードでは使用不可
3786+
3787+ グラフィック画面に塗り潰した長方形を描画する.
3788+
3789+==============================================================================
3790+
3791+$bb _CIRCLE グラフィック画面のサークル
3792+
3793+引数 a1.l パラメータバッファのアドレス
3794+ (0,a1) 中心 X 座標
3795+ (2,a1) 〃 Y 〃
3796+ (4,a1) 半径
3797+ (6,a1) パレットコード
3798+ (8,a1) 円弧開始角度(負数で扇形を描画)
3799+ (10,a1) 〃 終了〃 ( 〃 )
3800+ (12,a1) 比率
3801+
3802+返値 d0.l = 0 正常終了
3803+ -1 グラフィック使用不可
3804+ -2 指定パレットコードは現在のモードでは使用不可
3805+
3806+ グラフィック画面に楕円を描画する.
3807+ 円弧開始/終了角度は 0〜360 で、負数を指定すると扇形(角度は値の絶対値)
3808+ を描画する.
3809+ 比率(以下 P)は 0〜$ff00 で、描画する楕円の形は以下の通り.
3810+
3811+ 0 ≦ P < 256 横長楕円 Rx = R ; Ry = R*P/256
3812+ 256 < P ≦ $ff00 縦長楕円 Ry = R ; Rx = R*P/$ff00(P は 256 単位で切捨て)
3813+ P = 256 真円 Rx = Ry = R
3814+
3815+==============================================================================
3816+
3817+$bc _PAINT グラフィック画面のペイント
3818+
3819+引数 a1.l パラメータバッファのアドレス
3820+ (0,a1) X 座標
3821+ (2,a1) Y 〃
3822+ (4,a1) パレットコード
3823+ (6,a1) 作業領域開始アドレス
3824+ (10,a1) 〃 終了〃
3825+
3826+返値 d0.l = 0 正常終了
3827+ -1 グラフィック使用不可
3828+ -2 指定パレットコードは現在のモードでは使用不可
3829+
3830+ グラフィック画面を塗り潰す.
3831+ 作業領域は偶数番地から始まる必要があり、不足した場合はペイント途中で戻る.
3832+
3833+==============================================================================
3834+
3835+$bd _SYMBOL グラフィック画面のシンボル
3836+
3837+引数 a1.l パラメータバッファのアドレス
3838+
3839+返値 d0.l = 0 正常終了
3840+ -1 グラフィック使用不可
3841+ -2 指定パレットコードは現在のモードでは使用不可
3842+
3843+ グラフィック画面に文字列を拡大して描画する.
3844+ 座標は、回転角度が 0,90,180,270 の時それぞれ左上/左下/右下/右上隅を指定する.
3845+ パラメータバッファの内容は以下の通り.
3846+
3847+offset size
3848+ 0 1.w X 座標
3849+ 2 1.w Y 〃
3850+ 4 1.l 文字列のアドレス
3851+ 8 1.b X 方向倍率
3852+ 9 1.b Y 〃
3853+10 1.w パレットコード
3854+12 1.b 文字パターンの大きさ(0:12 ドット系 1:16〃 2:24〃)
3855+13 1.b 回転角度(0:0°1:90°2:180°3:270°)
3856+
3857+==============================================================================
3858+
3859+$be _GETGRM グラフィック画面のドット単位読み込み
3860+
3861+引数 a1.l パラメータバッファのアドレス
3862+
3863+返値 d0.l = 0 正常終了
3864+ -1 グラフィック使用不可
3865+ -2 座標指定が異常
3866+ -3 バッファの容量が小さすぎる
3867+
3868+ グラフィック画面からバッファにドット単位で読み込む.
3869+ パラメータバッファの内容は以下の通り.
3870+
3871+offset size
3872+ 0 1.w 始点 X 座標
3873+ 2 1.w 〃 Y 〃
3874+ 4 1.w 終点 X 〃
3875+ 6 1.w 〃 Y 〃
3876+ 8 1.l バッファ開始アドレス
3877+12 1.l 〃 終了〃
3878+
3879+==============================================================================
3880+
3881+$bf _PUTGRM グラフィック画面のドット単位書き込み
3882+
3883+引数 a1.l パラメータバッファのアドレス
3884+
3885+返値 d0.l = 0 正常終了
3886+ -1 グラフィック使用不可
3887+ -2 座標指定が異常
3888+ -3 バッファの容量が小さすぎる
3889+
3890+ バッファからグラフィック画面にドット単位で書き込む.
3891+ パラメータバッファの内容は以下の通り.
3892+
3893+offset size
3894+ 0 1.w 始点 X 座標
3895+ 2 1.w 〃 Y 〃
3896+ 4 1.w 終点 X 〃
3897+ 6 1.w 〃 Y 〃
3898+ 8 1.l バッファ開始アドレス
3899+12 1.l 〃 終了〃
3900+
3901+==============================================================================
3902+
3903+$c0 _SP_INIT スプライト初期化
3904+
3905+返値 d0.l = 0 正常終了
3906+ -1 画面モードが不正
3907+
3908+ スプライト画面を初期化する.
3909+
3910+==============================================================================
3911+
3912+$c1 _SP_ON スプライト表示
3913+
3914+返値 d0.l = 0 正常終了
3915+ -1 画面モードが不正
3916+
3917+ スプライト画面を表示する.
3918+
3919+==============================================================================
3920+
3921+$c2 _SP_OFF スプライト消去
3922+
3923+返値 d0.l = 0 正常終了
3924+ -1 画面モードが不正
3925+
3926+ スプライト画面を表示しない.
3927+
3928+==============================================================================
3929+
3930+$c3 _SP_CGCLR スプライトパターンのクリア
3931+
3932+引数 d1.l パターンコード(0〜255)
3933+
3934+返値 d0.l = 0 正常終了
3935+ -1 画面モードが不正
3936+
3937+ 指定した PCG をクリアする. クリアするパターンの大きさは 128 バイト.
3938+
3939+==============================================================================
3940+
3941+$c4 _SP_DEFCG スプライトパターンの定義
3942+
3943+引数 d1.l パターンコード(0〜255)
3944+ d2.l パターンの大きさ(0:8x8 1:16x16)
3945+ a1.l パターンデータのアドレス
3946+
3947+返値 d0.l = 0 正常終了
3948+ -1 画面モードが不正
3949+
3950+ 指定した PCG のパターンを定義する.
3951+ パターンの大きさは d2.l = 0 の時 32 バイト、d2.l = 1 の時 128 バイト.
3952+
3953+==============================================================================
3954+
3955+$c5 _SP_GTPCG スプライトパターンの読み込み
3956+
3957+引数 d1.l パターンコード(0〜255)
3958+ d2.l パターンの大きさ(0:8x8 1:16x16)
3959+ a1.l バッファのアドレス
3960+
3961+返値 d0.l = 0 正常終了
3962+ -1 画面モードが不正
3963+
3964+ 指定した PCG のパターンを読み込む.
3965+ バッファは d2.l = 0 の時 32 バイト、d2.l = 1 の時 128 バイト必要.
3966+
3967+==============================================================================
3968+
3969+$c6 _SP_REGST スプライトレジスタの設定
3970+
3971+引数 d1.l 垂直帰線期間検出/スプライト番号
3972+ bit 31 0:垂直帰線期間検出後設定 1:検出しない
3973+ bit 6〜0 スプライト番号(0〜127)
3974+ d2.l X 座標(0〜1023 16 で左端に表示される)
3975+ d3.l Y 〃 (〃 〃 上端〃 )
3976+ d4.l パターンコード
3977+ bit 15 縦方向反転指定(0:反転しない 1:する)
3978+ bit 14 横〃 ( 〃 )
3979+ bit 11〜 8 パレットブロック指定(0〜15)
3980+ bit 7〜 0 パターンコード(0〜255)
3981+ d5.l プライオリティ
3982+ d5.l = 0 スプライトを表示しない
3983+ 1 BG0 < BG1 < SP
3984+ 2 BG0 < SP < BG1
3985+ 3 SP < BG0 < BG1
3986+
3987+返値 d0.l = 0 正常終了
3988+ -1 画面モードが不正
3989+
3990+ スプライトレジスタを設定する.
3991+ d2.l/d3.l/d4.l/d5.l を -1 にすると設定を変更しないが、始めての設定時に
3992+ は -1 を指定してはいけない.
3993+
3994+==============================================================================
3995+
3996+$c7 _SP_REGGT スプライトレジスタの読み出し
3997+
3998+引数 d1.l スプライト番号(0〜127)
3999+
4000+返値 d0.l = 0 正常終了
4001+ -1 画面モードが不正
4002+ d2.l X 座標
4003+ d3.l Y 〃
4004+ d4.l パターンコード
4005+ d5.l プライオリティ
4006+
4007+ スプライトレジスタを読み出す.
4008+
4009+==============================================================================
4010+
4011+$c8 _BGSCRLST バックグラウンドスクロールレジスタの設定
4012+
4013+引数 d1.l 垂直帰線期間検出/バックグラウンドの指定
4014+ bit 31 0:垂直帰線期間検出後設定 1:検出しない
4015+ bit 0 BG 番号(0/1)
4016+ d2.l X 座標(0〜1023)
4017+ d3.l Y 〃 (〃 )
4018+
4019+返値 d0.l = 0 正常終了
4020+ -1 画面モードが不正
4021+
4022+ バックグラウンドスクロールレジスタを設定する. d2.l/d3.lを -1 にすると
4023+ 設定を変更しないが、始めての設定時には -1 を指定してはいけない.
4024+
4025+==============================================================================
4026+
4027+$c9 _BGSCRLGT バックグラウンドスクロールレジスタの読み出し
4028+
4029+引数 d1.l バックグラウンドの指定(0/1)
4030+
4031+返値 d0.l = 0 正常終了
4032+ -1 画面モードが不正
4033+ d2.l X 座標
4034+ d3.l Y 〃
4035+
4036+ バックグラウンドスクロールレジスタを読み出す.
4037+
4038+==============================================================================
4039+
4040+$ca _BGCTRLST バックグラウンドコントロールレジスタの設定
4041+
4042+引数 d1.l バックグラウンドの指定(0/1)
4043+ d2.l テキストページの指定(0/1)
4044+ d3.l 表示/非表示指定(0:非表示 1:表示)
4045+
4046+返値 d0.l = 0 正常終了
4047+ -1 画面モードが不正
4048+
4049+ バックグラウンドコントロールレジスタを設定する. d2.l/d3.lを -1 にする
4050+ と設定を変更しないが、始めての設定時には -1 を指定してはいけない.
4051+
4052+==============================================================================
4053+
4054+$cb _BGCTRLGT バックグラウンドコントロールレジスタの読み出し
4055+
4056+引数 d1.l バックグラウンドの指定(0/1)
4057+
4058+返値 d0.l = 0 テキストページ 0、非表示
4059+ 1 〃 0、 表示
4060+ 2 〃 1、非表示
4061+ 3 〃 1、 表示
4062+ -1 画面モードが不正
4063+
4064+ バックグラウンドコントロールレジスタを読み出す.
4065+
4066+==============================================================================
4067+
4068+$cc _BGTEXTCL バックグラウンドテキストのクリア
4069+
4070+引数 d1.l テキストページの指定(0/1)
4071+ d2.l パターンコード
4072+
4073+返値 d0.l = 0 正常終了
4074+ -1 画面モードが不正
4075+
4076+ バックグラウンド画面の指定したテキストページをパターンコードで埋める.
4077+
4078+==============================================================================
4079+
4080+$cd _BGTEXTST バックグラウンドテキストの設定
4081+
4082+引数 d1.l テキストページの指定(0/1)
4083+ d2.l X 座標(0〜63)
4084+ d3.l Y 〃 ( 〃 )
4085+ d4.l パターンコード
4086+
4087+返値 d0.l = 0 正常終了
4088+ -1 画面モードが不正
4089+
4090+ バックグラウンド画面のテキストページにパターンコードを設定する.
4091+
4092+==============================================================================
4093+
4094+$ce _BGTEXTGT バックグラウンドテキストの読み出し
4095+
4096+引数 d1.l テキストページの指定(0/1)
4097+ d2.l X 座標(0〜63)
4098+ d3.l Y 〃 ( 〃 )
4099+
4100+返値 d0.l = -1 画面モードが不正
4101+ その他 パターンコード
4102+
4103+ バックグラウンド画面のテキストページからパターンコードを読み出す.
4104+
4105+==============================================================================
4106+
4107+$cf _SPALET スプライトパレットの設定
4108+
4109+引数 d1.l 垂直帰線期間検出/パレットコード
4110+ bit 31 0:垂直帰線期間検出後設定 1:検出しない
4111+ bit 3〜 0 パレットコード(0〜15 若しくは 16〜255)
4112+ d2.l パレットブロック(1〜15 若しくは 0)
4113+ d3.l カラーコード(d3.l = -1 の時カラーコードを調べる)
4114+
4115+返値 d0.l = -1 画面モードが不正
4116+ -2 パレットブロック 0 を設定/収得しようとした
4117+ その他 変更前の設定
4118+
4119+ スプライトパレットを設定する.
4120+ パレットブロックに 0 を指定した場合は、パレットコードをパレット先頭か
4121+ らの通し番号で指定する事が出来る. ただし、パレットブロック 0 は指定で
4122+ きないので、パレットコードは 16 以上に限る.
4123+ 垂直帰線期間を検出せずにパレットを設定すると、画面がちらつく.
4124+
4125+==============================================================================
4126+
4127+$d3 _TXXLINE テキスト画面の水平ライン
4128+
4129+引数 a1.l パラメータバッファのアドレス
4130+ (0,a1) テキストプレーン(0〜3)
4131+ (2,a1) X 座標
4132+ (4,a1) Y 〃
4133+ (6,a1) X 方向の長さ
4134+ (8,a1) ラインスタイル(下位バイトのみ有効)
4135+
4136+ テキスト画面に垂直線を描画する.
4137+ ROM IOCS version 1.3 若しくは IOCS.X 常駐時は、テキストプレーンの指定
4138+ において最上位ビットを 1 にすることにより、複数プレーンに同時に描画す
4139+ る事が出来る. bit 0〜3 がプレーン0〜3に対応する. また、呼び出された時
4140+ にテキスト同時アクセス機能が有効になっていれば、テキストプレーンの指定
4141+ は無視され、設定されていたプレーンに描画される.
4142+
4143+==============================================================================
4144+
4145+$d4 _TXYLINE テキスト画面の垂直ライン
4146+
4147+引数 a1.l パラメータバッファのアドレス
4148+ (0,a1) テキストプレーン(0〜3)
4149+ (2,a1) X 座標
4150+ (4,a1) Y 〃
4151+ (6,a1) Y 方向の長さ
4152+ (8,a1) ラインスタイル(下位バイトのみ有効)
4153+
4154+ テキスト画面に水平線を描画する.
4155+ テキストプレーンの指定は _TXXLINE と同じ.
4156+
4157+==============================================================================
4158+
4159+$d5 _TXLINE テキスト画面のライン
4160+
4161+引数 a1.l パラメータバッファのアドレス
4162+ (0,a1) テキストプレーン(0〜3)
4163+ (2,a1) 始点 X 座標
4164+ (4,a1) 〃 Y 〃
4165+ (6,a1) X 方向の長さ
4166+ (8,a1) Y 〃
4167+ (10,a1) ラインスタイル(下位バイトのみ有効)
4168+
4169+ テキスト画面に線を描画する.
4170+ テキストプレーンの指定は _TXXLINE と同じ.
4171+ CRTC のビットマスク機能を使用しているので、マウスカーソルはオフにして
4172+ このコールを呼び出ること.
4173+ この IOCS コールは ROM IOCS version 1.3 若しくは IOCS.X 常駐時のみ使用
4174+ 可能.
4175+
4176+==============================================================================
4177+
4178+$d6 _TXBOX テキスト画面のボックス
4179+
4180+引数 a1.l パラメータバッファのアドレス
4181+ (0,a1) テキストプレーン(0〜3)
4182+ (2,a1) X 座標
4183+ (4,a1) Y 〃
4184+ (6,a1) X 方向の長さ
4185+ (8,a1) Y 〃
4186+ (10,a1) ラインスタイル(下位バイトのみ有効)
4187+
4188+ テキスト画面に長方形を描画する.
4189+ テキストプレーンの指定は _TXXLINE と同じ.
4190+
4191+==============================================================================
4192+
4193+$d7 _TXFILL テキスト画面のボックスフィル
4194+
4195+引数 a1.l パラメータバッファのアドレス
4196+ (0,a1) テキストプレーン(0〜3)
4197+ (2,a1) X 座標
4198+ (4,a1) Y 〃
4199+ (6,a1) X 方向の長さ
4200+ (8,a1) Y 〃
4201+ (10,a1) ラインスタイル
4202+
4203+ テキスト画面に塗り潰した長方形を描画する.
4204+ テキストプレーンの指定は _TXXLINE と同じ.
4205+ ラインスタイルは、上位・下位バイトでそれぞれ偶数ライン目・奇数ライン目
4206+ の水平方向のラインスタイルを指定する.
4207+
4208+==============================================================================
4209+
4210+$d8 _TXREV テキスト画面の反転
4211+
4212+引数 a1.l パラメータバッファのアドレス
4213+ (0,a1) テキストプレーン(0〜3)
4214+ (2,a1) X 座標
4215+ (4,a1) Y 〃
4216+ (6,a1) X 方向の長さ
4217+ (8,a1) Y 〃
4218+
4219+ テキスト画面の指定範囲を反転する.
4220+ ROM IOCS version 1.3 若しくは IOCS.X 常駐時、呼び出された時にテキスト
4221+ 同時アクセス機能が有効になっていれば、テキストプレーンの指定は無視され、
4222+ 設定されていたプレーンに描画される.
4223+
4224+==============================================================================
4225+
4226+$df _TXRASCPY テキスト画面のラスターコピー
4227+
4228+引数 d1.hb コピー元ラスタ番号
4229+ d1.b コピー先〃
4230+ d2.w コピーラスタ数
4231+ d3.hb ポインタ移動方向(0:下方向 -1:上方向)
4232+ d3.b テキストプレーン(bit 0〜3 がプレーン 0〜3 に対応する)
4233+
4234+ テキスト画面の指定範囲をラスタコピーする.
4235+
4236+==============================================================================
4237+
4238+$f0 _OPMDRV OPMDRV 制御
4239+
4240+引数 d1.l 機能番号
4241+
4242+ 音源ドライバ OPMDRV.X で追加されたファンクションコールを呼び出す.
4243+ 引数/返値は機能番号によって異なる.
4244+
4245+==============================================================================
4246+
4247+$f1 _RSDRV 拡張 RS-232C 制御
4248+
4249+引数 d2.hb AUX 番号(0〜5)
4250+ d2.b 機能番号($30〜$39)
4251+ d2.b = $30〜$35 指定したポートで直接 IOCS $30〜$35 の
4252+ 機能を実行する.
4253+ $36,$37 d1.l = バッファサイズ
4254+ a1.l = バッファアドレス
4255+ 指定ポートの受信バッファを設定する.
4256+ $38,$39 未解析.
4257+
4258+返値
4259+ d2.b = $36,$37 の時
4260+ d1.w = 変更前のバッファサイズ
4261+ a1.l = 変更前のバッファアドレス
4262+
4263+ RSDRV.SYS で追加されたファンクションコールを呼び出す.
4264+ 詳細不明.
4265+
4266+==============================================================================
4267+
4268+$f2 _A_JOYGET アナログジョイスティック制御
4269+
4270+引数 d1.l 機能番号
4271+ d2.w モード(d1.l = 1 の時)
4272+ d2.w = 0 デジタル
4273+ 1 アナログ
4274+ -1 現在の設定を調べる
4275+ d2.w 通信速度(d1.l = 2 の時)
4276+ d2.w = 0 最高速度
4277+ 1 最高速度の1/2
4278+ 2 〃 1/3
4279+ 3 〃 1/4
4280+ -1 現在の速度を調べる
4281+ a1.l バッファアドレス(d1.l = 0 の時のみ)
4282+
4283+返値 d1.l = 0 の時、ステータス(-1 でエラー)
4284+ 1 の時、変更前のモード
4285+ 2 の時、変更前の速度
4286+
4287+ アナログジョイスティックドライバ AJOY.X で追加されたファンクション
4288+ コールを呼び出す.
4289+
4290+ d1.l = 0 の時、a1.l で指定したバッファにアナログジョイスティックのデー
4291+ タを読み込む. ジョイスティックデータの内容は以下の通り.
4292+
4293+offset size
4294+0 1.w スティック上下(0:上〜255:下)
4295+2 1.w 〃 左右(0:左〜255:右)
4296+4 1.w スロットル
4297+6 1.w オプション
4298+8 1.w トリガ(押し下げ状態でビットが0になる)
4299+ bit 11 A
4300+ bit 10 B
4301+ bit 9 A'
4302+ bit 8 B'
4303+ bit 7 A or A'(どちらかを押していれば0)
4304+ bit 6 B or B'( 〃 )
4305+ bit 5 C
4306+ bit 4 D
4307+ bit 3 E1
4308+ bit 2 E2
4309+ bit 1 スタート
4310+ bit 0 セレクト
4311+
4312+ d1.l = 1 の時、ジョイスティックのモードを変更する.
4313+
4314+ d1.l = 2 の時、ジョイスティックの通信速度を変更する. 最高速度に設定し
4315+ た場合、ジョイスティックをリセットしない限り他の速度に変更出来なくなる.
4316+
4317+==============================================================================
4318+
4319+$f3 _MUSICDRV MUSICDRV 制御
4320+
4321+引数 d1.l 機能番号
4322+
4323+ 音源ドライバ MUSICDRV.X で追加されたファンクションコールを呼び出す.
4324+ 引数/返値は機能番号によって異なる.
4325+
4326+==============================================================================
4327+
4328+$f5 _SCSIDRV SCSI IOCS
4329+
4330+引数 d1.l 機能番号
4331+
4332+ SCSI IOCS で追加されたファンクションコールを呼び出す.
4333+ 引数/返値は機能番号によって異なる.
4334+
4335+==============================================================================
4336+
4337+$fd _ABORTRST アボートする為に環境を再設定する
4338+
4339+ アボートするための環境を再設定する. OS で使用する.
4340+
4341+==============================================================================
4342+
4343+$fe _IPLERR 再起動する
4344+
4345+ 起動時のエラーで再起動する時に使用する. 通常は使用しない.
4346+
4347+==============================================================================
4348+
4349+$ff _ABORTJOB アボート
4350+
4351+ アボートする. OS で使用する.
4352+
4353+==============================================================================
4354+
4355+
4356+ Create account
4357+ Log in
4358+
4359+ Page
4360+ Discussion
4361+
4362+ Read
4363+ View source
4364+ View history
4365+
4366+Navigation
4367+
4368+ Data Crystal Main Page
4369+ RHDN Home
4370+ Recent changes
4371+ Random page
4372+ Help
4373+
4374+Games
4375+
4376+ RHDN Games List
4377+ Translation Request List
4378+ NES
4379+ SNES
4380+ GB/GBC
4381+ GBA
4382+ GEN
4383+ N64
4384+ PSX
4385+ PS2
4386+ NGC
4387+
4388+Community History
4389+
4390+ Fan Translation Community History
4391+
4392+Toolbox
4393+
4394+ What links here
4395+ Related changes
4396+ Special pages
4397+ Printable version
4398+ Permanent link
4399+
4400+ This page was last modified on 18 December 2011, at 21:11.
4401+ This page has been accessed 722 times.
4402+ Content is available under GNU Free Documentation License 1.2.
4403+
4404+ Privacy policy
4405+ About Data Crystal
4406+ Disclaimers
4407+
4408+ GNU Free Documentation License 1.2
4409+ Powered by MediaWiki
4410+
4411+
4412+/* vim:ts=8:sw=8:
4413+ */
4414+
4415+
4416+
--- /dev/null
+++ b/winx68k.txt
@@ -0,0 +1,186 @@
1+WinX68k高速版 ノウハウ
2+ (参考 http://www.geocities.jp/carefreestyle/emu/x68k/win68khs01.html)
3+
4+1. 起動からSCSI HDD導入まで
5+(1)IPL ROM準備
6+ SCSI仮想ドライブを作成する場合は、X68030用のIPLROM30.DAT を使うこと
7+
8+(2)Font ファイル
9+ ない場合Windowsのフォントから勝手に作成される
10+ →cgrom.tmp
11+
12+(3)システムディスク
13+ CompactXVIのHUMAN302.XDFあたりを利用
14+
15+(4)ブランクディク
16+ 適当な*.XDFをファイルコピーしてFDD1に接続してformat b:
17+
18+(5)SCSI HDD作成
19+ (a)Opting→Config→SCSIの「"Select SCSI" Setting in SRAM 」を Internal SCSI に設定
20+ (b)Option→Config→SCSIの「SCSI Drive」の設定項目を「Internal」 ID:「0」 UNIT:「0」
21+ (c)Option→Config→SCSIにて、「新規作成」でHDDイメージを作成.
22+ (例)540Mbytes/512bytes/Block/HD
23+ ファイル名に作成したイメージ名が表示されるので「適用」をクリック
24+ (d)Option→InternalDeviceを「SCSI」にする
25+ (e)Option→ExternalSCSIのチェックをOFFにする
26+ (f)System→Resetをし、Human68Kが再起動したら、switchを起動します.
27+ SCSI-IDの項目が7になっていれば成功!
28+ (g)DOS>format
29+ SCSI装置を選択して、
30+ (a)装置初期化
31+ (b)領域作成で、容量、ボリューム名、システム転送ありで領域作成
32+ (h)copyall a:\*.* c:\*.*
33+ (i)switchでBOOTを選択し、ブート順序をSCSI0(HDD)優先にする。
34+ (j)System→Resetでリブート
35+
36+2. メモリを増やす
37+ switchを起動し、MEMORYの項目を増やしてSystem→Resetでリブート
38+ A> memfree
39+ で増えていることを確認
40+
41+3. Windowsディスクをマウントする
42+(1)http://www.ksky.ne.jp/~yamama/emul/
43+ からEX68V215.lzhをダウンロードし、X_WINDRV.LZH を取り出す
44+(2)その中にあるFD1.XDFをFDD0にマウントする。
45+(3)ドライバ組み込み
46+ A> copy b:\WINDRV.SYS a:\SYS
47+ A> ed a:\config.sys
48+ 以下を追加
49+ -------
50+ DEVICE = \SYS\IOCS.X
51+ DEVICE = \SYS\HISTORY.X /D\HIS\ /SH2,8,4
52+ DEVICE = \SYS\WINDRV.SYS <=★これ
53+ ENVSET = 512 \STARTUP.ENV
54+ -------
55+ Esc→Xで保存
56+(4)FDD0をイジェクトしてSystem→Resetでリブート
57+
58+4. その他導入物 (これらを入れて累計8MB)
59+(1)HIOCS (画面表示高速化)
60+ DEVICE = \SYS\IOCS.X
61+ ↓
62+ DEVICE = \SYS\HIOCS.X
63+(2)twentyone.x (ファイル21文字化、ドット複数利用可能化)
64+ autoexec.bat
65+ ----
66+ a:\usr\local\bin\twentyone.x +P
67+ ----
68+ CONFIG.SYSで指定してもOK
69+
70+(3)lndrv.x / ln.x (シンボリックリンク、//の統合などvimの前提)
71+ autoexec.bat
72+ ----
73+ a:\usr\local\bin\lndrv.x
74+ ----
75+ twentyone 必須
76+ CONFIG.SYSで指定してもOK
77+
78+
79+5. Cコンパイラ (約3MB/累計11MB)
80+5.1 純正のXCインストール
81+(1)無償公開された、各FDイメージのボリューム名を以下に訂正する
82+ 「XC_SYS1」→「XCシステム#1」
83+ 「XC_SYS2」→「XCシステム#2」
84+ 「XC_LIB」→「XCライブラリ」
85+ (a)FDを挿入
86+ (b)以下のコマンドでボリューム名変更。
87+ 半角カナはマウスの真ん中ボタンを押して、仮想キーボードを出し、
88+ 「かな」キーを押した後カナを入力する。
89+ A>vol a:XCシステム#1/S
90+ A>vol b:XCシステム#2/S
91+ --FDD1をXC_LIBディスクに差し替え--
92+ A>vol b:XCライブラリ/S
93+
94+(2)switchでBOOTデバイスをSTDにし、CコンパイラFD1をセット
95+ CコンパイラのFD1でブートする
96+
97+(3)インストーラが起動するので
98+ ハードディスク(C:)にインストールする。(FDで起動しているのでCドライブとなる)
99+
100+(4)必要な環境変数が設定されている C.bat の内容を
101+ HDDドライブのautoexec.batに追加する。
102+ C.bat
103+ ------
104+ echo off
105+ path a:\;a:\bin;a:\xc;a:\xc\cc;a:\xc\bin;a:\xc\bc;a:\xc\basic2
106+ set include=a:\xc\include
107+ set lib=a:\xc\lib
108+ set cc=a:\xc\cc
109+ set bc=a:\xc\bc
110+ temp=A:
111+ A:
112+ cd a:\xc
113+ ------
114+
115+6. gcc
116+6.1 libc32bのインストール (XCを入れる必要がなかったかも)
117+ A> cp -rp libc32b a:/
118+
119+6.2 include, libのパスを変更
120+ ---
121+ set include=A:\XC\INCLUDE
122+ set lib=A:\XC\LIB
123+ ---
124+ ↓
125+ ---
126+ set include=A:\libc32b\include
127+ set lib=A:\libc32b\lib
128+ ---
129+
130+6.3 gcc.xをa:/usr/local/binにコピー (ここで累計14MB)
131+
132+6.4 アセンブラ、リンカを高速のものにする
133+ has.x, hlk.xを導入し、
134+ 環境変数を設定する
135+ autoexec.bat
136+ -------
137+ set GCC_AS=has.x
138+ set GCC_LINK=hlk.x
139+ REM set GCC_LIB=.a <= GCCがみるライブラリの拡張子を指定する場合 (.a/.l)
140+ set GCC_NO_XCLIB=1 <= XCのライブラリを使わない場合に指定
141+ -------
142+
143+ または、as.x, lk.xにリネームし、PATHのはじめの
144+ 方に置いておく。
145+
146+ cd a:\usr\local\bin
147+ cp -p has.x as.x
148+ cp -p hlk.x lk.x
149+
150+7. SX-Window
151+
152+
153+10. X-BASIC
154+ 開始
155+ A> basic
156+ 終了
157+ bas> exit(0)
158+ 保存
159+ save "a:\basic2\xxx.bas"
160+ ロード
161+ load "a:\basic2\xxx.bas"
162+ ロード&実行
163+ run "a:\basic2\xxx.bas"
164+
165+
166+11. エミュレーションClock変更
167+ Option→「xxMHz」
168+ NoWaitにするには
169+ Option→「No-Wait Mode」
170+ ベースクロックによりNoWait時のクロックも変わるので注意
171+
172+12. フリーソースコンパイルノウハウ
173+12.1 ctags
174+ (1)gzip -dc ctags......tar.gz
175+ (2)linuxで./configure
176+ (3)作成されたMakefile, config.hをいただく。
177+ (4)make
178+ (5)コンパイルエラー対策
179+ (a)「NULLが未宣言」というエラーが出たら、そのソースに
180+ #include <stdio.h>
181+ を追加する。
182+ (b)regex.hがないといわれる
183+ →config.h の #define HAVE_REGCOMP 1 はコメントアウトする。
184+
185+
186+
--- /dev/null
+++ b/xbasic.txt
@@ -0,0 +1,4742 @@
1+
2+X-BASIC リファレンス
3+(C)http://ww3.enjoy.ne.jp/~zoomark/ip/xb/xb_frm.html
4+
5+
6+※BASICの各命令・関数は、以下の書式で記述されています。
7+
8+
9+命令文や関数名 種類
10+
11+ 書式:
12+ 命令や関数の書き方です。
13+
14+ 赤太字で強調された項目は、必要とされる引数やデータです。
15+
16+ 【】で囲まれた項目は、省略可能です。
17+
18+ …は、同様に繰り返し、引数やデータを与える事を現します。
19+
20+ これ以外の文字(予約語、()、{}、[]などの記号類)はそのまま入力しなければなりません。
21+
22+ コマンドやステートメントなどは、原則として命令名とデータの間には空白を入れてください。また、関数名と引数をくくる左括弧の間には空白を入れないでください。
23+
24+ 省略形:
25+ 省略出来る命令や関数の書き方です。なお、引数、括弧などは省略できません。
26+
27+ 引 数:
28+ 関数が原則としてどういう型の引数を必要としているかを現しています。
29+
30+ 数値型としてint、char、float、文字型としてstrの4つのデータがありますが、複数の種類の引数を取る関数については、それぞれのデータ型に応じて括弧でくくってまとめてあります。
31+
32+ 数値型であれば何でもよい場合は数値型と表記しています。
33+
34+ また、引数が特に変数名や配列名(配列の場合は次元も明記しています)でなければならない場合(定数、式などが引数とならない)は、そのように明記しています。
35+
36+ 戻り値:
37+ すべての関数について、その戻り値の型が書いてあります。
38+
39+ int、char、float、str、および意味を持たない戻り値(戻り値が存在しない場合も含む)としてvoid、の5つの型があります。
40+
41+ 機 能:
42+ 各命令や関数の機能および、引数の意味などを説明しています。
43+
44+   → 
45+ 関連した命令や、文法など参考になるものを挙げてあります。
46+
47+ 用 例:
48+ 簡単なサンプルプログラムや用例です。
49+
50+
51+{ABS 標準関数
52+
53+ 書 式:abs(n)
54+
55+ 引 数:float
56+
57+ 戻り値:float
58+
59+ 機 能:数値nの絶対値を返します。
60+
61+ 用 例:
62+
63+
64+{APAGE GRAPH.FNC
65+
66+ 書 式:apage(pa)
67+
68+ 引 数:char
69+
70+ 戻り値:void
71+
72+ 機 能:
73+
74+ グラフィック画面のアクティブページpa(グラフィック画面で実際に読み書きするページ)を指定します。
75+
76+ ページ番号は0〜3で、最大値はグラフィック画面の実画面サイズ及び色モードによります。
77+
78+ グラフィック画面の実画面サイズ及び色モードによるアクティブページpaの値の範囲
79+
80+   1024×1024(16色モード) …0
81+   512×512(16色モード) …0〜3
82+   512×512(256色モード) …0、1
83+   512×512(65536色モード) …0
84+
85+   → home、screen、vpage、window
86+
87+ 用 例:
88+
89+
90+{ASC 標準関数
91+
92+ 書 式:asc(st)
93+
94+ 引 数:str
95+
96+ 戻り値:int
97+
98+ 機 能:
99+
100+ 文字列stの先頭文字のキャラクタコードを返します。
101+
102+ stが null文字の場合は0を返します。文字とキャラクタコードの対応については、「キャラクタコード表」を参照して下さい。
103+
104+   → chr$、「キャラクタコード表」
105+
106+ 用 例:
107+
108+
109+{ATAN 標準関数
110+
111+ 書 式:atan(n)
112+
113+ 引 数:float
114+
115+ 戻り値:float
116+
117+ 機 能:
118+
119+ 数値nの逆正接(アークタンジェント)を返します。
120+ -π/2 から π/2 までの値を返します。
121+
122+ 用 例:
123+
124+
125+{ATOF 標準関数
126+
127+ 書 式:atof(st)
128+
129+ 引 数:str
130+
131+ 戻り値:float
132+
133+ 機 能:
134+
135+ 文字列stを float型の数値に変換します。stは、float型の数値に変換できる文字(+、-、0〜9、.、e、E)の連続です。もし float型の数値として判定できない文字があると、そこで変換するのをやめます。
136+
137+ stの先頭の空白文字やタブ文字は無視されます。また、小数点の前後には少なくとも1つ以上の数字が必要です。さらに、指数表現では、 e あるいは E の後ろに少なくとも1つ以上の数字が必要です。
138+
139+ stが null文字の場合は、エラーとなります。
140+
141+ 変換できる文字列stの書式は次の通りです。
142+ 【whitespace】【sign】【.digits】【eまたはE【sign】digits】
143+
144+ whitespace 空白文字またはタブ文字で無視されます。
145+ sign "+"または"-"
146+ digits 1つ以上の10進数で、小数点の前に何もなければ、小数点の後ろに少なくとも1つの数字が必要です。
147+ 指数 指数は"e"または"E"と符号をともなった10進数で構成されます。
148+
149+ 例)
150+  st="-2.51235e-2"
151+
152+   → ecvt、fcvt、gcvt
153+
154+ 用 例:
155+
156+
157+{ATOI 標準関数
158+
159+ 書 式:atoi(st)
160+
161+ 引 数:str
162+
163+ 戻り値:int
164+
165+ 機 能:
166+
167+ 文字列stを int型の数値に変換します。stは、int型の数値に変換できる文字(0〜9、+、-)の連続です。もし int型の数値として判定できない文字があると、そこで変換するのをやめます。
168+
169+ stの先頭の空白文字やタブ文字は無視されます。またstには少なくとも1つ以上の数字が必要です。
170+
171+ stが null文字の場合は、エラーとなります。
172+
173+ 変換できる文字列stの書式は次の通りです。
174+ 【whitespace】【sign】digits
175+
176+ whitespace 空白文字またはタブ文字で無視されます。
177+ sign "+"または"-"
178+ digits 1つ以上の10進数
179+
180+   → itoa
181+
182+ 用 例:
183+
184+
185+{AUTO コマンド
186+
187+ 書 式:auto【行番号】【増分】
188+
189+ 省略形:a.
190+
191+ 機 能:
192+
193+ プログラム行の先頭に行番号を自動的に発生させます。
194+ 行番号も増分も省略できますが、この場合は自動的に10が採用されます。
195+ たとえば、
196+
197+ auto 行番号は10を先頭に20、30…と付けられます(auto 10,10と同じ)
198+ auto 100 行番号は100を先頭に110、120…と付けられます
199+ auto ,5 行番号は10を先頭に15、20…と付けられます
200+
201+ プログラム中にすでに存在する行と同じ行番号が発生した場合には、その行の内容がすべて表示されます。このとき、何も入力しないでリターンキーを押せば、その行の内容は変わりません。
202+
203+ auto機能を解除するときは、BREAKキー(または CTRL + Cキー)を押します。
204+ 解除した時のプログラム行はメモリに保存されません。
205+
206+
207+{A_PLAY AUDIO.FNC
208+
209+ 書 式:a_play(na,sf,md【,lng】)
210+
211+ 引 数:
212+ 数値型一次元配列名(na),char(sf,md,lng)
213+
214+ 戻り値:void
215+
216+ 機 能:
217+
218+ 指定された配列naの PCMデータを再生します。
219+
220+   na…PCMデータを格納している数値型一次元配列名
221+
222+   sf…サンプリング周波数
223+      0…3.9KHz
224+      1…5.2KHz
225+      2…7.8KHz
226+      3…10.4KHz
227+      4…15.6KHz
228+
229+ 音楽を再生する場合、原則として a_rec関数で録音したときのサンプリング周波数sfを使用して下さい。それ以外を使用すると、録音した音を正常に再生できません。
230+
231+   md…音声出力モード(本体後面のオーディオ出力端子からの音声信号出力モード)
232+      0…出力カット
233+      1…左出力
234+      2…右出力
235+      3…ステレオ出力
236+
237+   lng…再生する配列naの添字0からの長さ
238+
239+ lngの取りうる値は、1から、配列名naで宣言された配列の添字+1までです。
240+ lngを省略すると、すべてのPCMデータを再生します。
241+
242+ 用 例:
243+
244+
245+{A_REC AUDIO.FNC
246+
247+ 書 式:a_rec(na,sf,lng)
248+
249+ 引 数:
250+ 数値型一次元配列名(na),char(sf,lng)
251+
252+ 戻り値:void
253+
254+ 機 能:
255+
256+ 指定された配列naに PCMデータを録音します。
257+
258+   na…PCMデータを格納する数値型一次元配列名
259+
260+   sf…サンプリング周波数
261+      0…3.9KHz(1秒間に消費するメモリサイズ1950バイト)
262+      1…5.2KHz(1秒間に消費するメモリサイズ2600バイト)
263+      2…7.8KHz(1秒間に消費するメモリサイズ3900バイト)
264+      3…10.4KHz(1秒間に消費するメモリサイズ5200バイト)
265+      4…15.6KHz(1秒間に消費するメモリサイズ7800バイト)
266+
267+   lng…録音する配列naの添字0からの長さ
268+
269+ lngの取りうる値は、1から、配列名naで宣言された配列の添字+1までです。
270+ lngを省略すると、すべてのPCMデータを録音します。
271+
272+ 用 例:
273+
274+
275+{BEEP ステートメント
276+
277+ 書 式:beep
278+
279+ 機 能:
280+
281+ ビープ音を鳴らします。 print chr$(7) と同じ機能です。
282+
283+ 用 例:
284+
285+
286+{BG_FILL SPRITE.FNC
287+
288+ 書 式:bg_fill(pg,pd)
289+
290+ 引 数:char(pg),int(pd)
291+
292+ 戻り値:int
293+
294+ 機 能:
295+
296+ 指定されたテキストページpgを、指定されたパターンデータpdで埋め尽くします。
297+
298+  pg…テキストページ(0、1)
299+  pd…パターンデータ(0〜&HCFFF)
300+
301+ パターンデータpdは、次のようなビット構成になっています。
302+ (ビット12、13は通常0になります)
303+
304+  ビット15…垂直反転(0:通常、1:垂直反転)
305+  ビット14…水平反転(0:通常、1:水平反転)
306+  ビット8〜11…パレットブロックpb(1〜15)
307+  ビット0〜7…パターンコードcd(0〜255)
308+
309+ 垂直反転を指定すると、実際に定義されたパターンが上下反転して表示されます。
310+ また水平反転を指定すると、実際に定義されたパターンが左右反転して表示されます。
311+
312+ パレットブロックpdは各パターンに対して割り当てられているパレットで、1から15の値を返します。詳細については sp_color関数を参照して下さい。
313+
314+ テキストページ1しか使用しない場合のパターンコードcdは16×16ドットパターンの場合0から191までの値を返します。
315+
316+ テキストページ0、1とも使用する場合のパターンコードcdは16×16ドットパターンの場合0から127までの値を返します。
317+
318+ テキストページ0、1とも使用しない(バックグラウンドを使用しない)場合のパターンコードcdは16×16ドットパターンの場合0から255までの値を返します。
319+
320+
321+{BG_GET SPRITE.FNC
322+
323+ 書 式:bg_get(pg,x,y)
324+
325+ 引 数:char
326+
327+ 戻り値:int
328+
329+ 機 能:
330+
331+ 指定されたテキストページpgの指定された座標から、パターンデータを読み出します。
332+
333+  pg…テキストページ(0、1)
334+   x…X座標(0〜63)
335+   y…Y座標(0〜63)
336+
337+ 読み出されたパターンデータpdは、次のようなビット構成になっています。
338+ (ビット12、13は通常0になります)
339+
340+  ビット15…垂直反転(0:通常、1:垂直反転)
341+  ビット14…水平反転(0:通常、1:水平反転)
342+  ビット8〜11…パレットブロックpb(1〜15)
343+  ビット0〜7…パターンコードcd(0〜255)
344+
345+ 垂直反転になっている場合は、実際に定義されたパターンに対して上下が反転して表示されていることを意味します。
346+ 水平反転なっている場合は、実際に定義されたパターンに対して左右が反転して表示されていることを意味します。
347+
348+ パレットブロックpdは各パターンに対して指定するパレットで、詳細については sp_color関数を参照して下さい。
349+
350+ テキストページ1しか使用しない場合のパターンコードcdは16×16ドットパターンの場合0から191までの値をとる事が出来ます。
351+
352+ テキストページ0、1とも使用する場合のパターンコードcdは16×16ドットパターンの場合0から127までの値をとる事が出来ます。
353+
354+ テキストページ0、1とも使用しない(バックグラウンドを使用しない)場合のパターンコードcdは16×16ドットパターンの場合0から255までの値をとる事が出来ます。
355+
356+   → bg_put
357+
358+
359+{BG_PUT SPRITE.FNC
360+
361+ 書 式:bg_put(pg,x,y,pd)
362+
363+ 引 数:char(pg,x,y),int(pd)
364+
365+ 戻り値:int
366+
367+ 機 能:
368+
369+ 指定されたテキストページpgの指定された座標に、指定されたパターンデータpdを設定します。
370+
371+  pg…テキストページ(0、1)
372+   x…X座標(0〜63)
373+   y…Y座標(0〜63)
374+  pd…パターンデータ(0〜&HCFFF)
375+
376+ パターンデータpdは、次のようなビット構成になっています。
377+ (ビット12、13は通常0になります)
378+
379+  ビット15…垂直反転(0:通常、1:垂直反転)
380+  ビット14…水平反転(0:通常、1:水平反転)
381+  ビット8〜11…パレットブロックpb(1〜15)
382+  ビット0〜7…パターンコードcd(0〜255)
383+
384+ 垂直反転を指定すると、実際に定義されたパターンが上下反転して表示されます。
385+ また水平反転を指定すると、実際に定義されたパターンが左右反転して表示されます。
386+
387+ パレットブロックpdは各パターンに対して割り当てられているパレットで、1から15の値を返します。詳細については sp_color関数を参照して下さい。
388+
389+ テキストページ1しか使用しない場合のパターンコードcdは16×16ドットパターンの場合0から191までの値を返します。
390+
391+ テキストページ0、1とも使用する場合のパターンコードcdは16×16ドットパターンの場合0から127までの値を返します。
392+
393+ テキストページ0、1とも使用しない(バックグラウンドを使用しない)場合のパターンコードcdは16×16ドットパターンの場合0から255までの値を返します。
394+
395+   → bg_get
396+
397+
398+{BG_SCROLL SPRITE.FNC
399+
400+ 書 式:bg_scroll(b【,x】【,y】)
401+
402+ 引 数:char(b),int(x,y)
403+
404+ 戻り値:int
405+
406+ 機 能:
407+
408+ バックグラウンドbのスクロール座標を設定します。
409+
410+   b…バックグラウンド(0、1)
411+   x…スクロールX座標(0〜511または1023)
412+   y…スクロールY座標(0〜511または1023)
413+
414+
415+ なお、表示画面サイズが256×256の場合は、X、Y座標は0から511までの値をとる事が出来ます。
416+ 表示画面サイズが512×512の場合は、X、Y座標は0から1023までの値をとる事が出来ます。
417+
418+ ただし、表示画面サイズが512×512の場合はバックグラウンド1は表示されませんので注意してください。
419+
420+   → bg_stat
421+
422+
423+{BG_SET SPRITE.FNC
424+
425+ 書 式:bg_set(b【,pg】【,md】)
426+
427+ 引 数:char
428+
429+ 戻り値:int
430+
431+ 機 能:
432+
433+ バックグラウンドbへのテキストページpgの割りあてと表示の設定を行います。
434+
435+   b …バックグラウンド(0、1)
436+   pg…テキストページ(0、1)
437+   md…バックグラウンドの表示
438+     (0=表示しない、1=表示する)
439+
440+ なお、表示画面サイズが512×512の場合はバックグラウンド1は表示されませんので注意してください。
441+ 表示画面サイズが256×256の場合は、バックグラウンド0、1とも表示できます。
442+
443+   → bg_stat
444+
445+
446+{BG_STAT SPRITE.FNC
447+
448+ 書 式:bg_stat(b,md)
449+
450+ 引 数:char
451+
452+ 戻り値:int
453+
454+ 機 能:
455+
456+ 指定されたバックグラウンドbの状態を読み出します。
457+
458+   b …バックグラウンド(0、1)
459+   md…モード(0〜3)
460+
461+ モードmdには読み出す内容を指定します。
462+
463+   0=X座標(0〜511または1023)
464+   1=Y座標(0〜511または1023)
465+   2=テキストページ(0、1)
466+   3=バックグラウンドの表示
467+    (0=表示されていない、1=表示されている)
468+
469+
470+ なお、表示画面サイズが256×256の場合は、X、Y座標には0から511までの範囲の値を返します。
471+ 表示画面サイズが512×512の場合は、X、Y座標は0から1023までの範囲の値を返します。
472+
473+ ただし、表示画面サイズが512×512の場合はバックグラウンド1は表示されませんので注意してください。
474+
475+   → bg_scroll、bg_set
476+
477+
478+{BIN$ 標準関数
479+
480+ 書 式:bin$(i)
481+
482+ 引 数:int
483+
484+ 戻り値:str
485+
486+ 機 能:
487+
488+ 整数値iを2進数の文字列に変換し返します。
489+ なお、上位の"0"は取り除かれます。
490+
491+   → hex$、oct$
492+
493+ 用 例:
494+
495+
496+{BOX GRAPH.FNC
497+
498+ 書 式:box(x1,y1,x2,y2,p【,ls】)
499+
500+ 引 数:int
501+
502+ 戻り値:void
503+
504+ 機 能:
505+
506+ グラフィック画面上にボックス(四角形)を描きます。
507+
508+   x1…始点X座標
509+   y1…始点Y座標
510+   x2…終点X座標
511+   y2…終点Y座標
512+   p …パレットコード(色)
513+   ls…ラインスタイル
514+
515+ x1、y1、x2、y2は、-32768から32767までの値をとることができます。クリッピングエリアについてはwindow関数で指定された範囲になります。
516+
517+ また、パレットコードpは0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
518+
519+ ラインスタイルlsは0〜65535の値をとり、これを16ビットのビットパターンとみなし、実線(&HFFFF)や点線(&HAAAA)などを指定する事ができます。
520+
521+ 用 例:
522+
523+
524+{BREAK ステートメント
525+
526+ 書 式:break
527+
528+ 機 能:
529+
530+ 最も内側のfor、repeat、switch、while文から抜け出します。
531+
532+   → continue
533+
534+ 用 例:
535+
536+
537+{CHAR ステートメント
538+
539+ 書 式:char 変数名【=定数式】【,…】
540+
541+ 機 能:
542+
543+ 変数を整数(char)型として宣言します。同時に値を代入する事もできます。
544+
545+ 原則として、変数宣言はメインプログラムの先頭で行ってください。
546+ また、同じ名前の変数をメインプログラムの中で再宣言することはできません。
547+
548+   → float、int、str
549+
550+ 用 例:
551+
552+
553+{CHDIR コマンド
554+
555+ 書 式:chdir "ディレクトリ名"
556+
557+ 機 能:
558+
559+ ディレクトリを変更します。ディレクトリ名の詳細については、「Human68kユーザーズマニュアル」を参照してください。
560+
561+ 用 例:chdir "a:\sys"
562+
563+
564+{CHDRV コマンド
565+
566+ 書 式:chdrv "ドライブ名"
567+
568+ 機 能:
569+
570+ カレントドライブを変更します。ドライブ名の詳細については、「Human68kユーザーズマニュアル」を参照してください。
571+
572+ 用 例:chdrv "a:"
573+
574+
575+{CHILD コマンド
576+
577+ 書 式:!Human68kのコマンド
578+
579+ 機 能:
580+
581+ チャイルドプロセスを実行します。
582+
583+ たとえば、"command.x"をチャイルドプロセスで実行するためには、パスの通ったディレクトリに"command.x"というファイルがあり、さらに"command.x"をロードするだけのエリアが、フリーエリアとは別にメモリ上になければなりません。
584+
585+ なお、ここで使用できるHuman68kのコマンドについての詳細は、「Human68kユーザーズマニュアル」を参照してください。
586+
587+ 用 例:!dir *.*
588+
589+
590+{CHR$ 標準関数
591+
592+ 書 式:chr$(ch)
593+
594+ 引 数:char
595+
596+ 戻り値:str
597+
598+ 機 能:
599+
600+ キャラクタコードchの文字を返します。ch=0のときは null文字を返します。
601+
602+ chは0〜255の範囲でなければなりません。
603+ また、その文字がコントロールキャラクタとして定義されていると、基本的には文字は表示されず、そのコントロールコードの持つ機能が実行されます。ただし中には実行されないものもあります。
604+
605+ 文字とキャラクタコードの対応については、「キャラクタコード表」を参照して下さい。
606+
607+   → asc、「キャラクタコード表」
608+
609+ 用 例:
610+
611+
612+{CIRCLE GRAPH.FNC
613+
614+ 書 式:circle(x,y,r,p【,s】【,e】【,hv】)
615+
616+ 引 数:int
617+
618+ 戻り値:void
619+
620+ 機 能:
621+
622+ グラフィック画面に上に円や楕円や扇形、円弧を描きます。
623+
624+   x …円の中心のX座標
625+   y …円の中心のY座標
626+   r …円の半径
627+   p …パレットコード(色)
628+   s …開始角度(度)
629+   e …終了角度(度)
630+   hv…偏平率
631+
632+ x、yは、-32768から32767までの値をとり、半径rは、0から32767までの値をとることができます。クリッピングエリアについてはwindow関数で指定された範囲になります。
633+
634+ また、パレットコードpは0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
635+
636+ 開始角度s、終了角度eは通常0°から360°の値をとります。-1°から-360°の値を使用すると扇型を描く事ができます。
637+
638+ 偏平率hvは0〜65535までの値をとる事が出来ます。
639+   hv<256なら横長楕円
640+   hv=256なら縦横非の真円(ただし768×512以外の表示画面サイズでは真円となりません)
641+   hv>256なら縦長楕円
642+
643+ 用 例:
644+
645+
646+{CLEAR コマンド
647+
648+ 書 式:clear
649+
650+ 省略形:cl.
651+
652+ 機 能:
653+
654+ 変数とスタックを初期化します。プログラム中では使えません。
655+
656+   → free
657+
658+
659+{CLS ステートメント
660+
661+ 書 式:cls
662+
663+ 機 能:テキスト画面のみを消去します。
664+
665+ 用 例:
666+
667+
668+{COLOR ステートメント
669+
670+ 書 式:color 属性
671+
672+ 省略形:col.
673+
674+ 機 能:
675+
676+ テキスト画面の文字の属性を設定します。
677+
678+ 文字の属性には、4つのパレットと、強調、リバースがあり、0〜15の値を使用することで設定できます。
679+ デフォルトとしては次のような属性がそれぞれ0から15に対応します。
680+
681+ 0 ノーマル 黒  8 リバース 黒
682+ 1 ノーマル シアン  9 リバース シアン
683+ 2 ノーマル 黄色  10 リバース 黄色
684+ 3 ノーマル 白  11 リバース 白
685+ 4 ノーマル強調 黒  12 リバース強調 黒
686+ 5 ノーマル強調 シアン  13 リバース強調 シアン
687+ 6 ノーマル強調 黄色  14 リバース強調 黄色
688+ 7 ノーマル強調 白  15 リバース強調 白
689+
690+ 文字の属性の0と4と8と12は、パレット(p0)に対応します。また、文字の属性の1と5と9と13は、パレット(p1)に対応し、2と6と10と14は、パレット(p2)に対応し、3と7と11と15は、パレット(p3)に対応します。
691+
692+ 各パレットを変更するには、color[]命令を使用して下さい。
693+
694+ 用 例:
695+
696+
697+{COLOR [] ステートメント
698+
699+ 書 式:color [c0,c1,c2,c3]
700+
701+ 省略形:col.
702+
703+ 機 能:
704+
705+ テキスト画面の各パレットにカラーコードを割りあてます。
706+
707+   c0…属性0、4、8、12のパレット(p0)に割りあてるカラーコード
708+   c1…属性1、5、9、13のパレット(p1)に割りあてるカラーコード
709+   c2…属性2、6、10、14のパレット(p2)に割りあてるカラーコード
710+   c3…属性3、7、11、15のパレット(p3)に割りあてるカラーコード
711+
712+ カラーコードは0〜65535の値を使用できます。属性については color命令を参照してください。
713+
714+ 用 例:
715+
716+
717+{CONSOLE ステートメント
718+
719+ 書 式:
720+ console 【スクロール開始行】,【スクロール行数】,ファンクションキー表示
721+
722+ 省略形:cons.
723+
724+ 機 能:
725+
726+ スクロール開始行で指定した行からスクロール行数分をテキスト画面のスクロールエリアとします。
727+
728+ 表示画面サイズが256×256以外のテキスト画面の最下行は、ファンクションキーの表示エリアになります。スクロール開始行のとりうる範囲は0から31まで、スクロール行数のとりうる範囲は1から32までです。
729+
730+ スクロール開始行とスクロール行数とファンクションキー表示の値をすべて加えた値は最大32までとなります。ただし、スクロール開始行で31を指定したり、あるいはスクロール行数で32を指定した場合は、ファンクションキー表示は0に設定して下さい。
731+
732+ 表示画面サイズが256×256のテキスト画面の場合は、常時ファンクションキー表示は0に設定し、スクロール開始行は0から15まで、スクロール行数は1から16までの範囲の値をとる事ができます。
733+
734+ スクロール開始行とスクロール行数とファンクションキー表示の値をすべて加えた値は最大16までとなります。
735+
736+ なお、ファンクションキー表示は0ならファンクションキー表示OFF、1ならファンクションキー表示ONを意味します。
737+
738+ console命令を実行すると、実行後、カーソルは表示画面の左上に移動し、またwidth命令を実行すると、condole 0,31,1に再設定されます。
739+
740+ なお、console ,,0はファンクションキーのみ表示OFFとし、console ,,1はファンクションキーのみ表示ONにします。この場合、スクロールエリアは変化しません。
741+
742+ 用 例:
743+
744+
745+{CONT コマンド
746+
747+ 書 式:cont
748+
749+ 省略形:c.
750+
751+ 機 能:
752+
753+ BREAKキー(または CTRL + Cキー)入力、または stop命令によって停止したプログラムの実行を再開します。
754+
755+ 実行停止中に list命令や print命令などを実行することはできますが、プログラムそのものの変更を行ったときは、cont命令による実行の再開はできません。
756+
757+   → stop
758+
759+
760+{CONTINUE ステートメント
761+
762+ 書 式:continue
763+
764+ 機 能:
765+
766+ for、repeat、while文の次のループを強制的に開始します。
767+
768+   → break
769+
770+ 用 例:
771+
772+
773+{CONTRAST GRAPH.FNC
774+
775+ 書 式:contrast(ch)
776+
777+ 引 数:char
778+
779+ 戻り値:void
780+
781+ 機 能:
782+
783+ 画面全体のコントラストを指定します
784+  ch… 0(文字やグラフィック、スプライトの表示が見えない)
785+ :
786+ 15(文字やグラフィック、スプライトの表示がよく見える)
787+
788+ 用 例:
789+
790+
791+{COS 標準関数
792+
793+ 書 式:cos(n)
794+
795+ 引 数:float
796+
797+ 戻り値:float
798+
799+ 機 能:
800+
801+ 数値n(ラジアン)の余弦(コサイン)を返します。
802+
803+ 用 例:
804+
805+
806+{CRT 標準関数
807+
808+ 書 式:crt(cd)
809+
810+ 引 数:char
811+
812+ 戻り値:void
813+
814+ 機 能:
815+
816+ テレビ・ビデオ画面とコンピュータ画面を切り替えます。
817+
818+   cd…切り替えコード(0〜3)
819+    0 = テレビ・ビデオ画面の映像を表示
820+    1 = コンピュータ画面を表示
821+    2 = テレビ・ビデオ画面の映像のコントラストを下げてスーパーインポーズ表示
822+    3 = テレビ・ビデオ画面の映像のコントラストを通常にしてスーパーインポーズ表示
823+
824+ 実行前に screen命令であらかじめ表示画面サイズを256×256または512×512に、ディスプレイ解像度をlow(標準解像度)に設定します。
825+
826+ カラーイメージユニットのテロッパ機能を使って、コンピュータ画像やスーパーインポーズ画像をビデオに録画する場合、crt(3)にあらかじめ設定してください。
827+
828+ なお、この関数を実行するには専用ディスプレイテレビが必要が必要です。
829+
830+
831+{CSRLIN システム変数
832+
833+ 書 式:csrlin
834+
835+ 戻り値:int
836+
837+ 機 能:
838+
839+ テキスト画面の現在のカーソルのY座標を返します。代入することはできません。
840+
841+ 用 例:
842+
843+
844+{DATE$ システム変数
845+
846+ 書 式:date$
847+
848+ 引 数:str
849+
850+ 戻り値:str
851+
852+ 機 能:
853+
854+ 現在の日付を文字列として返します。代入することによって日付を設定できます。
855+
856+ 用 例:
857+
858+
859+{DAY$ システム変数
860+
861+ 書 式:day$
862+
863+ 戻り値:str
864+
865+ 機 能:
866+
867+ 現在の曜日を文字列として返します。代入することはできません。
868+
869+ 用 例:
870+
871+
872+{DELETE コマンド
873+
874+ 書 式:delete 行番号の範囲
875+
876+ 省略形:del.
877+
878+ 機 能:
879+
880+ 指定されたプログラム行を削除します。
881+
882+ 行番号の指定方法によって、さまざまな形の削除が行えます。
883+
884+ delete 10 行番号10の行を削除します。
885+ delete -100 プログラムの先頭から行番号100までの行を削除します。
886+ delete 200- 行番号200からプログラムの最後までの行を削除します。
887+
888+   → list、new、renum
889+
890+
891+{DIM ステートメント
892+
893+ 書 式:
894+ dim 【型宣言】変数名(添え字の最大値【,添え字の最大値…】)【[文字バッファのサイズ]】【={代入定数式データリスト}】【,変数名…】
895+
896+ 機 能:
897+
898+ 配列変数を使うことを宣言します。
899+
900+ dim文中で代入するデータは、={}で囲めば複数行に分けて記述できます。ただし、複数行に分けて記述した場合は、そのプログラムを save@命令でセーブできても、load@命令でロードできませんので注意してください。
901+
902+ 同じデータ型の配列はカンマで区切れば後に続けて1行に入力可能な文字数の範囲内で宣言できます。なお、型宣言を省略すると、int型の配列として扱われます。
903+
904+ 設定できる添字の最小値は0、最大値はフリーエリアが許す範囲です。
905+
906+ 文字バッファのサイズは1〜255の範囲で設定でき、str型の配列の1要素のとりえる文字列の最大の長さを指定します。省略した場合は32文字となります。
907+
908+ 原則として、配列変数の宣言はメインプログラムの先頭で行って下さい。同じ名前の配列を再宣言する事はできません。
909+
910+ 用 例:
911+
912+
913+{DSKF 標準関数
914+
915+ 書 式:dskf(d)
916+
917+ 引 数:char
918+
919+ 戻り値:int
920+
921+ 機 能:
922+
923+ 指定されたドライブdの空きディスク容量を返します。
924+ エラーの場合は-1を返します。
925+
926+  d… 0 カレントドライブ
927+   1 ドライブA
928+   2 ドライブB
929+   ・ ・
930+   ・ ・
931+
932+ 用 例:
933+
934+
935+{ECVT 標準関数
936+
937+ 書 式:ecvt(f,i1,i2,i3)
938+
939+ 引 数:float(f),int(i1),int型変数名(i2,i3)
940+
941+ 戻り値:str
942+
943+ 機 能:
944+
945+ 浮動小数値fを文字列に変換し、その文字列を返します。
946+ 文字列として返されるのは数値のみです。
947+
948+  f … 文字列に変換したい浮動小数値
949+  i1… 文字列の桁数
950+  i2… 小数点の位置を返します。正の場合は、小数点は i2+1 の位置にあります。0または負の場合は、小数点は i2-1 の位置にあります。
951+  i3… 符号を表わす値を返します。正の場合は0、負の場合は1になります。
952+
953+   → atof、fcvt、gcvt
954+
955+ 用 例:
956+
957+
958+{END ステートメント
959+
960+ 書 式:end
961+
962+ 機 能:
963+
964+ プログラムを終了します。プログラム内にいくつ置いてもかまいません。
965+ ただし、最初に実行した end命令よりあとの命令文は実行されません。
966+
967+ 用 例:
968+
969+
970+{ERRNO システム変数
971+
972+ 書 式:errno
973+
974+ 戻り値:int
975+
976+ 機 能:
977+
978+ 外部関数でエラーが発生したときのエラー番号を返します。
979+ 代入することはできません。
980+
981+ error off のモードの場合に有効になります。
982+ 戻り値として、次のような値を返します。
983+
984+  0 …エラーが発生していない
985+  正の整数 …エラー番号
986+  負の整数 …システムエラー時のエラー番号
987+
988+
989+{ERROR ON/OFF ステートメント
990+
991+ 書 式:error on または error off
992+
993+ 機 能:
994+
995+ errror on にすると、外部関数でエラーが発生したときにエラーメッセージを表示して実行を停止するモードになります。
996+
997+ error off にすると外部関数でエラーが発生してもエラーメッセージを表示せず、次のステートメントに実行が進められます。
998+ run命令実行直後は error onモードになっています。
999+
1000+ なお、error off のモードが有効なときは、プログラムで eroor off を実行している間のみです。
1001+ プログラムが終了して、"Ok"が表示されると error on のモードになります。
1002+
1003+ 用 例:
1004+
1005+
1006+{EXIT() ステートメント
1007+
1008+ 書 式:exit()
1009+
1010+ 機 能:
1011+
1012+ 現在オープンされているファイルをクローズするなどの処理をした後、親プロセスに戻ります。
1013+
1014+ 用 例:
1015+
1016+
1017+{EXP 標準関数
1018+
1019+ 書 式:exp(n)
1020+
1021+ 引 数:float
1022+
1023+ 戻り値:float
1024+
1025+ 機 能:
1026+
1027+ 自然対数の底"e"のn乗を返します。
1028+
1029+ 用 例:
1030+
1031+
1032+{FCLOSE 標準関数
1033+
1034+ 書 式:fclose(fp)
1035+
1036+ 引 数:int
1037+
1038+ 戻り値:int
1039+
1040+ 機 能:
1041+
1042+ fopen関数によってオープンされたファイルをクローズします。
1043+
1044+ クローズした場合、戻り値として0を返します。
1045+ エラーの場合は-1を返します。
1046+
1047+   fp…ファイル番号
1048+
1049+ 用 例:
1050+
1051+
1052+{FCLOSEALL 標準関数
1053+
1054+ 書 式:fcloseall()
1055+
1056+ 戻り値:int
1057+
1058+ 機 能:
1059+
1060+ オープン中の全てのファイルをクローズします。
1061+
1062+ 戻り値として、クローズしたファイルの個数を返します。
1063+ エラーの場合は-1を返します。
1064+
1065+ 用 例:
1066+
1067+
1068+{FCVT 標準関数
1069+
1070+ 書 式:fcvt(f,i1,i2,i3)
1071+
1072+ 引 数:float(f),int(i1),int型変数名(i2,i3)
1073+
1074+ 戻り値:str
1075+
1076+ 機 能:
1077+
1078+ 浮動小数値fを文字列に変換し、その文字列を返します。
1079+ 文字列として返されるのは数値のみです。
1080+
1081+  f … 文字列に変換したい浮動小数値
1082+  i1… 文字列の小数点以下の桁数
1083+  i2… 小数点の位置を返します。正の場合は、小数点は i2+1 の位置にあります。0または負の場合は、小数点は i2-1 の位置にあります。
1084+  i3… 符号を表わす値を返します。正の場合は0、負の場合は1になります。
1085+
1086+   → atof、ecvt、gcvt
1087+
1088+ 用 例:
1089+
1090+
1091+{FDELETE 標準関数
1092+
1093+ 書 式:fdelete(fn)
1094+
1095+ 引 数:str
1096+
1097+ 戻り値:int
1098+
1099+ 機 能:
1100+
1101+ ファイルfnを削除します。
1102+
1103+ 削除できた場合、戻り値として0を返します。
1104+ エラーの場合は-1を返します。
1105+
1106+   fn…ファイル名
1107+
1108+ 用 例:
1109+
1110+
1111+{FEOF 標準関数
1112+
1113+ 書 式:feof(fp)
1114+
1115+ 引 数:int
1116+
1117+ 戻り値:int
1118+
1119+ 機 能:
1120+
1121+ 指定されたファイルの終了チェックを行います。
1122+
1123+ ファイルが終わりなら-1、終っていなければ0を返します。
1124+ エラーの場合も-1を返します。
1125+
1126+   fp…ファイル番号
1127+
1128+ 用 例:
1129+
1130+
1131+{FGETC 標準関数
1132+
1133+ 書 式:fgetc(fp)
1134+
1135+ 引 数:int
1136+
1137+ 戻り値:int
1138+
1139+ 機 能:
1140+
1141+ 指定されたファイルから1文字ずつ読み込みます。
1142+ 戻り値として、読み込んだ文字のキャラクターコードを返します。
1143+ ファイルの最後まで読み込んだ場合や、エラーの場合は-1を返します。
1144+
1145+   fp…ファイル番号
1146+
1147+ ファイル内のデータポインタの位置は、1バイトずつ移動していきます。
1148+ ファイル内をランダムアクセスしてデータポインタを移動する場合は、fseek関数を使用します。
1149+
1150+   → fputc
1151+
1152+ 用 例:
1153+
1154+
1155+{FILES コマンド
1156+
1157+ 書 式:【l】files 【"【ドライブ名】【ファイル名】"】
1158+
1159+ 省略形:【l】fi.
1160+
1161+ 機 能:
1162+
1163+ 指定されたドライブのファイルの一覧を表示します。
1164+
1165+ ドライブ名、ファイル名が省略された場合、カレントドライブのカレントディレクトリのすべてのファイル名を画面に表示します。
1166+
1167+ ドライブ名のみ指定された場合は指定されたドライブのカレントディレクトリのすべてのファイル名を画面に表示します。
1168+
1169+ ドライブ名とファイル名が指定された場合には、指定されたファイルの情報が表示されます。ワイルドカードも使用できます。
1170+
1171+ ドライブ名、ファイル名の詳細については、「Human68kユーザーズマニュアル」を参照してください。
1172+
1173+ lfiles命令では出力先がプリンタとなります。
1174+
1175+ 用 例:files "a:\*.*"
1176+
1177+
1178+{FILL GRAPH.FNC
1179+
1180+ 書 式:fill(x1,y1,x2,y2,p)
1181+
1182+ 引 数:int
1183+
1184+ 戻り値:void
1185+
1186+ 機 能:
1187+
1188+ グラフィック画面上に中を塗りつぶしたボックス(四角形)を描きます。
1189+
1190+   x1…始点X座標
1191+   y1…始点Y座標
1192+   x2…終点X座標
1193+   y2…終点Y座標
1194+   p …パレットコード(色)
1195+
1196+ x1、y1、x2、y2は、-32768から32767までの値をとることができます。クリッピングエリアについてはwindow関数で指定された範囲になります。
1197+
1198+ また、パレットコードpは0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
1199+
1200+ 用 例:
1201+
1202+
1203+{FIX 標準関数
1204+
1205+ 書 式:fix(f)
1206+
1207+ 引 数:float
1208+
1209+ 戻り値:float
1210+
1211+ 機 能:
1212+
1213+ 浮動小数値fの小数点以下を切り捨てた値を返します。
1214+
1215+ 用 例:
1216+
1217+
1218+{FLOAT ステートメント
1219+
1220+ 書 式:float 変数名【=定数式】【,…】
1221+
1222+ 機 能:
1223+
1224+ 変数を実数(float)型として宣言します。同時に値を代入する事もできます。
1225+
1226+ 原則として、変数宣言はメインプログラムの先頭で行ってください。
1227+ また、同じ名前の変数をメインプログラム中で再宣言することはできません。
1228+
1229+   → char、int、str
1230+
1231+ 用 例:
1232+
1233+
1234+{FOPEN 標準関数
1235+
1236+ 書 式:fopen(fn,md)
1237+
1238+ 引 数:str
1239+
1240+ 戻り値:int
1241+
1242+ 機 能:
1243+
1244+ 指定されたファイルを、モードを決めてオープンします。
1245+
1246+ 戻り値として、ファイル番号を返します。
1247+ エラーの場合は-1を返します。
1248+
1249+ fn …ファイル名
1250+ md …モード
1251+  "r" すでに存在しているファイルを読み込み用(リード)としてオープンする。ファイルがない場合はエラー。
1252+  "w" すでに存在しているファイルを書き込み用(ライト)としてオープンする。ファイルがない場合はエラー。
1253+  "rw" すでに存在しているファイルを読み書き両用(リード/ライト)としてオープンする。ファイルがない場合はエラー。
1254+  "c" 新規ファイルを読み書き両用(リード/ライト)としてオープンする。同一ファイルが、すでに存在してる場合は、そのファイルを消去してから、読み書き両用(リード/ライト)として新しくオープンする。
1255+
1256+ 特に、既存ファイルのデータに対して、追加、修正する場合は、"w"、"rw"モードを使用します。
1257+
1258+ オープンされたばかりのファイルでは、ファイル内のデータポインタの位置は、ファイルの先頭にあります。
1259+ データポインタを移動する場合は、fseek関数を使用します。
1260+
1261+ 用 例:
1262+
1263+
1264+{FOR〜NEXT ステートメント
1265+
1266+ 書 式:
1267+
1268+ for int型変数名=初期値 to 最終値
1269+  :
1270+ ループの内容
1271+  :
1272+ next
1273+
1274+ 機 能:
1275+
1276+ for から next までの間で指定されたループの内容を、指定された回数だけ繰り返し(ループ)ます。
1277+
1278+ 増分は1です。
1279+
1280+ 初期値が最終値と等しい場合は、1回だけループの内容が実行されます。初期値が最終値より大きい場合は、ループの内容は一度も実行されません。
1281+
1282+ 用 例:
1283+
1284+
1285+{FPUTC 標準関数
1286+
1287+ 書 式:fgetc(ch,fp)
1288+
1289+ 引 数:char(ch)、int(fp)
1290+
1291+ 戻り値:int
1292+
1293+ 機 能:
1294+
1295+ 指定されたファイルに1文字ずつ書き込みます。
1296+
1297+ 戻り値として、書き込んだ文字のキャラクターコードchを返します。
1298+ ファイルへの書き込みができなかった場合や、エラーの場合は-1を返します。
1299+
1300+   ch…書き込むキャラクターコード
1301+   fp…ファイル番号
1302+
1303+ キャラクターコードchは、0から255の値をとります。
1304+
1305+ ファイル内のデータポインタの位置は、1バイトずつ移動していきます。
1306+ ファイル内をランダムアクセスしてデータポインタを移動する場合は、fseek関数を使用します。
1307+
1308+   → fgetc
1309+
1310+ 用 例:
1311+
1312+
1313+{FREAD 標準関数
1314+
1315+ 書 式:fread(na,n,fp)
1316+
1317+ 引 数:数値型一次元配列名(na),int(n,fp)
1318+
1319+ 戻り値:int
1320+
1321+ 機 能:
1322+
1323+ 指定されたファイルから、指定された要素数分nを指定された配列に読み込みます。
1324+
1325+ 戻り値として、実際に読み込んだ要素数を返します。
1326+ エラーの場合は-1を返します。
1327+
1328+  na… 数値型一次元配列名(int型または、char型または、float型の一次元配列名)
1329+  n … 要素数(1バイト(char型)または4バイト(int型)または8バイト(float型)単位)
1330+  fp… ファイル番号
1331+
1332+ ファイル内のデータポインタの位置は、指定された配列naのデータ型に対応して、char型であれば1バイトずつ、int型であれば4バイトずつ、float型であれば8バイトずつ、移動していきます。
1333+
1334+ ファイル内をランダムアクセスしてデータポインタを移動する場合は、fseek関数を使用します。
1335+
1336+   → fwrite
1337+
1338+ 用 例:
1339+
1340+
1341+{FREADS 標準関数
1342+
1343+ 書 式:freads(st,fp)
1344+
1345+ 引 数:str型変数名(st),int(fp)
1346+
1347+ 戻り値:int
1348+
1349+ 機 能:
1350+
1351+ 指定されたファイルから1行を str型変数stに読み込みます。
1352+
1353+ 戻り値として、ファイルから読み込んだ文字数を返します。
1354+ ファイルの最後まで読み込んだ場合や、すでに読み込んでいる場合あるいはエラーの場合は、-1を返します。
1355+
1356+   st…読み込んだ文字列を格納するstr型変数名
1357+   fp…ファイル番号
1358+
1359+ 1行の読み込みを終了するのは、改行(CR(&HD)、LF(&H0A))が現れたときか、stの文字バッファがいっぱいになったときです。
1360+
1361+ ファイルの読み込みを終了するのは、ファイルが終った時か、ファイル終了コード(&H1A)が現れたときです。
1362+
1363+ なお、stの文字バッファには、改行およびファイル終了コードは書き込まれません。
1364+
1365+ ファイル内をランダムアクセスしてデータポインタを移動する場合は、fseek関数を使用します。
1366+
1367+   → fwrites
1368+
1369+ 用 例:
1370+
1371+
1372+{FREE システム変数
1373+
1374+ 書 式:free
1375+
1376+ 戻り値:int
1377+
1378+ 機 能:
1379+
1380+ 現在のメモリ上のフリーエリアを返します。代入する事はできません。
1381+
1382+ 用 例:
1383+
1384+
1385+{FRENAME 標準関数
1386+
1387+ 書 式:frename(fn1,fn2)
1388+
1389+ 引 数:str
1390+
1391+ 戻り値:int
1392+
1393+ 機 能:
1394+
1395+ ファイル名fn1のファイル名をファイル名fn2に変更します。
1396+
1397+ 変更できた場合、戻り値として0を返します。
1398+ エラーの場合は-1を返します。
1399+
1400+   fn1…変更したいファイル名
1401+   fn2…変更後のファイル名
1402+
1403+ 用 例:
1404+
1405+
1406+{FSEEK 標準関数
1407+
1408+ 書 式:fseek(fp,os,md)
1409+
1410+ 引 数:int
1411+
1412+ 戻り値:int
1413+
1414+ 機 能:
1415+
1416+ 指定されたファイル内のデータポインタを移動します。
1417+ ファイルをシークモードmdで指定された位置から1バイト単位でランダムアクセスするときに使用します。
1418+
1419+ シークモードmdで指定された位置から、オフセットosで指定されたところまで、ランダムアクセス後、新しいデータポインタの位置を返します。
1420+ エラーの場合は-1を返します。
1421+
1422+   fp…ファイル番号
1423+   os…オフセット(バイト単位)
1424+   md…シークモード
1425+     0=ファイルの先頭
1426+     1=現在の位置
1427+     2=ファイルの終わり
1428+
1429+ 用 例:
1430+
1431+
1432+{FUNC〜ENDFUNC〜RETURN() ステートメント
1433+
1434+ 書 式:
1435+
1436+ func 【戻り値の型】 関数名(【引数リスト】)
1437+  :
1438+ 関数の内容
1439+  :
1440+ endfunc
1441+
1442+ 機 能:
1443+
1444+ 関数を定義します。
1445+ func〜endfunc の関数は、必ず end命令以後に定義します。また、func〜endfunc の関数内では、ローカル変数を指定でき、再帰呼び出しもできるような構造になっています。ただし、原則として配列変数などはメインプログラムの先頭で宣言してください。
1446+
1447+ 通常、引数はカンマ(,)で区切って引数リストに記述します。引数が無い場合は省略可能です。
1448+
1449+ それぞれの引数につづけてセミコロン(;)を書き、その後にデータ型を指定する事ができます。このデータ型の指定を省略すると引数のデータは int型になります。
1450+
1451+ メインプログラム中で、定義された関数に渡す引数のデータ型や個数は、引数リストのデータ型や個数と一致させて下さい。
1452+
1453+ func〜endfunc で定義された関数から演算結果などの値を返したい場合は次のような命令を func〜endfunc でかこまれた中で使用します。
1454+
1455+   return(【戻り値】)
1456+
1457+ func〜endfunc で定義された関数からこの return命令によって返される戻り値のデータ型は、戻り値の型で指定する事ができます。省略した場合は int型になります。
1458+
1459+ func〜endfunc で定義された関数は、プログラムとしてメモリ上に存在していればダイレクトモードでも実行できます。
1460+
1461+ 用 例:
1462+
1463+
1464+{FWRITE 標準関数
1465+
1466+ 書 式:fwrite(na,n,fp)
1467+
1468+ 引 数:数値型一次元配列名(na),int(n,fp)
1469+
1470+ 戻り値:int
1471+
1472+ 機 能:
1473+
1474+ 指定された配列naのデータを、指定された要素数分nだけ指定されたファイルに書き込みます。
1475+
1476+ 戻り値として、実際に書き込んだ要素数を返します。
1477+ エラーの場合は-1を返します。
1478+
1479+  na… 数値型一次元配列名(int型または、char型または、float型の一次元配列名)
1480+  n … 要素数(1バイト(char型)または4バイト(int型)または8バイト(float型)単位)
1481+  fp… ファイル番号
1482+
1483+ ファイル内のデータポインタの位置は、指定された配列naのデータ型に対応して、char型であれば1バイトずつ、int型であれば4バイトずつ、float型であれば8バイトずつ、移動していきます。
1484+
1485+ ファイル内をランダムアクセスしてデータポインタを移動する場合は、fseek関数を使用します。
1486+
1487+   → fread
1488+
1489+ 用 例:
1490+
1491+
1492+{FWRITES 標準関数
1493+
1494+ 書 式:fwrites(st,fp)
1495+
1496+ 引 数:str型変数名(st),int(fp)
1497+
1498+ 戻り値:int
1499+
1500+ 機 能:
1501+
1502+ 指定されたファイルに str型変数stの1行を書き込みます。
1503+
1504+ 戻り値として、ファイルに書き込んだ文字数を返します。
1505+ エラーの場合は、-1を返します。
1506+
1507+   st…書き込むべき文字列を格納しているstr型変数名
1508+   fp…ファイル番号
1509+
1510+ null文字(キャラクタコードの0)は書き込みません。
1511+
1512+ ファイル内をランダムアクセスしてデータポインタを移動する場合は、fseek関数を使用します。
1513+
1514+   → freads
1515+
1516+ 用 例:
1517+
1518+
1519+{GCVT 標準関数
1520+
1521+ 書 式:gcvt(f,i)
1522+
1523+ 引 数:float(f),int(i)
1524+
1525+ 戻り値:str
1526+
1527+ 機 能:
1528+
1529+ 浮動小数値fを文字列に変換し、その文字列を返します。
1530+
1531+   f…文字列に変換したい浮動小数値
1532+   i…文字列の桁数
1533+
1534+ 通常は指定された桁数iの実数表現に変換しますが、それができない場合は指数表現に変換します。
1535+ 先頭の"0"は変換の際に取り除かれます。
1536+
1537+   → atof、ecvt、fcvt
1538+
1539+ 用 例:
1540+
1541+
1542+{GET GRAPH.FNC
1543+
1544+ 書 式:get(x1,y1,x2,y2,na)
1545+
1546+ 引 数:int(x1,y1,x2,y2),数値型一次元配列(na)
1547+
1548+ 戻り値:void
1549+
1550+ 機 能:
1551+
1552+ グラフィック画面の指定領域のドットパターンを指定された配列naに読み込みます。
1553+
1554+   x1…始点X座標
1555+   y1…始点Y座標
1556+   x2…終点X座標
1557+   y2…終点Y座標
1558+   na…ドットパターンを読み込む数値型一次元配列名
1559+
1560+ x1、y1、x2、y2は、window関数で指定された範囲内の値をとることができます。
1561+
1562+ また、配列naへのドットパターンの読み込みかたとしてはグラフィック画面の実画面サイズおよび色モードにより次のようになります。
1563+
1564+  実画面サイズ1024×1024、16色モード(4ビット/4ドット構成)
1565+   読み込み順=(x1,y1),(x+1,y1),…(x2,y1),(x1,y1+1),(x1+1,y1+1)…(x2,y2)
1566+   char型配列の場合=2ドット単位
1567+   int型配列の場合=8ドット単位
1568+   float型配列の場合=16ドット単位
1569+
1570+  実画面サイズ512×512、16色モード
1571+   読み込み順=実画面サイズ1024×1024、16色モードと同様
1572+   ただし、apage関数によって、指定されたアクティブページ(0〜3)に対してのみ有効
1573+
1574+  実画面サイズ512×512、256色モード
1575+   読み込み順=実画面サイズ1024×1024、16色モードと同様
1576+   char型配列の場合=1ドット単位
1577+   int型配列の場合=4ドット単位
1578+   float型配列の場合=8ドット単位
1579+   ただし、apage関数によって、指定されたアクティブページ(0、1)に対してのみ有効
1580+
1581+  実画面サイズ512×512、65536色モード
1582+   読み込み順=実画面サイズ1024×1024、16色モードと同様
1583+   char型配列の場合=2要素1ドット単位
1584+   int型配列の場合=2ドット単位
1585+   float型配列の場合=4ドット単位
1586+
1587+ グラフィック画面への書込みについては put関数を参照してください。
1588+
1589+   → put
1590+
1591+ 用 例:
1592+
1593+
1594+{GOSUB〜RETURN ステートメント
1595+
1596+ 書 式:gosub 行番号
1597+
1598+ 機 能:
1599+
1600+ 指定したサブルーチンを呼び出し、return命令で戻ります。
1601+
1602+ ただし、gosub命令を使用したプログラムは、行番号に依存したプログラムになるため load@命令、save@命令は使用できません。
1603+
1604+ また、renum命令による行番号の変更もできなくなります。
1605+
1606+   → goto
1607+
1608+ 用 例:
1609+
1610+
1611+{GOTO ステートメント
1612+
1613+ 書 式:goto 行番号
1614+
1615+ 機 能:
1616+
1617+ 指定した行にジャンプします。
1618+
1619+ ただし、goto命令を使用したプログラムは、行番号に依存したプログラムになるため load@命令、save@命令は使用できません。
1620+
1621+ また、renum命令による行番号の変更もできなくなります。
1622+
1623+ goto命令で、for〜next、while〜endwhile などのブロック構造から外に出てしまうとプログラムの動作が正常でなくなる可能性があります。
1624+
1625+ 用 例:
1626+
1627+
1628+{HEX$ 標準関数
1629+
1630+ 書 式:hex$(i)
1631+
1632+ 引 数:int
1633+
1634+ 戻り値:str
1635+
1636+ 機 能:
1637+
1638+ 整数値iを16進数表現の文字列に変換し返します。
1639+ なお、上位の"0"は取り除かれます。
1640+
1641+   → bin$、oct$
1642+
1643+ 用 例:
1644+
1645+
1646+{HOME GRAPH.FNC
1647+
1648+ 書 式:home(pa,x,y,)
1649+
1650+ 引 数:chara(pa),int(x,y)
1651+
1652+ 戻り値:void
1653+
1654+ 機 能:
1655+
1656+ グラフィック画面の実画面における表示画面の左上座標を指定します。
1657+
1658+   pa…アクティブページ
1659+   x …実画面における表示画面の左上X座標
1660+   y …実画面における表示画面の左上Y座標
1661+
1662+ アクティブページpaはグラフィック画面の実画面サイズ及び色モードにより最大値(0〜3)が決まり、x、y、も同様にグラフィック画面の実画面サイズ及び色モードにより、実画面サイズが512×512の場合は0から511まで、あるいは実画面サイズが1024×1024の場合は0から1023までの値をとることができます。
1663+
1664+ screen命令を実行すると(x,y)には(0,0)が再設定されます。
1665+
1666+   → apage、screen、vpage、window
1667+
1668+ 用 例:
1669+
1670+
1671+{HSV GRAPH.FNC
1672+
1673+ 書 式:hsv(hu,sa,va)
1674+
1675+ 引 数:char
1676+
1677+ 戻り値:int
1678+
1679+ 機 能:
1680+
1681+ 色相(hu)、飽和度(sa)、明るさ(va)からカラーコードを求めます。
1682+
1683+   hu…0〜191
1684+   sa…0〜31
1685+   va…0〜31
1686+
1687+ なお、この hsv関数によって得られるカラーコードは、0〜65534までの偶数値になります。
1688+ したがって、それぞれの偶数値に1を加える事で、0〜65535までのカラーコードを指定できます。
1689+
1690+ 用 例:
1691+
1692+
1693+{IF〜THEN〜ELSE ステートメント
1694+
1695+ 書 式:if 条件 then 文 【else 文】
1696+
1697+ 機 能:
1698+
1699+ 条件で条件判断を行い、その結果に応じて文を実行します。
1700+
1701+ if に続けて条件を指定します。その条件が満たされたときは then 以下の文が実行され、そうでないときは else 以下の文が実行されます。
1702+
1703+ else 以降は省略することができます。その場合、条件が満たされなかったときは次の行が実行されます。
1704+
1705+ 条件には、以下のような比較演算子と論理演算子とが使えます。論理演算子は、複数の条件を指定するときに使います。
1706+
1707+ 比較演算子  意味  例
1708+ 式1= 式2 式1が式2と等しい if a=1
1709+ 式1<>式2 式1が式2と等しくない if a<>1
1710+ 式1< 式2 式1が式2より小さい if a<10
1711+ 式1> 式2 式1が式2より大きい if a>b
1712+ 式1<=式2 式1が式2と等しいしいか、式2より小さい if a<=b+1
1713+ 式1>=式2 式1が式2と等しいか、式2より大きい if a>="n"
1714+
1715+ 論理演算子  例  意味
1716+ not if not (a=1) a が1でなければ then 以下を実行
1717+ and if a=0 and b=3 a が0で、b が3のときのみ then 以下を実行
1718+ or if a<0 or b=0 a が0より小さいか、bが0のときに then 以下を実行
1719+
1720+ then節または else節は、{}と組み合わせて、複数行の条件判断に使用できます。
1721+
1722+ 用 例:
1723+
1724+
1725+{IMG_COLOR IMAGE.FNC
1726+
1727+ 書 式:img_color(md)
1728+
1729+ 引 数:char
1730+
1731+ 戻り値:void
1732+
1733+ 機 能:
1734+
1735+ 取込み画像のグラフィックパレットを補正します。
1736+
1737+   md…グラフィック画面の色モード(0〜2)
1738+    0=グラフィック画面16色モード
1739+    1=グラフィック画面256色モード
1740+    2=グラフィック画面65536色モード
1741+
1742+
1743+{IMG_HOME IMAGE.FNC
1744+
1745+ 書 式:img_home(x,y,dir,cnt,wt)
1746+
1747+ 引 数:int(x,y,cnt,wt),char(dir)
1748+
1749+ 戻り値:void
1750+
1751+ 機 能:
1752+
1753+ グラフィック画面の表示画面の位置を移動します。
1754+
1755+ x… グラフィック画面の実画面における表示画面の左上X座標
1756+ y… グラフィック画面の実画面における表示画面の左上Y座標
1757+ dir… 移動方向(1〜9)
1758+ 1=左下
1759+ 2=下
1760+ 3=右下
1761+ 4=左
1762+ 6=右
1763+ 7=左上
1764+ 8=上
1765+ 9=右上
1766+ cnt… 移動ドット数
1767+ wt … ウェイト時間(×約1.2μ秒)
1768+
1769+ 用 例:
1770+
1771+
1772+{IMG_HT IMAGE.FNC
1773+
1774+ 書 式:img_ht(x1,y1,x2,y2,p,a)
1775+
1776+ 引 数:int(x1,y1,x2,y2),char(p,a)
1777+
1778+ 戻り値:void
1779+
1780+ 機 能:
1781+
1782+ グラフィック画面とテレビ・ビデオ画面との半透明表示を制御します。
1783+
1784+ x1… グラフィック画面の半透明領域の始点X座標
1785+ y1… グラフィック画面の半透明領域の始点Y座標
1786+ x2… グラフィック画面の半透明領域の終点X座標
1787+ y2… グラフィック画面の半透明領域の終点Y座標
1788+ p … 指定された領域内のグラフィック画面の半透明表示の設定
1789+ (0=設定しない、1=設定する)
1790+ a … 半透明表示の制御
1791+ (0=半透明表示を実行しない、1=半透明表示を実行する)
1792+
1793+ なお、この関数を実行するにはカラーイメージユニットCZ-6VT1が必要です。
1794+
1795+ 用 例:
1796+
1797+
1798+{IMG_LOAD 標準関数
1799+
1800+ 書 式:img_load(st【,x】【,y】【,b】)
1801+
1802+ 引 数:str(st),int(x,y,b)
1803+
1804+ 戻り値:int
1805+
1806+ 機 能:
1807+
1808+ グラフィック画面をロードします。
1809+ 戻り値として、正常のときは0、エラーのときは-1を返します。
1810+
1811+   st…主ファイル名
1812+   x …ロードするグラフィック画面の左上X座標
1813+   y …ロードするグラフィック画面の左上Y座標
1814+     表示画面サイズが512×512の場合
1815+       x=0,y=0
1816+     表示画面サイズが256×256の場合
1817+       0≦x≦256,0≦y≦256
1818+   b …ロード終了位置の指定
1819+      b=dy/n
1820+       dy…Y座標の下からのドット数
1821+        n…拡張子
1822+         GS0…32
1823+         GS3…16
1824+         GM0…16
1825+         GM3…8
1826+         GL0…8
1827+         GL3…4
1828+
1829+ 拡張子の意味については、img_save関数を参照して下さい。
1830+
1831+
1832+{IMG_POS IMAGE.FNC
1833+
1834+ 書 式:imag_pos(hc)
1835+
1836+ 引 数:char
1837+
1838+ 戻り値:void
1839+
1840+ 機 能:
1841+
1842+ 画像取込み時の画面水平位置を補正します。
1843+
1844+   hc…水平位置補正データ(0〜255)
1845+
1846+ ・表示画面サイズが512×512の場合
1847+  画像取り込みする際、はじめは&H9Aにセットし、
1848+  静止画にした後&H2Cに設定します。
1849+
1850+ ・表示画面サイズが256×256の場合
1851+  はじめは&HEBにセットし、
1852+  静止画にした後&H24に設定します。
1853+
1854+ なお、この関数を実行するにはカラーイメージユニットCZ-6VT1が必要です。
1855+
1856+
1857+{IMG_PUT IMAGE.FNC
1858+
1859+ 書 式:img_put(x1,y1,x2,y2,ia)
1860+
1861+ 引 数:int(x1,y1,x2,y2),int型一次元配列名(ia)
1862+
1863+ 戻り値:void
1864+
1865+ 機 能:
1866+
1867+ グラフィック画面の(x1,y1)から(x2,y2)まで、8ドットごとに移動しながら、配列iaのデータを256×256ドットのボックスで表示します。
1868+
1869+   x1…グラフィック画面の始点X座標(0≦x1≦256)
1870+   y1…グラフィック画面の始点Y座標(0≦x1≦256)
1871+   x2…グラフィック画面の終点X座標(0≦x1≦256)
1872+   y2…グラフィック画面の終点Y座標(0≦x1≦256)
1873+   ia…get関数で読み込んだ int型一次元配列名
1874+
1875+
1876+{IMG_SAVE IMAGE.FNC
1877+
1878+ 書 式:img_save(st【,x】【,y】)
1879+
1880+ 引 数:str(st),int(x,y)
1881+
1882+ 戻り値:int
1883+
1884+ 機 能:
1885+
1886+ グラフィック画面をセーブします。戻り値として、正常の時は0、エラーの時は-1を返します。
1887+
1888+   st…主ファイル名
1889+
1890+ 拡張子はグラフィック画面のスクリーンモードに応じて以下のように付加されます。
1891+
1892+ 表示画面サイズ  色モード  拡張子
1893+ 256×256 16色 GS0
1894+ 256×256 256色 GM0
1895+ 256×256 65536色 GL0
1896+ 512×512 16色 GS3
1897+ 512×512 256色 GM3
1898+ 512×512 65536色 GL3
1899+
1900+   x …セーブするグラフィック画面の左上X座標
1901+   y …セーブするグラフィック画面の左上Y座標
1902+     表示画面サイズが512×512の場合
1903+       x=0,y=0
1904+     表示画面サイズが256×256の場合
1905+       0≦x≦256,0≦y≦256
1906+
1907+
1908+{IMG_SCRN IMAGE.FNC
1909+
1910+ 書 式:img_scrn(sz,co,dis)
1911+
1912+ 引 数:int
1913+
1914+ 戻り値:void
1915+
1916+ 機 能:
1917+
1918+ グラフィック画面のスクリーンモードを設定します。
1919+
1920+ ただし、グラフィック画面クリア、パレット・コントラスト・表示モードの初期化は行いません。
1921+
1922+   sz…表示画面サイズ(0〜2)
1923+     0=256×256
1924+     1=512×512
1925+     2=768×512
1926+   co…グラフィック画面の実画面サイズ及び色モード(0〜3)
1927+     0=1024×1024 16色
1928+     1=512×512  16色
1929+     2=512×512  256色
1930+     3=512×512  65536色
1931+   dis…ディスプレイ解像度(0、1)
1932+     0=標準解像度
1933+     1=高解像度
1934+
1935+
1936+{IMG_SET IMAGE.FNC
1937+
1938+ 書 式:imag_set(c【,c】【,c】【,c】【,c】)
1939+
1940+ 引 数:char
1941+
1942+ 戻り値:void
1943+
1944+ 機 能:
1945+
1946+ カラーイメージユニットCZ-6VT1の各種コントロールを行います。
1947+
1948+   c…カラーイメージユニットのコントロールコード(&H00〜&HFF)
1949+
1950+ コントロールコード一覧表(使用ポートアドレス E8E005H)
1951+ 入力する値 コード 命令 備考
1952+ 0 00(H) 00000 65536色(2^16)モード  
1953+ 1 00(H) 00000 空き  
1954+ 2 01(H) 00001  
1955+ 3 03(H) 00011 コンピューターコントロールモード 赤色ランプ点灯
1956+ 4 04(H) 00100 マニュアルモード 緑色ランプ点灯
1957+ 5 05(H) 00101
1958+ <カラーイメージ>  モノクロ映像
1959+ リセット、色の濃さUP DOWNいずれかで解除される。
1960+ 6 06(H) 00110
1961+ <  テロッパ  > 出力ON
1962+ 出力OFF
1963+  
1964+ 7 07(H) 00111 リセットで解除される
1965+ 8 08(H) 01000
1966+ <カラーイメージ> リセット
1967+ 色の濃さUP
1968+ 色の濃さDOWN
1969+ 色あいUP
1970+ 色あいDOWN
1971+ 映像UP
1972+ 映像DOWN
1973+ 各映像調整を標準の位置に戻す。
1974+ 9 09(H) 01001  
1975+ 10 0A(H) 01010  
1976+ 11 0B(H) 01011  
1977+ 12 0C(H) 01100  
1978+ 13 0D(H) 01101  
1979+ 14 0E(H) 01110  
1980+ 15 0F(H) 01111 256色(2^8)モード  
1981+ 16 10(H) 10000
1982+ <  テロッパ  > リセット
1983+ 色の濃さUP
1984+ 色の濃さDOWN
1985+ 色あいUP
1986+ 色あいDOWN
1987+ 映像UP
1988+ 映像DOWN
1989+ 各映像調整を標準の位置に戻す。
1990+ 17 11(H) 10001  
1991+ 18 12(H) 10010  
1992+ 19 13(H) 10011  
1993+ 20 14(H) 10100  
1994+ 21 15(H) 10101  
1995+ 22 16(H) 10110  
1996+ 23 17(H) 10111 16色(2^4)モード  
1997+ 24
1998+ :
1999+ 31 18
2000+ :
2001+ 1F(H) 11000
2002+ :
2003+ 11111 空き  
2004+
2005+ なお、この関数を実行するにはカラーイメージユニットCZ-6VT1が必要です。
2006+
2007+
2008+{IMG_STILL IMAGE.FNC
2009+
2010+ 書 式:img_still(sw)
2011+
2012+ 引 数:char
2013+
2014+ 戻り値:void
2015+
2016+ 機 能:
2017+
2018+ 画像取込みモードswを設定します。
2019+
2020+   sw…画像取込みモードの設定
2021+     0=実行(静止画)
2022+     1=待機(動画)
2023+
2024+ 実行前に、screen命令で、あらかじめ表示画面サイズを256×256または512×512に、ディスプレイ解像度を Low(標準解像度)に設定します。
2025+
2026+ また、画像取込みを実行するプログラムの終了時には、img_still(0)を実行します。
2027+
2028+ なお、この関数を実行するにはカラーイメージユニットCZ-6VT1が必要です。
2029+
2030+
2031+{INKEY$またはINKEY$(0) システム変数
2032+
2033+ 書 式:inkey$ または inkey$(0)
2034+
2035+ 戻り値:str
2036+
2037+ 機 能:
2038+
2039+ キーボードから入力された1文字を返します。代入することはできません。
2040+
2041+ inkey$ は、キー入力されるまで待ちます。
2042+ inkey$(0) は、キー入力待ちを行いません。
2043+
2044+   → input、「キャラクタコード表」
2045+
2046+ 用 例:
2047+
2048+
2049+{INPUT ステートメント
2050+
2051+ 書 式:input 【"プロンプト文";または,】変数名【,変数名…】
2052+
2053+ 機 能:
2054+
2055+ キーボードから入力されるデータを、指定したデータ型の変数へ代入します。
2056+ データを入力したら、リターンキーを押してください。
2057+
2058+ input文では、プロンプト文と変数名の間にセミコロン(;)あるいは、カンマ(,)が指定でき、セミコロンの時はプロンプト文の後に疑問符が(?)が表示され、カンマの時は何も表示されません。
2059+
2060+ また、変数に入力できる最大文字数は、セミコロン(;)を使用した場合は、その表示画面の水平最大表示文字数-(プロンプト文字数+3)になり、カンマ(,)を使用した場合は、その表示画面の水平最大表示文字数-(プロンプト文字数+1)になります。
2061+ ただし、str型変数の場合は、設定された文字バッファのサイズ以上のデータは代入されません。なお、カンマ(,)や引用符(")は入力できません。
2062+
2063+ 変数は、カンマ(,)で区切って複数指定することもできます。この場合、入力するデータもカンマ(,)で区切って、変数の数だけ入力してからリターンキーを押さなければなりません。
2064+ 入力するデータの個数が足りないと、”データの個数がたりません”と表示されて入力待ちとなり、個数が多いと、”データの個数が多過ぎます”と表示され、余分に入力されたデータは無視されます。
2065+
2066+ また、対応する変数の型と入力されるデータの型は、一致しなければなりません。型が違っていた場合には、”データの型が違います”と表示されて再び入力待ちとなります。
2067+
2068+   → inkey$
2069+
2070+ 用 例:
2071+
2072+
2073+{INSTR 標準関数
2074+
2075+ 書 式:instr(i,st1,st2)
2076+
2077+ 引 数:int(i),str(st1,st2)
2078+
2079+ 戻り値:int
2080+
2081+ 機 能:
2082+
2083+ 文字列st2を文字列st1の指定された位置iから探してその位置を返します。
2084+ 位置iは1〜255の値をとります。
2085+ ただし次の場合は0を返します。
2086+
2087+   ・文字列st2が見つからなかった場合
2088+   ・指定された位置iが0または負の場合
2089+   ・文字列st1またはst2が null文字の場合
2090+
2091+ 用 例:
2092+
2093+
2094+{INT ステートメント
2095+
2096+ 書 式:int 変数名【=定数式】【,…】
2097+
2098+ 機 能:
2099+
2100+ 変数を整数(int)型として宣言します。
2101+ 同時に値を代入する事もできます。
2102+
2103+ 原則として、変数宣言はメインプログラムの先頭で行ってください。
2104+ また、同じ名前の変数をメインプログラムの中で再宣言することはできません。
2105+
2106+   → char、float、str
2107+
2108+ 用 例:
2109+
2110+
2111+{INT() 標準関数
2112+
2113+ 書 式:int(f)
2114+
2115+ 引 数:float
2116+
2117+ 戻り値:int
2118+
2119+ 機 能:
2120+
2121+ 浮動小数値fを越えない最大の整数値を返します。
2122+
2123+ 用 例:
2124+
2125+
2126+{ISALNUM 標準関数
2127+
2128+ 書 式:isalnum(ch)
2129+
2130+ 引 数:char
2131+
2132+ 戻り値:int
2133+
2134+ 機 能:
2135+
2136+ キャラクターコードchの文字が英数字('a'〜'z'、'A'〜'Z'、'0'〜'9')であるかどうか調べます。
2137+
2138+ 英数字であれば-1、そうでなければ0を返します。
2139+
2140+   ch…調べたい文字のキャラクタコード(0〜255)
2141+
2142+ 用 例:
2143+
2144+
2145+{ISALPHA 標準関数
2146+
2147+ 書 式:isalpha(ch)
2148+
2149+ 引 数:char
2150+
2151+ 戻り値:int
2152+
2153+ 機 能:
2154+
2155+ キャラクターコードchの文字が英字('a'〜'z'、'A'〜'Z')であるかどうか調べます。
2156+
2157+ 英字であれば-1、そうでなければ0を返します。
2158+
2159+   ch…調べたい文字のキャラクタコード(0〜255)
2160+
2161+ 用 例:
2162+
2163+
2164+{ISASCII 標準関数
2165+
2166+ 書 式:isascii(ch)
2167+
2168+ 引 数:char
2169+
2170+ 戻り値:int
2171+
2172+ 機 能:
2173+
2174+ キャラクターコードchの文字がアスキー文字(&H00〜&H7F)であるかどうか調べます。
2175+
2176+ アスキー文字であれば-1、そうでなければ0を返します。
2177+
2178+   ch…調べたい文字のキャラクタコード(0〜255)
2179+
2180+ 用 例:
2181+
2182+
2183+{ISCNTRL 標準関数
2184+
2185+ 書 式:iscntrl(ch)
2186+
2187+ 引 数:char
2188+
2189+ 戻り値:int
2190+
2191+ 機 能:
2192+
2193+ キャラクターコードchの文字がコントロール文字(&H00〜&H1F、&H7F)であるかどうか調べます。
2194+
2195+ コントロール文字であれば-1、そうでなければ0を返します。
2196+
2197+   ch…調べたい文字のキャラクタコード(0〜255)
2198+
2199+ 用 例:
2200+
2201+
2202+{ISDIGIT 標準関数
2203+
2204+ 書 式:isdigit(ch)
2205+
2206+ 引 数:char
2207+
2208+ 戻り値:int
2209+
2210+ 機 能:
2211+
2212+ キャラクターコードchの文字が数字('0'〜'9')であるかどうか調べます。
2213+
2214+ 数字であれば-1、そうでなければ0を返します。
2215+
2216+   ch…調べたい文字のキャラクタコード(0〜255)
2217+
2218+ 用 例:
2219+
2220+
2221+{ISGRAPH 標準関数
2222+
2223+ 書 式:isgraph(ch)
2224+
2225+ 引 数:char
2226+
2227+ 戻り値:int
2228+
2229+ 機 能:
2230+
2231+ キャラクターコードchの文字が空白文字以外の表示可能な文字(&H21〜&H7E)であるかどうか調べます。
2232+
2233+ 表示可能であれば-1、そうでなければ0を返します。
2234+
2235+   ch…調べたい文字のキャラクタコード(0〜255)
2236+
2237+ 用 例:
2238+
2239+
2240+{ISLOWER 標準関数
2241+
2242+ 書 式:islower(ch)
2243+
2244+ 引 数:char
2245+
2246+ 戻り値:int
2247+
2248+ 機 能:
2249+
2250+ キャラクターコードchの文字が英小文字('a'〜'z')であるかどうか調べます。
2251+
2252+ 英小文字であれば-1、そうでなければ0を返します。
2253+
2254+   ch…調べたい文字のキャラクタコード(0〜255)
2255+
2256+ 用 例:
2257+
2258+
2259+{ISPRINT 標準関数
2260+
2261+ 書 式:isprint(ch)
2262+
2263+ 引 数:char
2264+
2265+ 戻り値:int
2266+
2267+ 機 能:
2268+
2269+ キャラクターコードchの文字が表示可能な文字(&H20〜&H7E)であるかどうか調べます。
2270+
2271+ 表示可能であれば-1、そうでなければ0を返します。
2272+
2273+   ch…調べたい文字のキャラクタコード(0〜255)
2274+
2275+ 用 例:
2276+
2277+
2278+{ISPUNCT 標準関数
2279+
2280+ 書 式:ispunct(ch)
2281+
2282+ 引 数:char
2283+
2284+ 戻り値:int
2285+
2286+ 機 能:
2287+
2288+ キャラクターコードchの文字が表示可能な記号文字(&H20〜&H2F、&H3A〜&H40、&H5B〜&H60、&H7B〜&H7E)であるかどうか調べます。
2289+
2290+ 表示可能な記号文字であれば-1、そうでなければ0を返します。
2291+
2292+ 用 例:
2293+
2294+
2295+{ISSPACE 標準関数
2296+
2297+ 書 式:isspace(ch)
2298+
2299+ 引 数:char
2300+
2301+ 戻り値:int
2302+
2303+ 機 能:
2304+
2305+ キャラクターコードchの文字が空白文字(&H09〜&H0D、&H20)であるかどうか調べます。
2306+
2307+ 空白文字であれば-1、そうでなければ0を返します。
2308+
2309+   ch…調べたい文字のキャラクタコード(0〜255)
2310+
2311+ 用 例:
2312+
2313+
2314+{ISUPPER 標準関数
2315+
2316+ 書 式:isupper(ch)
2317+
2318+ 引 数:char
2319+
2320+ 戻り値:int
2321+
2322+ 機 能:
2323+
2324+ キャラクターコードchの文字が英大文字('A'〜'Z')であるかどうか調べます。
2325+
2326+ 英大文字であれば-1、そうでなければ0を返します。
2327+
2328+   ch…調べたい文字のキャラクタコード(0〜255)
2329+
2330+ 用 例:
2331+
2332+
2333+{ISXDIGIT 標準関数
2334+
2335+ 書 式:isxdigit(ch)
2336+
2337+ 引 数:char
2338+
2339+ 戻り値:int
2340+
2341+ 機 能:
2342+
2343+ キャラクターコードchの文字が16進数の文字('0'〜'9'、'a'〜'f'、'A'〜'F'、)であるかどうか調べます。
2344+
2345+ 16進数の文字であれば-1、そうでなければ0を返します。
2346+
2347+   ch…調べたい文字のキャラクタコード(0〜255)
2348+
2349+ 用 例:
2350+
2351+
2352+{ITOA 標準関数
2353+
2354+ 書 式:itoa(i)
2355+
2356+ 引 数:int
2357+
2358+ 戻り値:str
2359+
2360+ 機 能:
2361+
2362+ 整数値iを文字列に変換し、その文字列を返します。
2363+
2364+   → atoi
2365+
2366+ 用 例:
2367+
2368+
2369+{KEY ステートメント
2370+
2371+ 書 式:key ファンクションキーナンバー,文字列
2372+
2373+ 機 能:
2374+
2375+ ファンクションキーの内容を定義します。
2376+ ファンクションキーナンバーは1〜20で、1〜10は F1〜F10キーを、11〜20は SHIFTキーを押しながら F1〜F10キーを押した場合に対応します。
2377+
2378+ 文字列の長さは32文字まで有効です。
2379+
2380+ CTRL+A(CTRLキーを押しながら Aキーを押す)やCTRL+M(CTRLキーを押しながら Mキーを押す)のような文字を定義するには、"@A"、"@M"のように"@"と対応する各大文字を並べて使います。
2381+
2382+ なお引用符は(”)は"@@"となります
2383+
2384+   → 「コントロールコード一覧」
2385+
2386+ 用 例:
2387+
2388+
2389+{KEY LIST コマンド
2390+
2391+ 書 式:key list
2392+
2393+ 機 能:
2394+
2395+ ファンクションキーの内容一覧を表示します。
2396+
2397+ 用 例:key list
2398+
2399+
2400+{KILL コマンド
2401+
2402+ 書 式:kill "【ドライブ名】ファイル名"
2403+
2404+ 省略形:ki.
2405+
2406+ 機 能:
2407+
2408+ 指定したファイルを削除します。
2409+
2410+ 用 例:kill "a:test.bas"
2411+
2412+
2413+{LEFT$ 標準関数
2414+
2415+ 書 式:left$(st,i)
2416+
2417+ 引 数:str(st),int(i)
2418+
2419+ 戻り値:str
2420+
2421+ 機 能:
2422+
2423+ 文字列stの先頭から指定された文字数iの文字列を取り出して返します。
2424+
2425+   st…元の文字列(文字式)
2426+    i…取り出したい文字数
2427+
2428+ 文字数iは、1から255の値を取ります。
2429+
2430+ 指定された文字数iが、文字列stの総文字数より多い時は、文字列stをそのまま取り出して返します。
2431+
2432+ 指定された文字数iが、0または負の場合は null文字を返します。
2433+
2434+   → mid$、right$
2435+
2436+ 用 例:
2437+
2438+
2439+{LINE GRAPH.FNC
2440+
2441+ 書 式:line(x1,y1,x2,y2,p【,ls】)
2442+
2443+ 引 数:int
2444+
2445+ 戻り値:void
2446+
2447+ 機 能:
2448+
2449+ グラフィック画面上に直線を引きます。
2450+
2451+   x1…始点X座標
2452+   y1…始点Y座標
2453+   x2…終点X座標
2454+   y2…終点Y座標
2455+   p …パレットコード(色)
2456+   ls…ラインスタイル
2457+
2458+ x1、y1、x2、y2は、-32768から32767までの値をとることができます。クリッピングエリアについては window関数で指定された範囲になります。
2459+
2460+ また、パレットコードpは0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
2461+
2462+ ラインスタイルlsは0〜65535の値をとり、これを16ビットのビットパターンとみなし、実線(&HFFFF)や点線(&HAAAA)などを指定する事ができます。
2463+
2464+ 用 例:
2465+
2466+
2467+{LINPUT ステートメント
2468+
2469+ 書 式:linput 【"プロンプト文";】str型変数名
2470+
2471+ 機 能:
2472+
2473+ 指定された str型変数に、キーボードから文字列を入力します。
2474+ 文字列を入力したら、リターンキーを押してください。
2475+
2476+ input命令と違い、一度に一つの str型変数にしか代入できず、また数値型の変数への代入はできません。
2477+
2478+ カンマ(,)、引用符(")なども代入する事ができます。
2479+
2480+ linput文では、疑問符(?)は表示されません。
2481+
2482+ また、str型変数に入力できる最大文字数は、その表示画面の水平最大文字数-(プロンプト文字数+1)となります。
2483+ ただし、設定されている文字バッファのサイズ以上のデータは代入されません。
2484+
2485+ 用 例:
2486+
2487+
2488+{LIST コマンド
2489+
2490+ 書 式:【l】list 【行番号1】【-行番号2】
2491+
2492+ 省略形:【l】l.
2493+
2494+ 機 能:
2495+
2496+ メモリにあるプログラムリストを画面に表示したり、プリンタに印刷します。
2497+
2498+ 表示を開始する行番号1を省略すると、プログラムリストの先頭から表示が始まり、表示を終了する行番号2を省略すると、プログラムリストの最後までが表示されます。
2499+ たとえば、
2500+
2501+ list プログラムリストの先頭から最後までが表示されます。
2502+ list 50 行番号50のみ表示されます。
2503+ list -100 プログラムリストの先頭から100行目までが表示されます。
2504+ list 200- プログラムリストの200行目から最後までが表示されます。
2505+
2506+ list の機能を一時停止したい時は、CTRL+Sキーを押します。
2507+ 何かキーを押せば、表示を再開します。
2508+
2509+ また、list の機能を終了したい時は、BREAKキー(または CTRL+Cキー)を押します。
2510+
2511+ list命令の代りに llist命令を用いれば、プログラムリストをプリンタに印刷することができます。
2512+
2513+ 用 例:list 10-300
2514+
2515+
2516+{LOAD コマンド
2517+
2518+ 書 式:
2519+ load【@】 "【ドライブ名ファイル名】"【,行番号】【,増分】
2520+
2521+ 省略形:lo.
2522+
2523+ 機 能:
2524+
2525+ 指定した BASICプログラムをロードします。
2526+
2527+ プログラムがロードされると、それまでにメモリ上にあったプログラムは消されます。
2528+
2529+ load@ は行番号を除いて(save@ によって)セーブされたプログラムに行番号とその増分を指定(しなければともに10)してロードします。
2530+
2531+ この場合、プログラムは、指定された行番号から、指定された増分を付加しながらロードされます。
2532+
2533+ すでにプログラムがメモリにある場合、ロードしたプログラムがマージ(混合、追加)されます。
2534+
2535+ ドライブ名、ファイル名についての詳細は。「Human68kユーザーズマニュアル」を参照してください。
2536+
2537+   → save
2538+
2539+ 用 例:load "a:\test.bas"
2540+
2541+
2542+{LOCATE ステートメント
2543+
2544+ 書 式:
2545+ locate X座標,Y座標【,カーソルスイッチ】
2546+
2547+ 省略形:loc.
2548+
2549+ 機 能:
2550+
2551+ カーソルをテキスト画面の X座標、Y座標で指定されたキャラクタ座標位置へ移動します。
2552+ X座標、Y座標の取りうる範囲は、スクリーンモードとスクロールエリアによります。
2553+
2554+ カーソルスイッチが0の時は、カーソル表示OFFで、1ならカーソル表示ONです。
2555+ なお、カーソルスイッチが有効な時は、プログラムでカーソルスイッチを0にしている間のみです。
2556+
2557+ プログラムが終了して"Ok"が表示されるとカーソル表示ONになります。
2558+
2559+ 用 例:
2560+
2561+
2562+{LOG 標準関数
2563+
2564+ 書 式:log(n)
2565+
2566+ 引 数:float
2567+
2568+ 戻り値:float
2569+
2570+ 機 能:
2571+
2572+ 数値nの自然対数を返します。n>0でなければなりません。
2573+
2574+ 用 例:
2575+
2576+
2577+{MID$ 標準関数
2578+
2579+ 書 式:mid$(st,i1,i2)
2580+
2581+ 引 数:str(st),int(i1,i2)
2582+
2583+ 戻り値:str
2584+
2585+ 機 能:
2586+
2587+ 文字列stの先頭から指定された位置i1から指定された文字数i2分の文字列を取り出して返します。
2588+
2589+   st…元の文字列(文字式)
2590+   i1…取り出し始める位置
2591+   i2…取り出したい文字数
2592+
2593+ 位置i1および文字数i2は、1から255の値を取ります。
2594+
2595+ 取り出したい文字数i2が、文字列stの取り出し始める位置i1からの文字数よりも多い時は、指定された位置i1以降の全ての文字列を取り出して返します。
2596+
2597+ 取りだし始める位置i1が、0あるいは負の場合や、文字列stの長さを越えている場合は null文字を返します。
2598+ 取りだしたい文字数i2が、0または負の場合も null文字を返します。
2599+
2600+   → left$、right$
2601+
2602+ 用 例:
2603+
2604+
2605+{MIRROR$ 標準関数
2606+
2607+ 書 式:mirror$(st)
2608+
2609+ 引 数:str
2610+
2611+ 戻り値:str
2612+
2613+ 機 能:
2614+
2615+ 文字列の並びを逆転して返します。
2616+
2617+ 用 例:
2618+
2619+
2620+{MOUSE MOUSE.FNC
2621+
2622+ 書 式:mouse(ch)
2623+
2624+ 引 数:char
2625+
2626+ 戻り値:int
2627+
2628+ 機 能:
2629+
2630+ マウスカーソルの表示、マウスの初期化などを行います。
2631+ 戻り値は、ch=3以外では、通常0、エラーの時は-1を返します。
2632+
2633+  ch…0= マウスの初期化
2634+ (右ボタン専有…ソフトキーボード使用可)
2635+   1= マウスカーソルを表示する
2636+   2= マウスカーソルを消す
2637+   3= マウスカーソルの表示状態を返す
2638+ (表示している…-1、表示していない…0)
2639+   4= マウスの初期化
2640+ (右ボタン開放…ソフトキーボード使用不可)
2641+
2642+ 用 例:
2643+
2644+
2645+{MSAREA MOUSE.FNC
2646+
2647+ 書 式:mousearea(x1,y1,x2,y2)
2648+
2649+ 引 数:int
2650+
2651+ 戻り値:int
2652+
2653+ 機 能:
2654+
2655+ マウスカーソルの移動範囲を指定します。
2656+ 範囲は表示画面サイズによって決まります。
2657+ 戻り値は通常0、エラーの時は-1を返します。
2658+
2659+   x1…始点X座標
2660+   y1…始点Y座標
2661+   x2…終点X座標
2662+   y2…終点Y座標
2663+
2664+ 用 例:
2665+
2666+
2667+{MSBTN MOUSE.FNC
2668+
2669+ 書 式:msbtn(n,b,t)
2670+
2671+ 引 数:char(n,b),int(t)
2672+
2673+ 戻り値:int
2674+
2675+ 機 能:
2676+
2677+ マウスボタンが指定された状態になるまでの時間を返します。
2678+ 戻り値は、0ならばドラッグされた事を示し、-1ならば指定された待ち時間の最大値tを越えた事を示します。
2679+
2680+   n…待つボタンの状態
2681+     0=ボタンが離されるまで
2682+     1=ボタンが押されるまで
2683+   b…ボタンの左右
2684+     0=左
2685+     1=右
2686+   t…待ち時間の最大値(0、1でずっと待つ)
2687+
2688+ 状態が変ればこれはリセットされます。
2689+
2690+ 用 例:
2691+
2692+
2693+{MSPOS MOUSE.FNC
2694+
2695+ 書 式:mspos(x,y)
2696+
2697+ 引 数:int型変数名
2698+
2699+ 戻り値:int
2700+
2701+ 機 能:
2702+
2703+ マウスカーソルの座標を int型変数x、yに返します。
2704+
2705+ 用 例:
2706+
2707+
2708+{MSSTAT MOUSE.FNC
2709+
2710+ 書 式:msstat(x,y,bl,br)
2711+
2712+ 引 数:int型変数名
2713+
2714+ 戻り値:int
2715+
2716+ 機 能:
2717+
2718+ マウスの状態を int型変数x、y、bl、brに返します。
2719+
2720+    x…X方向の相対移動量(-128〜127)
2721+    y…Y方向の相対移動量(-128〜127)
2722+   bl…左ボタンの状態
2723+     (押されていれば-1、押されていなければ0を返す)
2724+   br…右ボタンの状態
2725+     (押されていれば-1、押されていなければ0を返す)
2726+
2727+ 用 例:
2728+
2729+
2730+{M_ALLOC MUSIC.FNC
2731+
2732+ 書 式:m_alloc(t,s)
2733+
2734+ 引 数:char(t),int(s)
2735+
2736+ 戻り値:int
2737+
2738+ 機 能:
2739+
2740+ 指定されたトラックtのトラックバッファを確保します。
2741+ 同時に、トラック内のデータはクリアされます。
2742+
2743+ 戻り値として、正常の時は0、エラーの時は-1を返します。
2744+
2745+   t…トラック番号(1〜80)
2746+   s…トラックバッファのサイズ(1〜65536)
2747+
2748+ なお、総トラックバッファサイズ(それぞれのトラックに割り当てられているトラックバッファの総合計)は、CONFIG.SYSファイル内の OPMDRV.Xの後に指定して、再度システム起動することにより変更できます。
2749+ 何も指定しない場合は、約64KB の総トラックバッファが確保されます。
2750+
2751+   DEVICE = \SYS\OPMDRV.X #nnn
2752+    (nnn:総トラックバッファサイズ(単位:KB))
2753+
2754+
2755+{M_ASSIGN MUSIC.FNC
2756+
2757+ 書 式:m_assign(c,t)
2758+
2759+ 引 数:char
2760+
2761+ 戻り値:int
2762+
2763+ 機 能:
2764+
2765+ FM音源の指定されたチャンネルcに、トラックtを割りふります。
2766+
2767+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2768+
2769+   c…チャンネル番号(1〜8)
2770+   t…トラック番号(1〜80)
2771+
2772+ 複数のチャンネルに同一のトラックを割り当てると、それぞれ同じ楽譜データを演奏します。
2773+
2774+ また、複数のトラックを1つのチャンネルに割り当てると、最も新しく割り振られたトラックの楽譜データを演奏します。
2775+
2776+ デフォルト値は、チャンネル1からチャンネル8が、それぞれトラック1からトラック8に対応します。
2777+
2778+
2779+{M_CONT MUSIC.FNC
2780+
2781+ 書 式:
2782+ m_cont(【c1】【,c2】【,c3】【,c4】【,c5】【,c6】【,c7】【,c8】)
2783+
2784+ 引 数:char
2785+
2786+ 戻り値:int
2787+
2788+ 機 能:
2789+
2790+ c1からc8で指定されたチャンネルにおいて、一時停止した演奏を再開します。
2791+ チャンネルを全て省略すると、現在一時停止している全てのチャンネルの演奏を再開します。
2792+
2793+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2794+
2795+   → m_stop
2796+
2797+
2798+{M_FREE MUSIC.FNC
2799+
2800+ 書 式:m_free(t)
2801+
2802+ 引 数:char
2803+
2804+ 戻り値:int
2805+
2806+ 機 能:
2807+
2808+ 指定されたトラックtのトラックバッファの残りのバイト数を返します。
2809+
2810+   t…トラック番号(1〜80)
2811+
2812+
2813+{M_INIT 標準関数
2814+
2815+ 書 式:m_init
2816+
2817+ 機 能:
2818+
2819+ FM音源(トラックの楽譜データ、音色)を初期化します。
2820+
2821+
2822+{M_PLAY MUISC.FNC
2823+
2824+ 書 式:
2825+ m_Play(【c1】【,c2】【,c3】【,c4】【,c5】【,c6】【,c7】【,c8】)
2826+
2827+ 引 数:char
2828+
2829+ 戻り値:int
2830+
2831+ 機 能:
2832+
2833+ c1からc8で指定されたチャンネルに割り当てられたトラックの楽譜データを演奏します。
2834+ チャンネルを全て省略すると、全チャンネルを演奏します。
2835+
2836+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2837+
2838+ 用 例:
2839+
2840+
2841+{M_STAT MUSIC.FNC
2842+
2843+ 書 式:m_stat(c)
2844+
2845+ 引 数:char
2846+
2847+ 戻り値:int
2848+
2849+ 機 能:
2850+
2851+ 指定されたチャンネルcが、演奏中かどうか調べ、演奏中なら1、そうでなければ0を返します。
2852+
2853+ チャンネルcを省略すると、返されるバイト値のビット0〜ビット7がチャンネル1〜8に対応し、0なら停止中、1なら演奏中です。
2854+ また、エラーのときは-1を返します。
2855+
2856+   c…チャンネル番号(1〜8)
2857+
2858+ 用 例:
2859+
2860+
2861+{M_STOP MUSIC.FNC
2862+
2863+ 書 式:
2864+ m_stop(【c1】【,c2】【,c3】【,c4】【,c5】【,c6】【,c7】【,c8】)
2865+
2866+ 引 数:char
2867+
2868+ 戻り値:int
2869+
2870+ 機 能:
2871+
2872+ c1からc8で指定されたチャンネルの演奏を一時停止します。
2873+ チャンネルを全て省略すると、全チャンネルの演奏を一時停止します。
2874+
2875+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2876+
2877+   → m_cont
2878+
2879+ 用 例:
2880+
2881+
2882+{M_TEMPO MUSIC.FNC
2883+
2884+ 書 式:m_tempo(te)
2885+
2886+ 引 数:char
2887+
2888+ 戻り値:int
2889+
2890+ 機 能:
2891+
2892+ テンポteを1分間に4分音符を何拍打つかで指定します。
2893+ テンポteは32〜200の範囲です。
2894+
2895+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2896+
2897+ 用 例:
2898+
2899+
2900+{M_TRK MUSIC.FNC
2901+
2902+ 書 式:m_trk(t,st)
2903+
2904+ 引 数:char(t),str(st)
2905+
2906+ 戻り値:int
2907+
2908+ 機 能:
2909+
2910+ MML による楽譜データをトラックtに書き込みます。
2911+ 厳密にいうと、トラックtに楽譜データを追加していきます。
2912+
2913+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2914+
2915+    t…トラック番号(1〜80)
2916+   st…MML(ミュージックマクロランゲージ)データ
2917+
2918+
2919+{M_VGET MUSIC.FNC
2920+
2921+ 書 式:m_vget(vo,ca)
2922+
2923+ 引 数:char(vo),char型二次元(4,10)配列名(ca)
2924+
2925+ 戻り値:int
2926+
2927+ 機 能:
2928+
2929+ 配列caに格納されている音色データを指定された音色番号voのメモリバッファに登録します。
2930+
2931+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2932+
2933+  vo…音色番号(1〜200)。1〜68は、登録済み。
2934+  ca…音色データを格納する為の char型二次元配列名。
2935+     (配列の次元は(4,10))
2936+
2937+   → m_vset
2938+
2939+ 用 例:
2940+
2941+
2942+{M_VSET MUSIC.FNC
2943+
2944+ 書 式:m_vset(vo,ca)
2945+
2946+ 引 数:char(vo),char型二次元(4,10)配列名(ca)
2947+
2948+ 戻り値:int
2949+
2950+ 機 能:
2951+
2952+ 音色データを配列caに読み込みます。
2953+
2954+ 戻り値として、正常のときは0、エラーの時は-1を返します。
2955+
2956+  vo…音色番号(1〜200)。1〜68は、登録済み。
2957+  ca…音色データを格納する為の char型二次元配列名。
2958+     (配列の次元は(4,10))
2959+
2960+ 音色データの配列形式
2961+   0 1〜4(オペレータ)
2962+ 0 フィードバック/アルゴリズム(0〜63) AR (0〜31)
2963+ 1 スロットマスク(0〜15) D1R(0〜31)
2964+ 2 ウェーブフォーム(0〜3) D2R(0〜31)
2965+ 3 シンクロ(0、1) RR (0〜15)
2966+ 4 スピード(0〜255) D1L(0〜15)
2967+ 5 PMD(0〜127) TL (0〜127)
2968+ 6 AMD(0〜127) KS (0〜3)
2969+ 7 PMS(0〜7) MUL(0〜15)
2970+ 8 AMS(0〜3) DT1(0〜7)
2971+ 9 L,RPAN(0〜3) DT2(0〜3)
2972+ 10   AMSイネーブル(0、1)
2973+
2974+ なお、オペレータ1はM1(モジュレータ1)、オペレータ2はC1(キャリア1)、オペレータ3はM1(モジュレータ2)、およびオペレータ4はC2(キャリア2)に対応しています。
2975+
2976+   → m_vget
2977+
2978+
2979+{NAME コマンド
2980+
2981+ 書 式:
2982+ name "【ドライブ名】ファイル名1","ファイル名2"
2983+
2984+ 省略形:na.
2985+
2986+ 機 能:
2987+
2988+ 指定したドライブのファイル名ファイル名1をファイル名2に変更します。
2989+
2990+ ドライブ名、ファイル名の詳細については、「Human68kユーザーズマニュアル」を参照してください。
2991+
2992+ 用 例:name"a:\test.dat","a\test.bas"
2993+
2994+
2995+{NEW コマンド
2996+
2997+ 書 式:new
2998+
2999+ 機 能:
3000+
3001+ メモリにあるプログラムを消去し、すべての変数を初期化します。
3002+
3003+ new命令を実行すると、メモリにあるプログラムは全て消去され、定義されている変数も全て初期化されます。
3004+
3005+   → delete
3006+
3007+
3008+{OCT$ 標準関数
3009+
3010+ 書 式:oct$(i)
3011+
3012+ 引 数:int
3013+
3014+ 戻り値:str
3015+
3016+ 機 能:
3017+
3018+ 整数値iを8進表現の文字列に変換し返します。
3019+ なお、上位の"0"は取り除かれます。
3020+
3021+   → bin$、hex$
3022+
3023+ 用 例:
3024+
3025+
3026+{PAINT GRAPH.FNC
3027+
3028+ 書 式:paint(x,y,p)
3029+
3030+ 引 数:int
3031+
3032+ 戻り値:void
3033+
3034+ 機 能:
3035+
3036+ グラフィック画面上の任意の単色領域内を塗りつぶします。
3037+
3038+ window関数で指定されたクリッピングエリア外の領域は無視されます。
3039+
3040+   x…塗りつぶしたい領域内の1点のX座標
3041+   y…塗りつぶしたい領域内の1点のY座標
3042+   p…パレットコード(色)
3043+
3044+ x、yは、-32768から32767までの値をとることができます。
3045+
3046+ また、パレットコードp は0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
3047+
3048+ 用 例:
3049+
3050+
3051+{PALET GRAPH.FNC
3052+
3053+ 書 式:palet(p,c)
3054+
3055+ 引 数:int
3056+
3057+ 戻り値:void
3058+
3059+ 機 能:
3060+
3061+ グラフィック画面の各パレットにカラーコードcを割り当てます。
3062+
3063+   p…パレットコード(0〜255)
3064+   c…カラーコード(0〜65535)
3065+
3066+ このパレットコードpの最大値はグラフィック画面の実画面サイズおよび色モードによります。
3067+
3068+ なお、グラフィック画面の実画面サイズ及び色モードが512×512、65536色の場合は、パレットコードpとカラーコードcは1対1に対応し、同値として扱われるので、この palet関数は無効となります。
3069+ この場合パレットコードpは0から65535の値をとる事ができます。
3070+
3071+ 用 例:
3072+
3073+
3074+{PI 標準関数
3075+
3076+ 書 式:pi(【n】)
3077+
3078+ 引 数:float
3079+
3080+ 戻り値:float
3081+
3082+ 機 能:
3083+
3084+ 円周率のn倍を返します。
3085+ 数値nを省略すると n=1と見なされます。
3086+
3087+   n…倍数
3088+
3089+ 用 例:
3090+
3091+
3092+{POINT GRAPH.FNC
3093+
3094+ 書 式:point(x,y)
3095+
3096+ 引 数:int
3097+
3098+ 戻り値:int
3099+
3100+ 機 能:
3101+
3102+ グラフィック画面上のドットのパレットコードを返します。
3103+
3104+  x…ドットのX座標
3105+  y…ドットのY座標
3106+
3107+ x、yはwindow関数で指定されたクリッピングエリア内の値をとる事ができます。戻り値として、0から65535までのパレットコードを返します。
3108+ ただし、そのパレットコードの最大値はグラフィック画面の実画面サイズおよび色モードによります。
3109+
3110+ 用 例:
3111+
3112+
3113+{POS システム変数
3114+
3115+ 書 式:pos
3116+
3117+ 戻り値:int
3118+
3119+ 機 能:
3120+
3121+ テキスト画面の現在のカーソルの x座標を返します。代入する事はできません。
3122+
3123+ 用 例:
3124+
3125+
3126+{POW 標準関数
3127+
3128+ 書 式:Pow(n1,n2)
3129+
3130+ 引 数:float
3131+
3132+ 戻り値:float
3133+
3134+ 機 能:
3135+
3136+ 数値n1のn2乗の計算をします。
3137+ n1=0 かつ n2<0 の場合と、n1<0 かつ n2が整数でない場合は、エラーとなります。
3138+
3139+ 用 例:
3140+
3141+
3142+{PRINT ステートメント
3143+
3144+ 書 式:
3145+ 【l】print 【using 書式制御文字列】【式…】
3146+
3147+ 省略形:【l】p. または ?
3148+
3149+ 機 能:
3150+
3151+ テキスト画面に文字列や数値を表示します。
3152+
3153+ print命令に続けて数値や文字列を指定すると、その数値、文字列がテキスト画面に表示されます。
3154+ また、数値型変数や str型変数が指定されると、それらの変数に代入されている数値や文字列がテキスト画面に表示されます。
3155+
3156+ print命令だけを指定すると改行が行われます。
3157+
3158+ 数値を表示する場合、その後ろに必ず空白が1つ入ります。
3159+ また、数値の前には符号用の桁が用意され、プラス(+)の時には空白、マイナス(-)の時にはマイナス符号(-)が表示されます。
3160+
3161+ 複数のデータを表示する場合、それらの区切りとして、カンマ(,)、セミコロン(;)が使えます。
3162+ カンマを使うと print命令の後ろのデータはテキスト画面の一番左の列に表示され、8桁ごとに区切って表示されます。
3163+
3164+ 区切りにセミコロンを使うと print命令の後ろのデータがつながってテキスト画面に表示されます。
3165+ 一番最後のデータの後ろにセミコロンを置くと、つぎの print文のデータが前のデータにつながって表示されます。
3166+
3167+ lprint命令を使うと、テキスト画面の代りにプリンタに出力することができます。
3168+
3169+ print命令の省略形として疑問符(?)を使う事ができます。
3170+
3171+ print命令の後に、using と書式指定子を続けることによって、様々なフォーマットでデータを表示、出力することができます。
3172+
3173+ print using命令を使用した場合は、複数データを扱う事はできません。必ず、1つのデータになります。
3174+
3175+ 書式指定子
3176+
3177+ 1.数値型
3178+ # 表示する数値の桁数を指定します。数値の桁数が、指定された桁数より少なければ右詰めで表示、出力されます。
3179+ . 小数点の位置を指定します。はみ出す部分は四捨五入されます。
3180+ + - 正負の符号を付けます。負の符号は、#の列の後にのみ設定できます。
3181+ ** 空白の部分をアスタリスク(*)で埋めます。
3182+ \\ 空白の先頭に¥マークを付けます。
3183+ **\ 空白をアスタリスク(*)で埋め、先頭に¥マークを付けます。
3184+ ^^^^^ 数値を指数表現で表示、出力します。
3185+ , 3桁ごとにカンマ(,)をふります。
3186+
3187+ 2.文字型
3188+ ! 文字列の先頭の1文字のみを表示、出力します。
3189+ &(空白)& 文字列を&から&までの文字数分だけ表示、出力します。
3190+ @ 文字列をすべて表示、出力します。
3191+
3192+ 3.その他
3193+ _(アンダースコア) この後の書式指定子の1文字は、単なる文字として表示、出力します。書式指定子以外の文字があった場合は、そのまま表示、出力されます。
3194+
3195+
3196+ 用 例:
3197+
3198+
3199+{PSET GRAPH.FNC
3200+
3201+ 書 式:pset(x,y,p)
3202+
3203+ 引 数:int
3204+
3205+ 戻り値:void
3206+
3207+ 機 能:
3208+
3209+ グラフィック画面上にドットを表示します。
3210+
3211+   x…ドットのX座標
3212+   y…ドットのY座標
3213+   p…パレットコード(色)
3214+
3215+ x、yは、-32768から32767までの値をとることができます。クリッピングエリアについてはwindow関数で指定された範囲になります。
3216+
3217+ また、パレットコードpは0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
3218+
3219+ 用 例:
3220+
3221+
3222+{PUT GRAPH.FNC
3223+
3224+ 書 式:put(x1,y1,x2,y2,na)
3225+
3226+ 引 数:int(x1,y1,x2,y2),数値型一次元配列(na)
3227+
3228+ 戻り値:void
3229+
3230+ 機 能:
3231+
3232+ get関数で読み込んだドットパターンを指定された配列naから読み出してグラフィック画面の指定領域に表示します。
3233+
3234+   x1…始点X座標
3235+   y1…始点Y座標
3236+   x2…終点X座標
3237+   y2…終点Y座標
3238+   na…ドットパターンが格納されている数値型一次元配列名
3239+
3240+ x1、y1、x2、y2は、window関数で指定された範囲内の値をとることができます。
3241+
3242+ また、配列na内のデータ構造については、get関数を参照してください。
3243+
3244+ とくに、put関数を実行する前にあらかじめget関数で読み込んだときと同じグラフィック画面の実画面サイズおよび色モードにして、領域の大きさや配列naのデータ型、添字などは同じになるように指定してください。
3245+
3246+   → get
3247+
3248+ 用 例:
3249+
3250+
3251+{RAND 標準関数
3252+
3253+ 書 式:rand()
3254+
3255+ 戻り値:int
3256+
3257+ 機 能:
3258+
3259+ 0以上32767以内の整数型乱数を返します。
3260+
3261+   → randomise、rnd、srand
3262+
3263+ 用 例:
3264+
3265+
3266+{RANDOMIZE 標準関数
3267+
3268+ 書 式:randomize(i)
3269+
3270+ 引 数:int
3271+
3272+ 戻り値:void
3273+
3274+ 機 能:
3275+
3276+ rnd()関数の乱数系列を初期化します。
3277+
3278+   i…乱数のシード(-32768≦i≦32767)
3279+
3280+   → rand、rnd、srand
3281+
3282+ 用 例:
3283+
3284+
3285+{REM ステートメント
3286+
3287+ 書 式:/*【注釈文】
3288+
3289+ 機 能:
3290+
3291+ プログラム中に注釈を入れます。
3292+
3293+ /* に続く文字列は、プログラム中の注釈になるだけで、プログラムの実行にはまったく関係しません。
3294+ プログラムを見やすくする覚え書きとして使用して下さい。
3295+
3296+ 用 例:
3297+
3298+
3299+{RENUM コマンド
3300+
3301+ 書 式:
3302+ renum 【新行番号】【,旧行番号】【,増分】
3303+
3304+ 省略形:ren.
3305+
3306+ 機 能:
3307+
3308+ プログラムの行番号を付け直します。
3309+
3310+ 新行番号、増分とも、省略すると10が採用されます。
3311+ 旧行番号を指定しないと、そのプログラムの先頭から新しい行番号に変ります。
3312+ たとえば、
3313+
3314+ renum プログラム全体の行番号を付けかえます。新しい行番号は10から始まり、20、30…と付けられます。
3315+ renum 100,50 行番号50に新しい行番号として100が付けられ、以降110、120…と付け直されます。
3316+ renum 100,,100 プログラム全体の行番号を付けかえます。新しい行番号は100から始り、200、300…と付けられます。
3317+
3318+ renum命令は、goto命令、gosub命令、then節、else節などで使われている行番号は変更しません。
3319+
3320+
3321+{REPEAT〜UNTIL ステートメント
3322+
3323+ 書 式:
3324+ repeat
3325+  :
3326+ ループの内容
3327+  :
3328+ until 式
3329+
3330+ 機 能:
3331+
3332+ 式の値が真になるまで、指定されたループの内容を繰り返し(ループ)ます。
3333+
3334+ 繰り返しの終了判定はループの内容の実行後に行われます。
3335+ 少なくとも、1回はループの内容を実行します。
3336+
3337+ 用 例:
3338+
3339+
3340+{RGB GRAPH.FNC
3341+
3342+ 書 式:rgb(r,g,b)
3343+
3344+ 引 数:char
3345+
3346+ 戻り値:int
3347+
3348+ 機 能:
3349+
3350+ r(赤)、g(緑)、b(青)の成分を0〜31で選び、カラーコードを求めます。
3351+
3352+ なお、この rgb関数によって得られるカラーコードは、0〜65534までの偶数値になります。
3353+ したがって、それぞれの偶数値に1を加える事で0〜65535までのカラーコードを指定できます。
3354+
3355+ 用 例:
3356+
3357+
3358+{RIGHT$ 標準関数
3359+
3360+ 書 式:right$(st,i)
3361+
3362+ 引 数:str(st),int(i)
3363+
3364+ 戻り値:str
3365+
3366+ 機 能:
3367+
3368+ 文字列stの終わりから指定された文字数iの文字列を取り出して返します。
3369+
3370+   st…元の文字列(文字式)
3371+    i…取り出したい文字数
3372+
3373+ 文字数iは、1から255の値を取ります。
3374+
3375+ 指定された文字数iが、文字列stの総文字数より多い時は、文字列stをそのまま取り出して返します。
3376+
3377+ 指定された文字数iが、0または負の場合は null文字を返します。
3378+
3379+   → left$、mid$
3380+
3381+ 用 例:
3382+
3383+
3384+{RND 標準関数
3385+
3386+ 書 式:rnd()
3387+
3388+ 戻り値:float
3389+
3390+ 機 能:
3391+
3392+ 0以上1未満の実数型乱数を返します。
3393+
3394+   → rand、randomize、srand
3395+
3396+ 用 例:
3397+
3398+
3399+{RUN コマンド
3400+
3401+ 書 式:
3402+ run 【行番号】
3403+
3404+ または
3405+
3406+ run "【ドライブ名】ファイル名"
3407+
3408+ 省略形:r.
3409+
3410+ 機 能:
3411+
3412+ メモリにあるプログラムを実行します。
3413+
3414+ 行番号を省略すると、先頭行からプログラムを実行します。
3415+
3416+ ドライブ名、ファイル名が指定された時は、指定されたファイルをロードして実行します。
3417+
3418+ ドライブ名、ファイル名については、「Human68kユーザーズマニュアル」を参照して下さい。
3419+
3420+ 途中でプログラムの実行を中止したい時は、CTRL+Cキーまたは BREAKキーを押します。
3421+
3422+
3423+{SAVE コマンド
3424+
3425+ 書 式:
3426+ save【@】"【ドライブ名】ファイル名"
3427+
3428+ 省略形:sa.
3429+
3430+ 機 能:
3431+
3432+ メモリ上のBASICプログラムをセーブします。
3433+
3434+ saveではプログラムをアスキー形式でセーブします。
3435+ セーブされる行番号の範囲は、list命令と同様に行われます。
3436+
3437+ save@は、行番号を省略した形でプログラムがセーブされます。
3438+
3439+ ドライブ名、ファイル名については、『Human68kユーザーズマニュアル』を参照して下さい。
3440+
3441+   → load
3442+
3443+ 用 例:
3444+
3445+
3446+{SCREEN ステートメント
3447+
3448+ 書 式:
3449+ screen 【表示画面サイズ】,【グラフィック画面の実画面サイズ及び色モード】,ディスプレイ解像度【,グラフィック画面の表示ON/OFF】
3450+
3451+ 省略形:sc.
3452+
3453+ 機 能:
3454+
3455+ 画面全体(テキスト画面、グラフィック画面、スプライト画面)のスクリーンモードを設定します。
3456+
3457+ 表示画面サイズ
3458+  0…256×256
3459+  1…512×512
3460+  2…768×512
3461+   (ディスプレイ解像度が1(高解像度モード)の時のみ有効)
3462+
3463+ ただし、表示画面サイズが768×512以外のときにのみ、スプライト画面は使用できます。
3464+ また、表示画面サイズが768×512のときは、グラフィック画面の実画面サイズ及び色モードは、0しか設定できません。
3465+
3466+ グラフィック画面の実画面サイズ及び色モード
3467+ (使用可能なグラフィックページ)
3468+  0…1024×1024、16色(グラフィックページ0)
3469+  1…512×512、16色(グラフィックページ0〜3)
3470+  2…512×512、256色(グラフィックページ0、1)
3471+  3…512×512、65536色(グラフィックページ0)
3472+
3473+ ただし、グラフィック画面の実画面サイズ及び色モードが0以外のときは、表示画面サイズは0または1しか設定できません。
3474+
3475+ ディスプレイ解像度
3476+  0…Low(標準解像度)
3477+  1…High(高解像度)
3478+
3479+ ただし、screen,,0はディスプレイ解像度のみをLowに設定し、screen,,1はディスプレイ解像度のみをHighに設定します。
3480+ この場合、グラフィックRAMのデータは保存されたままです。
3481+ ディスプレイ解像度がLowのときは表示画面サイズで768×512は使用できません。
3482+
3483+ グラフィック画面の表示ON/OFF
3484+  0…表示OFF(グラフィック関数使用不可)
3485+   グラフィックRAMをグラフィック以外の目的で使用する場合に設定して下さい。
3486+  1…表示ON(グラフィック関数使用可)
3487+   グラフィックRAMをグラフィック関数などで使用する場合に設定して下さい。
3488+
3489+ なお、一旦グラフィック画面の表示ON/OFFを1に設定するとすべてのグラフィックRAMのデータは消去されます。
3490+ 特にグラフィックRAMをRAMディスクとして使用している場合は、RAMディスクが破壊されますので、あらかじめRAMディスクのデータをディスクなどにセーブしてください。
3491+
3492+ screen命令実行後、window関数(グラフィック画面のクリッピングエリア)は表示画面サイズに、home関数(グラフィック画面の実画面における表示画面の左上座標)は(0,0)に再設定されます。
3493+ また、テキスト画面は、通常表示ON、スプライト画面及びグラフィック画面は表示OFFです。
3494+
3495+ グラフィック関数を使用する場合は、必ず最初に screen命令で初期化を行ってください。
3496+
3497+
3498+{SEARCH コマンド
3499+
3500+ 書 式:【l】search "検索文字列"
3501+
3502+ 省略形:【l】se.
3503+
3504+ 機 能:
3505+
3506+ 指定した検索文字列を含むプログラム行をすべて表示します。
3507+
3508+ lsearch命令を使用すれば、プリンタに出力できます。
3509+
3510+ 用 例:search "X68"
3511+
3512+
3513+{SETMSPOS MOUSE.FNC
3514+
3515+ 書 式:setmspos(x,y)
3516+
3517+ 引 数:int
3518+
3519+ 戻り値:int
3520+
3521+ 機 能:
3522+
3523+ マウスカーソルの位置を指定します。
3524+ 範囲は、msarea関数によって指定された範囲です。
3525+ 戻り値として、エラーのとき-1を返します。
3526+
3527+ 用 例:
3528+
3529+
3530+{SGN 標準関数
3531+
3532+ 書 式:sgn(n)
3533+
3534+ 引 数:float
3535+
3536+ 戻り値:float
3537+
3538+ 機 能:
3539+
3540+ 数値nの符号を調べ、正の数だったら1を、nが0の場合は0を、負の数だったら-1を返します。
3541+
3542+ 用 例:
3543+
3544+
3545+{SIN 標準関数
3546+
3547+ 書 式:sin(n)
3548+
3549+ 引 数:float
3550+
3551+ 戻り値:float
3552+
3553+ 機 能:
3554+
3555+ 数値n(ラジアン)の正弦(サイン)を返します。
3556+
3557+ 用 例:
3558+
3559+
3560+{SPACE$ 標準関数
3561+
3562+ 書 式:space$(i)
3563+
3564+ 引 数:int
3565+
3566+ 戻り値:str
3567+
3568+ 機 能:
3569+
3570+ 長さi文字の空白文字(&20H")からなる文字列を返します。
3571+
3572+ 長さiは1から255の値をとり、0または負の場合には null文字を返します。
3573+
3574+ 用 例:
3575+
3576+
3577+{SP_CLR SPRITE.FNC
3578+
3579+ 書 式:sp_clr(【cd1】【,cd2】)
3580+
3581+ 引 数:char
3582+
3583+ 戻り値:int
3584+
3585+ 機 能:
3586+
3587+ パターンコードcd1からパターンコードcd2で指定した範囲のスプライトやバックグラウンドのパターンを初期化します。
3588+
3589+ パターンコードcd1を省略した場合は、パターンコード0からパターンコードcd2までのパターンを初期化します。
3590+
3591+ パターンコードcd2を省略した場合は、パターンコードcd1で指定したパターンだけ、またパターンコードcd1、cd2とも省略した場合は全パターン(0〜255)が初期化されます。
3592+
3593+   cd1、cd2…パターンコード(0〜255)
3594+
3595+
3596+{SP_COLOR SPRITE.FNC
3597+
3598+ 書 式:sp_color(p,c【,pd】)
3599+
3600+ 引 数:char(p,pd),int(c)
3601+
3602+ 戻り値:int
3603+
3604+ 機 能:
3605+
3606+ スプライトやバックグラウンドのパターン単位にパレットブロックpdを指定し、そのパターンのドット単位に(各パターンにおけるパレットブロックpdの中から)パレットコードpを設定し、そのパレットにカラーコードcを割り当てます。
3607+
3608+ なお、パレットブロックpdを省略したときは、パレットブロック1と見なされます。
3609+
3610+ パレットコード0には透明を設定して下さい。
3611+
3612+ 戻り値として、指定されたパレットコードpに対する設定前のカラーコードを返します。
3613+
3614+  p …パレットコード(0〜15)
3615+  c …カラーコード(0〜65536)
3616+  pd…パレットブロック(1〜15)
3617+
3618+
3619+{SP_DEF SPRITE.FNC
3620+
3621+ 書 式:sp_def(cd,ca【,sz】)
3622+
3623+ 引 数:
3624+ char(cd,sz),char型一次元(255または63)配列名(ca)
3625+
3626+ 戻り値:int
3627+
3628+ 機 能:
3629+
3630+ スプライトやバックグラウンドのパターンを定義します。
3631+
3632+  cd… パターンコード(0〜255)
3633+  ca… スプライトやバックグラウンドのパターンのデータが格納されているchar型一次元配列名、要素数256(sz=1のとき)または64(sz=0のとき)
3634+  sz… パターンサイズ(0、1)
3635+
3636+ パターンサイズszが1の場合、定義できるパターンは16×16ドットで、1ドットにつき配列caの1要素を使用します。
3637+ 0番目の要素がパターンの左上端のドット、15番目の要素がパターンの右上端のドットに対応します。
3638+ この場合の配列caの要素数は256になります。
3639+
3640+ 16×16ドットのパターンが使用されるのは、スプライトのパターンや表示画面サイズが512×512の場合のバックグラウンドのパターンを定義するときです。
3641+
3642+ また、パターンサイズszが1のとき、バックグラウンドのテキストページ1しか使用しない場合のパターンコードcdは0から191までの値をとることができ、テキストページ0、1とも使用する場合のパターンコードcdは0から127までの値をとることができます。
3643+ バックグラウンドのテキストページ0、1とも使用しない(バックグラウンドを使用しない)場合のパターンコードcdは0から255までの値をとる事ができます。
3644+
3645+ パターンサイズszが0の場合、定義できるパターンは8×8ドットで、1ドットにつき配列caの1要素を使用します。
3646+ 0番目の要素がパターンの左上端のドット、7番目の要素がパターンの右上端のドットに対応します。
3647+ この場合の配列caの要素数は64になります。
3648+
3649+ 8×8ドットのパターンが使用されるのは表示画面サイズが256×256の場合のバックグラウンドのパターンを定義するときです。
3650+
3651+ パターンサイズszが1のとき、パターンコードn というパターンが定義されていたとします。
3652+ この16×16ドットのパターンと同じものを定義するためには、パターンサイズszが0のとき、4つのパターンコードが必要になります。
3653+ この4つのパターンコードには、16×16ドットのパターンの内、左上の8×8ドットのパターンが、パターンコード4nに、左下の8×8ドットのパターンがパターンコード4n+1、以下同様に右上が4n+2、右下が4n+3に対応します。
3654+ ただし、パターンサイズszが0のときでも定義できるパターンの最大数は256です。
3655+
3656+ なお、パターンサイズszを省略すると、パターンサイズszは1と見なされます。また、1ドットのデータは4ビットでこの値がそのドットのパレットコードp となります。
3657+
3658+   → sp_pat
3659+
3660+ 用 例:
3661+
3662+
3663+{SP_DISP SPRITE.FNC
3664+
3665+ 書 式:sp_disp(ch)
3666+
3667+ 引 数:char
3668+
3669+ 戻り値:int
3670+
3671+ 機 能:
3672+
3673+ スプライト画面(スプライトやバックグラウンド)の表示の設定をします。
3674+
3675+ なお、スプライト画面は表示画面サイズが768×512以外のとき使用できます。
3676+
3677+  ch… 0=スプライト画面を表示しない
3678+   1=スプライト画面を表示する
3679+
3680+
3681+{SP_INIT SPRITE.FNC
3682+
3683+ 書 式:sp_init()
3684+
3685+ 戻り値:int
3686+
3687+ 機 能:
3688+
3689+ スプライト画面(スプライトやバックグラウンド)を初期化します。
3690+ 初期化するものは、各パターンやパレットなどです。
3691+
3692+ なお、スプライト画面は表示画面サイズが768×512以外のとき使用できます。
3693+
3694+
3695+{SP_MOVE SPRITE.FNC
3696+
3697+ 書 式:sp_move(s,【x】,【y】【,cd】)
3698+
3699+ 引 数:char(s,cd),int(x,y)
3700+
3701+ 戻り値:int
3702+
3703+ 機 能:
3704+
3705+ パターンコードcdのスプライトパターンをプレーンsに割り当て、指定された座標位置にそのスプライトを表示します。
3706+
3707+  s …プレーン(0〜127)
3708+  x …X座標(-16〜1007)
3709+  y …Y座標(-16〜1007)
3710+  cd…パターンコード(0〜255)
3711+
3712+ 表示画面の左上座標は、sp_set と異なり、(0,0)になります。
3713+
3714+ sp_move は sp_setのパラメータの一部を標準的な値に設定した関数です。
3715+ つまり、垂直・水平反転は通常、パレットブロックは1、優先度は3に、自動的に設定されます。
3716+
3717+ より高度な使い方をする場合は、sp_setを使用してください。
3718+
3719+ バックグラウンドのテキストページ1しか使用しない場合のパターンコードcdは16×16ドットパターンの場合0から191までの値をとる事が出来ます。
3720+
3721+ テキストページ0、1とも使用する場合のパターンコードcdは16×16ドットパターンの場合0から127までの値をとる事が出来ます。
3722+
3723+ テキストページ0、1とも使用しない(バックグラウンドを使用しない)場合のパターンコードcdは16×16ドットパターンの場合0から255までの値をとる事が出来ます。
3724+
3725+   → sp_set
3726+
3727+ 用 例:
3728+
3729+
3730+{SP_OFF SPRITE.FNC
3731+
3732+ 書 式:sp_off(【s1】【,s2】)
3733+
3734+ 引 数:char
3735+
3736+ 戻り値:int
3737+
3738+ 機 能:
3739+
3740+ プレーンs1からプレーンs2で指定した範囲のスプライトが表示されません。
3741+
3742+ プレーンs1を省略した場合は、プレーン0からプレーンs2までのスプライトが表示されません。
3743+
3744+ プレーンs2を省略した場合は、プレーンs1で指定したスプライトだけ、またプレーンs1、s2とも省略した場合は全スプライト(プレーン0〜127)が表示されません。
3745+
3746+   s1、s2…プレーン(0〜127)
3747+
3748+
3749+{SP_ON SPRITE.FNC
3750+
3751+ 書 式:sp_on(【s1】【,s2】)
3752+
3753+ 引 数:char
3754+
3755+ 戻り値:int
3756+
3757+ 機 能:
3758+
3759+ プレーンs1からプレーンs2で指定した範囲のスプライトが表示されます。
3760+
3761+ プレーンs1を省略した場合は、プレーン0からプレーンs2までのスプライトが表示されます。
3762+
3763+ プレーンs2を省略した場合は、プレーンs1で指定したスプライトだけ、またプレーンs1、s2とも省略した場合は全スプライト(プレーン0〜127)が表示されます。
3764+
3765+   s1、s2…プレーン(0〜127)
3766+
3767+
3768+{SP_PAT SPRITE.FNC
3769+
3770+ 書 式:sp_pat(cd,ca【,sz】)
3771+
3772+ 引 数:char(cd,sz),char型一次元(255または63)配列名(ca)
3773+
3774+ 戻り値:int
3775+
3776+ 機 能:
3777+
3778+ スプライトやバックグラウンドのパターンのデータを、指定された配列caに読み出します。
3779+
3780+  cd… パターンコード(0〜255)
3781+  ca… スプライトやバックグラウンドのパターンのデータを格納するchar型一次元配列名、要素数256(sz=1の時)または64(sz=0の時)
3782+  sz… パターンサイズ(0,1)
3783+
3784+ 読み出されたパターンのデータの詳細や、パターンコードcdや配列ca、パターンサイズszの詳細については、sp_def関数を参照して下さい。
3785+
3786+   → sp_def
3787+
3788+ 用 例:
3789+
3790+
3791+{SP_SET SPRITE.FNC
3792+
3793+ 書 式:sp_set(s,【x】,【y】,【pd】【,pr】)
3794+
3795+ 引 数:char(s,pr),int(x,y,pd)
3796+
3797+ 戻り値:int
3798+
3799+ 機 能:
3800+
3801+ パターンコードcdのスプライトパターンをプレーンsに割り当て、指定された座標位置にそのスプライトを表示します。
3802+
3803+  s …プレーン(0〜127)
3804+  x …X座標(0〜1023)
3805+  y …Y座標(0〜1023)
3806+  pd…パターンデータ(0〜&HCFFF)
3807+  pr…優先度(0〜3)
3808+
3809+ 表示画面の左上座標は(16,16)になります。
3810+
3811+ パターンデータpdは、次のようなビット構成になっています。
3812+ (ビット12、13は通常0になります)
3813+
3814+  ビット15…垂直反転(0:通常、1:垂直反転)
3815+  ビット14…水平反転(0:通常、1:水平反転)
3816+  ビット8〜11…パレットブロックpb(1〜15)
3817+  ビット0〜7…パターンコードcd(0〜255)
3818+
3819+ テキストページ1しか使用しない場合のパターンコードcdは16×16ドットパターンの場合0から191までの値をとる事が出来ます。
3820+
3821+ テキストページ0、1とも使用する場合のパターンコードcdは16×16ドットパターンの場合0から127までの値をとる事が出来ます。
3822+
3823+ テキストページ0、1とも使用しない(バックグラウンドを使用しない)場合のパターンコードcdは16×16ドットパターンの場合0から255までの値をとる事が出来ます。
3824+
3825+ 優先度prは、指定する値によってスプライトとバックグラウンド0、1の表示優先順位を次のように設定します。
3826+
3827+  0… スプライトは表示されない
3828+  1… バックグラウンド0 > バックグラウンド1 > スプライト
3829+  2… バックグラウンド0 > スプライト > バックグラウンド1
3830+  3… スプライト > バックグラウンド0 > バックグラウンド1
3831+
3832+ なお、ここでは左側にあるほど重なった時の表示は優先される事を意味しています。
3833+
3834+   → sp_stat
3835+
3836+
3837+{SP_STAT SPRITE.FNC
3838+
3839+ 書 式:sp_stat(s,md)
3840+
3841+ 引 数:char
3842+
3843+ 戻り値:int
3844+
3845+ 機 能:
3846+
3847+ 指定されたスプライトの状態を読み出します。
3848+
3849+  s …プレーン(0〜127)
3850+  md…(0〜3)
3851+
3852+ モードmdには読み出す内容を指定します。
3853+
3854+  0=X座標(0〜1023)
3855+  1=Y座標(0〜1023)
3856+  2=パターンデータpd(0〜&HCFFF)
3857+  3=優先度pr(0〜3)
3858+
3859+ モードmdで2や3を指定した時に読み出された内容(パターンデータpdや、優先度prなど)の詳細については、sp_set関数を参照して下さい。
3860+
3861+   → sp_set
3862+
3863+
3864+{SQR 標準関数
3865+
3866+ 書 式:sqr(n)
3867+
3868+ 引 数:float
3869+
3870+ 戻り値:float
3871+
3872+ 機 能:
3873+
3874+ 数値nの平方根(ルート)を返します。
3875+ n≧0でなければなりません。
3876+
3877+
3878+ 用 例:
3879+
3880+
3881+{SRAND 標準関数
3882+
3883+ 書 式:srand(i)
3884+
3885+ 引 数:int
3886+
3887+ 戻り値:void
3888+
3889+ 機 能:
3890+
3891+ rand関数の乱数系列を初期化します。
3892+
3893+  i…乱数のシード(0≦i≦65535)
3894+
3895+   → rand、randomize、rnd
3896+
3897+ 用 例:
3898+
3899+
3900+{STICK STICK.FNC
3901+
3902+ 書 式:stick(j)
3903+
3904+ 引 数:int
3905+
3906+ 戻り値:int
3907+
3908+ 機 能:
3909+
3910+ ジョイスティックjの状態を調べます。
3911+
3912+  j…1=ジョイスティック1
3913+    2=ジョイスティック2
3914+
3915+ 戻り値は次のようになります。
3916+
3917+   7(左上) 8(上) 9(右上)
3918+  \  |  /  
3919+   4(右) − 0(中) −6(左)
3920+   /  | \  
3921+   1(左下)  2(下) 3(右下)
3922+
3923+ 用 例:
3924+
3925+
3926+{STOP ステートメント
3927+
3928+ 書 式:stop
3929+
3930+ 機 能:
3931+
3932+ プログラムの実行を停止します。
3933+
3934+ プログラムの実行を停止して、直接命令が入力できる状態にします。
3935+ stop命令はプログラム内のどこに置いても構いません。
3936+
3937+ プログラムを再開するには cont命令を実行します。
3938+
3939+   → cont
3940+
3941+ 用 例:
3942+
3943+
3944+{STR ステートメント
3945+
3946+ 書 式:
3947+ str 変数名【[文字バッファのサイズ]】【=文字定数式】【,…】
3948+
3949+ 機 能:
3950+
3951+ 変数を文字(str)型として宣言します。同時に文字列を代入する事もできます。
3952+
3953+ また、文字バッファのサイズを1〜255の範囲で設定できます。
3954+ 文字バッファのサイズを指定しない場合は32文字とみなされます。
3955+
3956+ str型変数および定数は、常にキャラクターコードが0で終っています。
3957+
3958+ 原則として、変数宣言はメインプログラムの先頭で行ってください。
3959+ また、同じ名前の変数をメインプログラム中で再宣言する事はできません。
3960+
3961+   → char、float、int
3962+
3963+ 用 例:
3964+
3965+
3966+{STR$ 標準関数
3967+
3968+ 書 式:str$(n)
3969+
3970+ 引 数:float
3971+
3972+ 戻り値:str
3973+
3974+ 機 能:
3975+
3976+ 浮動小数値nを文字列に変換して返します。
3977+
3978+   → val
3979+
3980+ 用 例:
3981+
3982+
3983+{STRCHR 標準関数
3984+
3985+ 書 式:strchr(st,ch)
3986+
3987+ 引 数:str(st),char(ch)
3988+
3989+ 戻り値:int
3990+
3991+ 機 能:
3992+
3993+ 文字列stの中で最初にキャラクターコードchの文字を見つけた位置を返します。
3994+
3995+ 位置は文字列stの先頭が0になります。
3996+ 見付からなかった場合は、-1を返します。
3997+
3998+ キャラクターコードchは、0から255の値を取ります。
3999+
4000+ 用 例:
4001+
4002+
4003+{STRCSPN 標準関数
4004+
4005+ 書 式:strcspn(st1,st2)
4006+
4007+ 引 数:str
4008+
4009+ 戻り値:int
4010+
4011+ 機 能:
4012+
4013+ 文字列st2中のどれか1文字を文字列st1の中で最初に見つけた位置を返します。
4014+
4015+ 位置は文字列st1の先頭が0になります。見つからなかった場合は、文字列st1の長さを返します。
4016+
4017+ 文字列st2が null文字の場合も、文字列st1の長さを返します。また文字列st1が null文字の場合は0を返します。
4018+
4019+ 用 例:
4020+
4021+
4022+{STRIG STICK.FNC
4023+
4024+ 書 式:strig(j)
4025+
4026+ 引 数:int
4027+
4028+ 戻り値:int
4029+
4030+ 機 能:
4031+
4032+ ジョイスティックjのトリガーボタンの状態を調べます。
4033+
4034+  j… 1=ジョイスティック1
4035+   2=ジョイスティック2
4036+
4037+ 戻り値は次のようになります。
4038+
4039+  0…トリガーA、Bとも押されていない
4040+  1…トリガーAのみ押されている
4041+  2…トリガーBのみ押されている
4042+  3…トリガーA、Bとも押されている
4043+
4044+ 用 例:
4045+
4046+
4047+{STRING$ 標準関数
4048+
4049+ 書 式:string$(i,st)
4050+
4051+ 引 数:int(i),str(st)
4052+
4053+ 戻り値:str
4054+
4055+ 機 能:
4056+
4057+ 文字列stの先頭1文字だけでできた、長さi文字の文字列を返します。
4058+
4059+ 長さiは1から255の値をとり、0または負の場合には null文字を返します。
4060+
4061+ 用 例:
4062+
4063+
4064+{STRLEN(LEN) 標準関数
4065+
4066+ 書 式:
4067+ strlen(st)
4068+ len(st)
4069+
4070+ 引 数:str
4071+
4072+ 戻り値:int
4073+
4074+ 機 能:
4075+
4076+ 文字列stの長さ(0〜255)を返します。
4077+ 文字列stが null文字の場合は0を返します。
4078+
4079+ 用 例:
4080+
4081+
4082+{STRLWR 標準関数
4083+
4084+ 書 式:strlwr(st)
4085+
4086+ 引 数:str型変数名
4087+
4088+ 戻り値:str
4089+
4090+ 機 能:
4091+
4092+ str型変数stの中の英大文字を全て英小文字に変換します。
4093+
4094+ 用 例:
4095+
4096+
4097+{STRNSET 標準関数
4098+
4099+ 書 式:strnset(st,ch,i)
4100+
4101+ 引 数:str型変数名(st),char(ch),int(i)
4102+
4103+ 戻り値:str
4104+
4105+ 機 能:
4106+
4107+ str型変数stの先頭から文字数i分をキャラクターコードchの文字に変換します。
4108+ キャラクターコードchは、0から255の値をとります。
4109+ 文字iが0または負の時はstr型変数stの内容は変わりません。
4110+
4111+ 用 例:
4112+
4113+
4114+{STRRCHR 標準関数
4115+
4116+ 書 式:strrchr(st,ch)
4117+
4118+ 引 数:str(st),char(ch)
4119+
4120+ 戻り値:int
4121+
4122+ 機 能:
4123+
4124+ 文字列stの中でキャラクターコードchの文字が最後に見つからなかった位置を返します。位置は文字列stの先頭が0になります。
4125+ 先頭でしか見つからなかった場合は0、全く見付からなかった場合は-1を返します。
4126+ キャラクターコードchは、0から255の値をとります。
4127+
4128+ 用 例:
4129+
4130+
4131+{STRREV 標準関数
4132+
4133+ 書 式:strrev(st)
4134+
4135+ 引 数:str型変数名
4136+
4137+ 戻り値:str
4138+
4139+ 機 能:
4140+
4141+ str型変数stの並びを逆転します。
4142+
4143+ 用 例:
4144+
4145+
4146+{STRSET 標準関数
4147+
4148+ 書 式:strset(st,ch)
4149+
4150+ 引 数:str型変数名(st),char(ch)
4151+
4152+ 戻り値:str
4153+
4154+ 機 能:
4155+
4156+ str型変数stの全ての文字を、キャラクターコードchの文字に変換します。
4157+ キャラクターコードchは、0から255の値をとります。
4158+
4159+ 用 例:
4160+
4161+
4162+{STRSPN 標準関数
4163+
4164+ 書 式:strspn(st1,st2)
4165+
4166+ 引 数:str
4167+
4168+ 戻り値:int
4169+
4170+ 機 能:
4171+
4172+ 文字列st2に属さない文字を、文字列st1の中で最初に見つけた位置を返します。位置は文字列st1の先頭が0になります。
4173+
4174+ 見付からなかった場合は、文字列st1の長さを返します。
4175+ また、文字列st1あるいは文字列st2が null文字の場合は0を返します。
4176+
4177+ 用 例:
4178+
4179+
4180+{STRTOK 標準関数
4181+
4182+ 書 式:strtok(st1,st2)
4183+
4184+ 引 数:str
4185+
4186+ 戻り値:str
4187+
4188+ 機 能:
4189+
4190+ 文字列st2に含まれる文字(どれか1文字)を文字列st1の中から探し、見付かれば先頭からその位置までの文字列を返します。
4191+
4192+ 最初の strtok関数の実行の場合は、文字列st1の先頭に文字列st2に含まれる文字があっても無視します。続いて、文字列st1を null文字にして strtok関数を実行すると次に文字列st2に含まれる文字が見付かった所までの文字列を返します。
4193+
4194+ 文字列st2に含まれる文字が見付からなくなると、null文字を返します。
4195+ 文字列st2が、null文字場合は、文字列st1をそのまま返します。
4196+
4197+ 用 例:
4198+
4199+
4200+{STRUPR 標準関数
4201+
4202+ 書 式:strupr(st)
4203+
4204+ 引 数:str型変数名
4205+
4206+ 戻り値:str
4207+
4208+ 機 能:
4209+
4210+ str型変数stの英小文字を全て英大文字に変換します。
4211+
4212+ 用 例:
4213+
4214+
4215+{SWITCH〜CASE〜DEFAULT〜ENDSWITCH ステートメント
4216+
4217+ 書 式:−
4218+
4219+ switch 式0
4220+  case 式1:文1
4221+  case 式2:文2
4222+  :
4223+  :
4224+  case 式n:文n
4225+  【default:文d】
4226+ endswitch
4227+
4228+ 機 能:
4229+
4230+ 式0と同じ値をもつcaseの式nの後の文nを実行します。
4231+
4232+ 式0と同じ値をもつcaseの式nがなくてdefaultがある場合は、文dを実行してから、endswitch以後の命令文に進みます。
4233+
4234+ defaultがなければendswitch以後の命令文に進みます。
4235+
4236+ caseの式nの中には、整数及び文字定数のみ入ります。
4237+
4238+ 用 例:
4239+
4240+
4241+{SYMBOL GRAPH.FNC
4242+
4243+ 書 式:symbol(x,y,st,h,v,mo,p,an)
4244+
4245+ 引 数:int(x,y,p),str(st),char(h,v,mo,an)
4246+
4247+ 戻り値:void
4248+
4249+ 機 能:
4250+
4251+ グラフィック画面上に文字列を表示します。
4252+
4253+    x…始点X座標
4254+    y…始点Y座標
4255+   st…文字列(文字式)
4256+    h…横方向の倍率(1〜255)
4257+    v…縦方向の倍率(1〜255)
4258+   mo…文字フォントの種類
4259+      (半角)(全角)
4260+     0…6×12 、12×12
4261+     0…8×16 、16×16
4262+     0…12×24、24×24
4263+    p…パレットコード(色)
4264+   an…回転角度(0〜3、ただし90度単位)
4265+
4266+ x、yは、-32768から32767までの値をとることができます。クリッピングエリアについてはwindow関数で指定された範囲になります。
4267+
4268+ また、パレットコードpは0から65535までの値をとることができ、その最大値はグラフィック画面の実画面サイズおよび色モードによります。
4269+
4270+ 用 例:
4271+
4272+
4273+{SYSTEM コマンド
4274+
4275+ 書 式:system
4276+
4277+ 省略形:sys.
4278+
4279+ 機 能:
4280+
4281+ 親プロセスに制御を戻します。プログラム中では使用できません。プログラム中で使用する場合は、exit命令を使用してください。
4282+
4283+
4284+{TAN 標準関数
4285+
4286+ 書 式:tan(n)
4287+
4288+ 引 数:float
4289+
4290+ 戻り値:float
4291+
4292+ 機 能:
4293+
4294+ 数値n(ラジアン)の正接(タンジェント)を返します。
4295+
4296+ 用 例:
4297+
4298+
4299+{TIME$ システム変数
4300+
4301+ 書 式:time$
4302+
4303+ 引 数:str
4304+
4305+ 戻り値:str
4306+
4307+ 機 能:
4308+
4309+ 現在の時刻を文字列として返します。
4310+ 代入する事によって時刻を設定できます。
4311+
4312+ 用 例:
4313+
4314+
4315+{TOASCII 標準関数
4316+
4317+ 書 式:toascii(ch)
4318+
4319+ 引 数:char
4320+
4321+ 戻り値:int
4322+
4323+ 機 能:
4324+
4325+ キャラクターコードchの文字が非アスキー文字(&H80〜&HFF)であればアスキー文字(&H00〜&H7F)に変換して返します。
4326+
4327+ キャラクターコードchには0から255の値が入り、戻り値もその範囲のキャラクターコードを返します。
4328+
4329+ 非アスキー文字以外の場合はそのままのキャラクターコードを返します。
4330+
4331+ 用 例:
4332+
4333+
4334+{TOLOWER 標準関数
4335+
4336+ 書 式:tolower(ch)
4337+
4338+ 引 数:char
4339+
4340+ 戻り値:int
4341+
4342+ 機 能:
4343+
4344+ キャラクターコードchの文字が英大文字('A'〜'Z')であれば英小文字('a'〜'z')に変換して返します。
4345+
4346+ キャラクターコードchには0から255の値が入り、戻り値もその範囲のキャラクターコードを返します。
4347+
4348+ 英大文字以外の場合はそのままのキャラクターコードを返します。
4349+
4350+ 用 例:
4351+
4352+
4353+{TOUPPER 標準関数
4354+
4355+ 書 式:toupper(ch)
4356+
4357+ 引 数:char
4358+
4359+ 戻り値:int
4360+
4361+ 機 能:
4362+
4363+ キャラクターコードchの文字が英小文字('a'〜'z')であれば英大文字('A'〜'Z')に変換して返します。
4364+
4365+ キャラクターコードchには0から255の値が入り、戻り値もその範囲のキャラクターコードを返します。
4366+
4367+ 英小文字以外の場合はそのままのキャラクターコードを返します。
4368+
4369+ 用 例:
4370+
4371+
4372+{VAL 標準関数
4373+
4374+ 書 式:val(st)
4375+
4376+ 引 数:str
4377+
4378+ 戻り値:float
4379+
4380+ 機 能:
4381+
4382+ 文字列stを浮動小数値に変換して返します。
4383+ &B、&H、&O形式の整数値を表現した文字列も変換できます。
4384+
4385+   → str$
4386+
4387+ 用 例:
4388+
4389+
4390+{VPAGE GRAPH.FNC
4391+
4392+ 書 式:vape(i)
4393+
4394+ 引 数:char
4395+
4396+ 戻り値:void
4397+
4398+ 機 能:
4399+
4400+ 各グラフィックページの表示ON/OFFを指定します。グラフィックページ番号は0〜3で最大値はグラフィック画面の実画面サイズ及び色モードによります。
4401+
4402+  グラフィック画面の実画面サイズ及び色モードによるiの値の範囲
4403+
4404+   1…表示ON
4405+   2…表示OFF
4406+
4407+  1024×1024(16色モード)…0、1(グラフィックページ0のみ)
4408+
4409+  512×512(16色モード)…0から15
4410+ i グラフィックページ3 グラフィックページ2 グラフィックページ1 グラフィックページ0
4411+ 0 0 0 0 0
4412+ 1 0 0 0 1
4413+ 2 0 0 1 0
4414+ 3 0 0 1 1
4415+ 4 0 1 0 0
4416+ 5 0 1 0 1
4417+ 6 0 1 1 0
4418+ 7 0 1 1 1
4419+ 8 1 0 0 0
4420+ 9 1 0 0 1
4421+ 10 1 0 1 0
4422+ 11 1 0 1 1
4423+ 12 1 1 0 0
4424+ 13 1 1 0 1
4425+ 14 1 1 1 0
4426+ 15 1 1 1 1
4427+
4428+  512×512(256色モード)…0から3
4429+ i グラフィックページ1 グラフィックページ0
4430+ 0 0 0
4431+ 1 0 1
4432+ 2 1 0
4433+ 3 1 1
4434+
4435+  512×512(65536色モード)…0、1(グラフィックページ0のみ)
4436+
4437+   → apage、home、screen、window
4438+
4439+ 用 例:
4440+
4441+
4442+{V_CUT IMAGE.FNC
4443+
4444+ 書 式:v_cut(sw)
4445+
4446+ 引 数:char
4447+
4448+ 戻り値:void
4449+
4450+ 機 能:
4451+
4452+ スーパーインポーズ時のテレビ・ビデオ画面表示を制御します。
4453+
4454+  sw…制御スイッチ
4455+    (0=ONテレビ・ビデオ画面表示、1=テレビ・ビデオ画面表示OFF)
4456+
4457+ なお、この関数を実行するにはカラーイメージユニットCZ-6VT1が必要です。
4458+
4459+
4460+{WHILE〜ENDWHILE ステートメント
4461+
4462+ 書 式:
4463+ while 式
4464+  :
4465+ ループの内容
4466+  :
4467+ endwhile
4468+
4469+ 機 能:
4470+
4471+ 式の値が偽になるまで、指定されたループの内容を繰り返し(ループ)ます。
4472+
4473+ 繰り返しの終了判定はループの内容の実行前に行われます。
4474+
4475+ 式の内容によっては、一度もループの内容を実行しない場合があります。
4476+
4477+ 用 例:
4478+
4479+
4480+{WHIDTH コマンド
4481+
4482+ 書 式:width 文字数
4483+
4484+ 省略形:w.
4485+
4486+ 機 能:
4487+
4488+ 表示文字数を変更します。文字数は96か64です。
4489+
4490+ この命令を実行するとテキスト画面、グラフィック画面やスプライト画面は消去されます。
4491+ また、console 0,31,1が再設定されます。
4492+ テキスト画面のパレットもデフォルトの値に再設定されます。
4493+
4494+
4495+{WINDOW GRAPH.FNC
4496+
4497+ 書 式:window(x1,y1,x2,y2)
4498+
4499+ 引 数:int
4500+
4501+ 戻り値:void
4502+
4503+ 機 能:
4504+
4505+ グラフィック画面の実画面上でクリッピングするエリア(クリッピングエリア)を指定します。
4506+
4507+   x1…実画面上でのクリッピングエリアの左上X座標
4508+   y1…実画面上でのクリッピングエリアの左上Y座標
4509+   x2…実画面上でのクリッピングエリアの右下X座標
4510+   y2…実画面上でのクリッピングエリアの右下Y座標
4511+
4512+ x1、y1、x2、y2はグラフィック画面の実画面サイズが512×512の場合は0から511まで、実画面サイズが1024×1024の場合は0から1023までの値をとる事ができます。
4513+
4514+ screen命令を実行するとx1、y1、x2、y2にはその表示画面サイズの大きさで再設定されます。ただし、この場合(x1,y1)には(0,0)が再設定されます。
4515+
4516+   → apage、screen、vpage
4517+
4518+ 用 例:
4519+
4520+
4521+{WIPE GRAPH.FNC
4522+
4523+ 書 式:wipe()
4524+
4525+ 戻り値:void
4526+
4527+ 機 能:
4528+
4529+ グラフィック画面のアクティブページへのクリッピングエリア内を消去します。
4530+
4531+   → apage、window
4532+
4533+ 用 例:
4534+
4535+
4536+{ ============== ステートメント一覧 ================
4537+ABS 標準関数
4538+APAGE GRAPH.FNC
4539+ASC 標準関数
4540+ATAN 標準関数
4541+ATOF 標準関数
4542+ATOI 標準関数
4543+AUTO コマンド
4544+A_PLAY AUDIO.FNC
4545+A_REC AUDIO.FNC
4546+BEEP ステートメント
4547+BG_FILL SPRITE.FNC
4548+BG_GET SPRITE.FNC
4549+BG_PUT SPRITE.FNC
4550+BG_SCROLL SPRITE.FNC
4551+BG_SET SPRITE.FNC
4552+BG_STAT SPRITE.FNC
4553+BIN$ 標準関数
4554+BOX GRAPH.FNC
4555+BREAK ステートメント
4556+CHAR ステートメント
4557+CHDIR コマンド
4558+CHDRV コマンド
4559+CHILD コマンド
4560+CHR$ 標準関数
4561+CIRCLE GRAPH.FNC
4562+CLEAR コマンド
4563+CLS ステートメント
4564+COLOR ステートメント
4565+COLOR [] ステートメント
4566+CONSOLE ステートメント
4567+CONT コマンド
4568+CONTINUE ステートメント
4569+CONTRAST GRAPH.FNC
4570+COS 標準関数
4571+CRT 標準関数
4572+CSRLIN システム変数
4573+DATE$ システム変数
4574+DAY$ システム変数
4575+DELETE コマンド
4576+DIM ステートメント
4577+DSKF 標準関数
4578+ECVT 標準関数
4579+END ステートメント
4580+ERRNO システム変数
4581+ERROR ON/OFF ステートメント
4582+EXIT() ステートメント
4583+EXP 標準関数
4584+FCLOSE 標準関数
4585+FCLOSEALL 標準関数
4586+FCVT 標準関数
4587+FDELETE 標準関数
4588+FEOF 標準関数
4589+FGETC 標準関数
4590+FILES コマンド
4591+FILL GRAPH.FNC
4592+FIX 標準関数
4593+FLOAT ステートメント
4594+FOPEN 標準関数
4595+FOR〜NEXT ステートメント
4596+FPUTC 標準関数
4597+FREAD 標準関数
4598+FREADS 標準関数
4599+FREE システム変数
4600+FRENAME 標準関数
4601+FSEEK 標準関数
4602+FUNC〜ENDFUNC〜RETURN() ステートメント
4603+FWRITE 標準関数
4604+FWRITES 標準関数
4605+GCVT 標準関数
4606+GET GRAPH.FNC
4607+GOSUB〜RETURN ステートメント
4608+GOTO ステートメント
4609+HEX$ 標準関数
4610+HOME GRAPH.FNC
4611+HSV GRAPH.FNC
4612+IF〜THEN〜ELSE ステートメント
4613+IMG_COLOR IMAGE.FNC
4614+IMG_HOME IMAGE.FNC
4615+IMG_HT IMAGE.FNC
4616+IMG_LOAD 標準関数
4617+IMG_POS IMAGE.FNC
4618+IMG_PUT IMAGE.FNC
4619+IMG_SAVE IMAGE.FNC
4620+IMG_SCRN IMAGE.FNC
4621+IMG_SET IMAGE.FNC
4622+IMG_STILL IMAGE.FNC
4623+INKEY$またはINKEY$(0) システム変数
4624+INPUT ステートメント
4625+INSTR 標準関数
4626+INT ステートメント
4627+INT() 標準関数
4628+ISALNUM 標準関数
4629+ISALPHA 標準関数
4630+ISASCII 標準関数
4631+ISCNTRL 標準関数
4632+ISDIGIT 標準関数
4633+ISGRAPH 標準関数
4634+ISLOWER 標準関数
4635+ISPRINT 標準関数
4636+ISPUNCT 標準関数
4637+ISSPACE 標準関数
4638+ISUPPER 標準関数
4639+ISXDIGIT 標準関数
4640+ITOA 標準関数
4641+KEY ステートメント
4642+KEY LIST コマンド
4643+KILL コマンド
4644+LEFT$ 標準関数
4645+LINE GRAPH.FNC
4646+LINPUT ステートメント
4647+LIST コマンド
4648+LOAD コマンド
4649+LOCATE ステートメント
4650+LOG 標準関数
4651+MID$ 標準関数
4652+MIRROR$ 標準関数
4653+MOUSE MOUSE.FNC
4654+MSAREA MOUSE.FNC
4655+MSBTN MOUSE.FNC
4656+MSPOS MOUSE.FNC
4657+MSSTAT MOUSE.FNC
4658+M_ALLOC MUSIC.FNC
4659+M_ASSIGN MUSIC.FNC
4660+M_CONT MUSIC.FNC
4661+M_FREE MUSIC.FNC
4662+M_INIT 標準関数
4663+M_PLAY MUISC.FNC
4664+M_STAT MUSIC.FNC
4665+M_STOP MUSIC.FNC
4666+M_TEMPO MUSIC.FNC
4667+M_TRK MUSIC.FNC
4668+M_VGET MUSIC.FNC
4669+M_VSET MUSIC.FNC
4670+NAME コマンド
4671+NEW コマンド
4672+OCT$ 標準関数
4673+PAINT GRAPH.FNC
4674+PALET GRAPH.FNC
4675+PI 標準関数
4676+POINT GRAPH.FNC
4677+POS システム変数
4678+POW 標準関数
4679+PRINT ステートメント
4680+PSET GRAPH.FNC
4681+PUT GRAPH.FNC
4682+RAND 標準関数
4683+RANDOMIZE 標準関数
4684+REM ステートメント
4685+RENUM コマンド
4686+REPEAT〜UNTIL ステートメント
4687+RGB GRAPH.FNC
4688+RIGHT$ 標準関数
4689+RND 標準関数
4690+RUN コマンド
4691+SAVE コマンド
4692+SCREEN ステートメント
4693+SEARCH コマンド
4694+SETMSPOS MOUSE.FNC
4695+SGN 標準関数
4696+SIN 標準関数
4697+SPACE$ 標準関数
4698+SP_CLR SPRITE.FNC
4699+SP_COLOR SPRITE.FNC
4700+SP_DEF SPRITE.FNC
4701+SP_DISP SPRITE.FNC
4702+SP_INIT SPRITE.FNC
4703+SP_MOVE SPRITE.FNC
4704+SP_OFF SPRITE.FNC
4705+SP_ON SPRITE.FNC
4706+SP_PAT SPRITE.FNC
4707+SP_SET SPRITE.FNC
4708+SP_STAT SPRITE.FNC
4709+SQR 標準関数
4710+SRAND 標準関数
4711+STICK STICK.FNC
4712+STOP ステートメント
4713+STR ステートメント
4714+STR$ 標準関数
4715+STRCHR 標準関数
4716+STRCSPN 標準関数
4717+STRIG STICK.FNC
4718+STRING$ 標準関数
4719+STRLEN(LEN) 標準関数
4720+STRLWR 標準関数
4721+STRNSET 標準関数
4722+STRRCHR 標準関数
4723+STRREV 標準関数
4724+STRSET 標準関数
4725+STRSPN 標準関数
4726+STRTOK 標準関数
4727+STRUPR 標準関数
4728+SWITCH〜CASE〜DEFAULT〜ENDSWITCH ステートメント
4729+SYMBOL GRAPH.FNC
4730+SYSTEM コマンド
4731+TAN 標準関数
4732+TIME$ システム変数
4733+TOASCII 標準関数
4734+TOLOWER 標準関数
4735+TOUPPER 標準関数
4736+VAL 標準関数
4737+VPAGE GRAPH.FNC
4738+V_CUT IMAGE.FNC
4739+WHILE〜ENDWHILE ステートメント
4740+WHIDTH コマンド
4741+WINDOW GRAPH.FNC
4742+WIPE GRAPH.FNC