1010 '/* sample.bas -- Copyright by Technical Industry Japan Corp. */ 1020 '/***********************************************************************/ 1030 '/* */ 1040 '/* ENTRY−1サンプルプログラム */ 1050 '/* */ 1060 '/***********************************************************************/ 1070 DEFINT I,J,K: ONN=1: OFFF=0: DIM HEX%[256]: COL=ONN 2000 '************************************ 2010 ' メインプログラム 2020 '************************************ 2030 *MAIN 2040 CONSOLE 0,25,0,1: WIDTH 80,25: CLS: COLOR 7 2050 IF COL=ONN THEN COLOR 5 2060 LOCATE 18,0: PRINT "★★★ ENTRY−1サンプルプログラム ★★★" 2070 CONSOLE 2,23 2080 RESTORE *MENU.DATA 2090 FOR I=1 TO 34 2100 READ X%,Y%,C%,A$ 2110 LOCATE X%,Y%: IF COL=ONN THEN COLOR C% 2120 PRINT A$ 2130 NEXT I 2140 CONSOLE 19,6 2150 WHILE( 1 ) 2160 EXIT.FLG=OFFF: IF COL=ONN THEN COLOR 7 2170 WHILE( EXIT.FLG=OFFF ) 2180 GOSUB *STACK.CLEAR 2190 CLS: INPUT "実行するコマンド番号を入力してください ";MENU$ 2200 MENU.NO%=VAL("&H"+MENU$) 2210 IF MENU.NO%=&HE THEN EXIT.FLG=ONN 2220 IF MENU.NO%<&H8 THEN EXIT.FLG=ONN 2230 IF MENU.NO%>&HF AND MENU.NO%<&H1E THEN EXIT.FLG=ONN 2240 IF MENU.NO%>&H1F AND MENU.NO%<&H27 THEN EXIT.FLG=ONN 2250 IF MENU.NO%=&H30 THEN EXIT.FLG=ONN 2260 IF MENU.NO%=&H0 AND MENU$<>"0" THEN EXIT.FLG=OFFF 2270 IF EXIT.FLG=ONN THEN GOSUB *BEEP.CLICK ELSE GOSUB *BEEP.ERROR 2280 WEND 2290 IF MENU.NO%=&HE THEN GOTO *END.PROC 2300 SEND$=CHR$(&H1B)+CHR$(MENU.NO%): PRINT 2500 '************************************ 2510 ' 各コマンド処理に分岐する 2520 '************************************ 2530 IF MENU.NO%=&H0 THEN GOSUB *INIT.PROC 2540 IF MENU.NO%=&H1 THEN GOSUB *BEEP.PROC 2550 IF MENU.NO%=&H2 THEN GOSUB *CLICK.PROC 2560 IF MENU.NO%=&H3 THEN GOSUB *BACKUP.PROC 2570 IF MENU.NO%=&H4 THEN GOSUB *HEADER.PROC 2580 IF MENU.NO%=&H5 THEN GOSUB *PACKETO.PROC 2590 IF MENU.NO%=&H6 THEN GOSUB *DERIMITA.PROC 2600 IF MENU.NO%=&H7 THEN GOSUB *DLY.PROC 2610 IF MENU.NO%=&H10 THEN GOSUB *LCDINIT.PROC 2620 IF MENU.NO%=&H11 THEN GOSUB *LCD.DSP.PROC 2630 IF MENU.NO%=&H12 THEN GOSUB *LCD.CLS.PROC 2640 IF MENU.NO%=&H13 THEN GOSUB *CURDSP.PROC 2650 IF MENU.NO%=&H14 THEN GOSUB *CURMOV.PROC 2660 IF MENU.NO%=&H15 THEN GOSUB *ECHOBACK.PROC 2670 IF MENU.NO%=&H16 THEN GOSUB *ECHOCHANGE.PROC 2680 IF MENU.NO%=&H17 THEN GOSUB *RETCLEAR.PROC 2690 IF MENU.NO%=&H18 THEN GOSUB *IMAGEAREA.PROC 2700 IF MENU.NO%=&H19 THEN GOSUB *DSPAREA.PROC 2710 IF MENU.NO%=&H1A THEN GOSUB *CURLOCATE.PROC 2720 IF MENU.NO%=&H1B THEN GOSUB *AREALOCATE.PROC 2730 IF MENU.NO%=&H1C THEN GOSUB *DATADSP.PROC 2740 IF MENU.NO%=&H1D THEN GOSUB *USERCHAR.PROC 2750 IF MENU.NO%=&H20 THEN GOSUB *KEYINIT.PROC 2760 IF MENU.NO%=&H21 THEN GOSUB *KEYCON.PROC 2770 IF MENU.NO%=&H22 THEN GOSUB *KEYMACRO.PROC 2780 IF MENU.NO%=&H23 THEN GOSUB *KEYMASK.PROC 2790 IF MENU.NO%=&H24 THEN GOSUB *KEYMODE.PROC 2800 IF MENU.NO%=&H25 THEN GOSUB *KEYREP.PROC 2810 IF MENU.NO%=&H26 THEN GOSUB *KEYTIME.PROC 2820 IF MENU.NO%=&H30 THEN GOSUB *TESTMODE.PROC 2830 IF MENU.NO%<>&H30 THEN GOSUB *SEND.DATA 2840 FOR I.MENU=1 TO 777: NEXT I.MENU 2850 IF COL=ONN THEN COLOR 6 2860 PRINT "どれかのキーを押して下さい"; 2870 GOSUB *STACK.CLEAR: A$=INPUT$(1) 2880 WEND 3000 '************************************ 3010 ' 終了処理を行なう 3020 '************************************ 3030 *END.PROC 3040 CONSOLE 0,25,0,1: CLS: CLOSE: 3050 PRINT "お疲れさまでした!!" 3060 FOR I=1 TO 7777: NEXT I 3070 END 10000 '************************************ 10010 ' エントリー1イニシャライズコマンド処理 10020 '************************************ 10030 *INIT.PROC 10040 SEND$=SEND$+CHR$(&H0) 10050 RETURN 10100 '************************************ 10110 ' ブザー発鳴コマンド処理 10120 '************************************ 10130 *BEEP.PROC 10140 MSG$="ビープ音の時間": MAX%=255: GOSUB *QTY.INP 10150 SEND$=SEND$+CHR$(QTY%) 10160 RETURN 10200 '************************************ 10210 ' キークリック音長設定コマンド処理 10220 '************************************ 10230 *CLICK.PROC 10240 MSG$="クリック音の時間": MAX%=255: GOSUB *QTY.INP 10250 SEND$=SEND$+CHR$(QTY%) 10260 RETURN 10300 '************************************ 10310 ' バックアップモードコマンド処理 10320 '************************************ 10330 *BACKUP.PROC 10340 INPUT "電源切断時のバックアップを行なうか否か指定して下さい(ON=1,OFF=0) ";BACKUP% 10350 IF BACKUP%>1 THEN GOSUB *BEEP.ERROR: GOTO *BACKUP.PROC 10360 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(BACKUP%) 10370 RETURN 10400 '************************************ 10410 ' ヘッダー設定コマンド処理 10420 '************************************ 10430 *HEADER.PROC 10440 MSG$="識別子の文字数": MAX%=255: GOSUB *QTY.INP 10450 MAX%=&H7F: MSG$="キーコード": GOSUB *HEX.INP 10460 SEND$=SEND$+CHR$(QTY%) 10470 FOR I=1 TO QTY% 10480 SEND$=SEND$+CHR$(HEX%[I]) 10490 NEXT I 10500 RETURN 10600 '************************************ 10610 ' パケット転送モードコマンド処理 10620 '************************************ 10630 *PACKETO.PROC 10640 INPUT "動作モードを入力して下さい(フルキーボード=1,ENRTY-1=2,両方=3) ";MODE% 10650 IF MODE%>3 THEN GOSUB *BEEP.ERROR: GOTO *PACKETO.PROC 10660 GOSUB *BEEP.CLICK 10670 MSG$="パケットとして溜める文字数": MAX%=&H7F: GOSUB *QTY.INP 10680 SEND$=SEND$+CHR$(MODE%)+CHR$(QTY%) 10690 RETURN 10700 '************************************ 10710 ' デリミタ転送モードコマンド処理 10720 '************************************ 10730 *DERIMITA.PROC 10740 INPUT "動作モードを入力して下さい(フルキーボード=1,ENRTY-1=2,両方=3)";MODE% 10750 IF MODE%>3 THEN GOSUB *BEEP.ERROR: GOTO *DERIMITA.PROC 10760 GOSUB *BEEP.CLICK 10770 MAX%=&H7F: QTY%=1: MSG$="指定キーボードのキーコード": GOSUB*HEX.INP 10780 SEND$=SEND$+CHR$(MODE%)+CHR$(HEX%[1]) 10790 RETURN 10800 '************************************ 10810 ' ディレイタイム設定コマンド処理 10820 '************************************ 10830 *DLY.PROC 10840 MSG$="ホストへ送信する時の待ち時間": MAX%=255: GOSUB *QTY.INP 10850 SEND$=SEND$+CHR$(QTY%) 10860 RETURN 10900 '************************************ 10910 ' LCDイニシャライズコマンド処理 10920 '************************************ 10930 *LCDINIT.PROC 10940 SEND$=SEND$+CHR$(&H0) 10950 RETURN 11000 '************************************ 11010 ' LCD表示状態設定コマンド処理 11020 '************************************ 11030 *LCD.DSP.PROC 11040 INPUT "LCD表示を行なうか否か指定して下さい(ON=1,OFF=0) ";LCD% 11050 IF LCD%>1 THEN GOSUB *BEEP.ERROR: GOTO *LCD.DSP.PROC 11060 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(LCD%) 11070 RETURN 11100 '************************************ 11110 ' LCD表示クリアコマンド処理 11120 '************************************ 11130 *LCD.CLS.PROC 11140 SEND$=SEND$+CHR$(&H0) 11150 RETURN 11200 '************************************ 11210 ' カーソル種類設定コマンド処理 11220 '************************************ 11230 *CURDSP.PROC 11240 INPUT "カーソルのモードを指定して下さい(ULINE=1,BLINK=2,両方=3) ";CURTYPE% 11250 IF CURTYPE%<1 OR CURTYPE%>3 THEN GOSUB *BEEP.ERROR: GOTO *CURDSP.PROC 11260 *CURDSP.ERROR 11270 INPUT "カーソル表示を行なうか否か指定して下さい(ON=1,OFF=0) ";CUR% 11280 IF CUR%>1 THEN GOSUB *BEEP.ERROR: GOTO *CURDSP.ERROR 11290 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(CURTYPE%)+CHR$(CUR%) 11300 RETURN 11400 '************************************ 11410 ' カーソルトレースモードコマンド処理 11420 '************************************ 11430 *CURMOV.PROC 11440 INPUT "カーソル追従を行なうか否か指定して下さい(ON=1,OFF=0) ";CUR% 11450 IF CUR%>1 THEN GOSUB *BEEP.ERROR: GOTO *CURMOV.PROC 11460 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(CUR%) 11470 RETURN 11500 '************************************ 11510 ' エコーバックモードコマンド処理 11520 '************************************ 11530 *ECHOBACK.PROC 11540 INPUT "エコーバックを行なうか否か指定して下さい(ON=1,OFF=0) ";ECHOBACK% 11550 IF ECHOBACK%>1 THEN GOSUB *BEEP.ERROR: GOTO *ECHOBACK.PROC 11560 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(ECHOBACK%) 11570 RETURN 11600 '************************************ 11610 ' エコーバックデータ変更コマンド処理 11620 '************************************ 11630 *ECHOCHANGE.PROC 11640 QTY%=1: MAX%=&H1D: MSG$="ENTRY−1のキーナンバー" 11650 GOSUB *HEX.INP: EKEY%=HEX%[1] 11660 MSG$="エコーデータ数": MAX%=15: GOSUB *QTY.INP 11670 MAX%=&HFF: MSG$="キャラクタコード": GOSUB *HEX.INP 11680 SEND$=SEND$+CHR$(EKEY%)+CHR$(QTY%) 11690 FOR I=1 TO QTY% 11692 SEND$=SEND$+CHR$(HEX%[I]) 11694 NEXT I 11696 RETURN 11700 '************************************ 11710 ' リターンキー処理モードコマンド処理 11720 '************************************ 11730 *RETCLEAR.PROC 11740 INPUT "リターンキー処理を選択して下さい(OFF=0,改行=1,クリア=2) ";RETCLR% 11750 IF RETCLR%>2 THEN GOSUB *BEEP.ERROR: GOTO *RETCLEAR.PROC 11760 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(RETCLR%) 11770 RETURN 11800 '************************************ 11810 ' 仮想画面サイズ設定コマンド処理 11820 '************************************ 11830 *IMAGEAREA.PROC 11840 MSGX$="仮想画面の横方向文字数": MSGY$="仮想画面の縦方向行数": GOSUB *XY.INP 11850 SEND$=SEND$+CHR$(X%)+CHR$(Y%) 11860 RETURN 11900 '************************************ 11910 ' 表示画面サイズ設定コマンド処理 11920 '************************************ 11930 *DSPAREA.PROC 11940 MSGX$="表示画面の横方向文字数": MSGY$="表示画面の縦方向行数": GOSUB *XY.INPS 11950 SEND$=SEND$+CHR$(X%)+CHR$(Y%) 11960 RETURN 12000 '************************************ 12010 ' カーソルロケートコマンド処理 12020 '************************************ 12030 *CURLOCATE.PROC 12040 MSGX$="カーソルを表示する": MSGY$=MSGX$: GOSUB *XY.INP 12050 SEND$=SEND$+CHR$(X%)+CHR$(Y%) 12060 RETURN 12100 '************************************ 12110 ' 表示画面ロケートコマンド処理 12120 '************************************ 12130 *AREALOCATE.PROC 12140 MSGX$="表示する仮想画面の": MSGY$=MSGX$: GOSUB *XY.INP 12150 SEND$=SEND$+CHR$(X%)+CHR$(Y%) 12160 RETURN 12200 '************************************ 12210 ' メッセージ表示コマンド処理 12220 '************************************ 12230 *DATADSP.PROC 12240 QTY%=1: MAX%=&H7F: MSG$="表示するデータ数": GOSUB *HEX.INP 12250 QTY%=HEX%[1]: MAX%=&HFF: MSG$="LCD文字フォントコード": GOSUB *HEX.INP 12260 SEND$=SEND$+CHR$(QTY%) 12270 FOR I=1 TO QTY% 12280 SEND$=SEND$+CHR$(HEX%[I]) 12290 NEXT I 12300 RETURN 12400 '************************************ 12410 ' ユーザーキャラクタ設定コマンド処理 12420 '************************************ 12430 *USERCHAR.PROC 12440 QTY%=1: MAX%=&H7: MSG$="ユーザ定義文字コード": GOSUB *HEX.INP 12450 SEND$=SEND$+CHR$(HEX%[1]) 12460 QTY%=7: MAX%=&HFF: MSG$="フォントパターン": GOSUB *HEX.INP 12470 FOR I=1 TO 7 12480 SEND$=SEND$+CHR$(HEX%[I]) 12490 NEXT I 12500 SEND$=SEND$+CHR$(0) 12510 RETURN 12600 '************************************ 12610 ' キーイニシャライズコマンド処理 12620 '************************************ 12630 *KEYINIT.PROC 12640 INPUT "キー初期化の対象を選択して下さい(両方=0,キーコン=1,キーマクロ=2) ";KEYI% 12650 IF KEYI%>2 THEN GOSUB *BEEP.ERROR: GOTO *KEYINIT.PROC 12660 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(KEYI%) 12670 RETURN 12700 '************************************ 12710 ' キーコンデータ設定コマンド処理 12720 '************************************ 12730 *KEYCON.PROC 12740 QTY%=1: MAX%=&HFF: MSG$="登録テーブル情報": GOSUB *HEX.INP:MODE%=HEX%[1] 12750 QTY%=1: MAX%=&H7F: MSG$="フルキーボードのキーナンバー": GOSUB*HEX.INP 12760 KEYNO%=HEX%[1] 12770 MAX%=15: MSG$="登録文字数": GOSUB *QTY.INP 12780 MAX%=&HF4: MSG$="キーコード": GOSUB *HEX.INP 12790 SEND$=SEND$+CHR$(MODE%)+CHR$(KEYNO%)+CHR$(QTY%) 12800 FOR I=1 TO QTY% 12810 SEND$=SEND$+CHR$(HEX%[I]) 12820 NEXT I 12830 RETURN 12900 '************************************ 12910 ' キーマクロ設定コマンド処理 12920 '************************************ 12930 *KEYMACRO.PROC 12940 QTY%=1: MAX%=&H1D: MSG$="ENTRY−1のキーナンバー": GOSUB*HEX.INP 12950 KEYNO%=HEX%[1] 12960 MAX%=64: MSG$="登録文字数": GOSUB *QTY.INP 12970 MAX%=&HF4: MSG$="キーコード": GOSUB *HEX.INP 12980 SEND$=SEND$+CHR$(KEYNO%)+CHR$(QTY%) 12990 FOR I=1 TO QTY% 13000 SEND$=SEND$+CHR$(HEX%[I]) 13010 NEXT I 13020 RETURN 13100 '************************************ 13110 ' キーマスクモードコマンド処理 13120 '************************************ 13130 *KEYMASK.PROC 13140 QTY%=1: MAX%=&H7: MSG$="マスクのモード": GOSUB*HEX.INP 13150 MASKMODE%=HEX%[1] 13160 IF MASKMODE%=2 OR MASKMODE%=3 OR MASKMODE%=6 OR MASKMODE%=7 THEN *KEYMASK.ALL 13170 IF MASKMODE%<4 THEN MAX%=&H7F ELSE MAX%=&H1D 13180 MSG$="指定キーボードのキーナンバー": GOSUB *HEX.INP 13190 SEND$=SEND$+CHR$(MASKMODE%)+CHR$(HEX%[1]) 13200 RETURN 13210 *KEYMASK.ALL 13220 SEND$=SEND$+CHR$(MASKMODE%) 13230 RETURN 13300 '************************************ 13310 ' キー配列選択コマンド処理 13320 '************************************ 13330 *KEYMODE.PROC 13340 INPUT "フルキーボードのキー配列を選択して下さい(ノーマル=0,アイウエオ=1,ノンシフト=2,両方=3) ";KEYMODE% 13350 IF KEYMODE%>3 THEN GOSUB *BEEP.ERROR: GOTO *KEYMODE.PROC 13360 GOSUB *BEEP.CLICK: SEND$=SEND$+CHR$(KEYMODE%) 13370 RETURN 13400 '************************************ 13410 ' リピートキー設定コマンド処理 13420 '************************************ 13430 *KEYREP.PROC 13440 INPUT "リピートのモードを選択して下さい(1キーオフ=0,1キーオン=1,全キーオフ=2,全キーオン=3) ";KEYREP% 13450 IF KEYREP%>3 THEN GOSUB *BEEP.ERROR: GOTO *KEYREP.PROC 13460 GOSUB *BEEP.CLICK 13470 IF KEYREP%>1 THEN GOTO *KEYREP.ALL 13480 QTY%=1: MAX%=&H1D: MSG$="エントリー1のキーナンバー": GOSUB*HEX.INP 13490 SEND$=SEND$+CHR$(KEYREP%)+CHR$(HEX%[1]) 13500 RETURN 13510 *KEYREP.ALL 13520 SEND$=SEND$+CHR$(KEYREP%) 13530 RETURN 13600 '************************************ 13610 ' キーリピートインターバルコマンド処理 13620 '************************************ 13630 *KEYTIME.PROC 13640 QTY%=1: MAX%=&HFF: MSG$="インターバルタイム": GOSUB*HEX.INP 13650 SEND$=SEND$+CHR$(HEX%[1]) 13660 RETURN 13700 '************************************ 13710 ' テストモード処理 13720 '************************************ 13730 *TESTMODE.PROC 13740 ON STOP GOSUB *TESTMODE.END: STOP ON 13750 CLS: PRINT "ENTRY−1からのLCDキャラクタコードを表示します" 13760 PRINT "終了時は、本体キーボードのSTOPキーを押して下さい" 13770 TESTEND.FLG=OFFF 13780 WHILE( TESTEND.FLG=OFFF ) 13790 A$=INPUT$( 1 ): B$=RIGHT$("0"+HEX$(ASC(A$)),2) 13800 IF A$<" " THEN A$=" " 13810 PRINT " ";A$;" [ ";B$;" ] "; 13820 WEND 13830 STOP OFF 13840 RETURN 13900 *TESTMODE.END 13910 TESTEND.FLG=ONN 13920 RETURN 50000 '************************************ 50010 ' スタッククリア関数 50020 '************************************ 50030 *STACK.CLEAR 50040 WHILE( INKEY$<>"" ): WEND 50050 RETURN 50100 '************************************ 50110 ' クリック音を鳴らす関数 50120 '************************************ 50130 *BEEP.CLICK 50140 BEEP 1 50150 FOR I.BEEP=1 TO 256: NEXT I.BEEP 50160 BEEP 0 50170 RETURN 50200 '************************************ 50210 ' エラー音を鳴らす関数 50220 '************************************ 50230 *BEEP.ERROR 50240 FOR I.BEEP=1 TO 2 50250 BEEP 1 50260 FOR J.BEEP=1 TO 777: NEXT J.BEEP 50270 BEEP 0 50280 FOR J.BEEP=1 TO 256: NEXT J.BEEP 50290 NEXT I.BEEP 50300 GOSUB *STACK.CLEAR 50310 RETURN 50400 '************************************ 50410 ' 16進数入力関数 50420 '************************************ 50430 *HEX.INP 50440 FOR I.HEX=1 TO QTY% 50450 *HEX.ERROR 50460 IF QTY%>1 THEN PRINT "No.";I.HEX;" : ";MSG$; ELSE PRINT MSG$; 50470 PRINT "(0〜";RIGHT$("0"+HEX$(MAX%),2);")"; 50480 INPUT "を16進数にて入力して下さい ";H$ 50490 HEX%[I.HEX]=VAL("&H"+H$) 50500 IF HEX%[I.HEX]>MAX% THEN GOSUB *BEEP.ERROR: GOTO *HEX.ERROR 50510 IF HEX%[I.HEX]=0 AND LEFT$(H$,1)<>CHR$(&H30) THEN GOSUB *BEEP.ERROR: GOTO *HEX.ERROR 50520 GOSUB *BEEP.CLICK 50530 NEXT I.HEX 50540 RETURN 50600 '************************************ 50610 ' 数入力関数 50620 '************************************ 50630 *QTY.INP 50640 PRINT MSG$;"(0〜";MAX%;")";: INPUT "を入力してください ";QTY% 50650 IF QTY%>MAX% THEN GOSUB *BEEP.ERROR: GOTO *QTY.INP 50660 GOSUB *BEEP.CLICK 50670 RETURN 50700 '************************************ 50710 ' X座標・Y座標入力関数 50720 '************************************ 50730 *XY.INP 50740 PRINT MSGX$;: INPUT "X座標(0〜255)を入力してください ";X% 50750 IF X%>255 THEN GOSUB *BEEP.ERROR: GOTO *XY.INP ELSE GOSUB *BEEP.CLICK 50760 *XY.ERROR 50770 PRINT MSGY$;: INPUT "Y座標(0〜255)を入力してください ";Y% 50780 IF Y%>255 THEN GOSUB *BEEP.ERROR: GOTO *XY.ERROR 50790 IF (X%+1)*(Y%+1)>2000 THEN GOSUB *BEEP.ERROR: GOTO *XY.INP 50800 GOSUB *BEEP.CLICK 50810 RETURN 50900 '************************************ 50910 ' X座標・Y座標入力関数(表示画面用) 50920 '************************************ 50930 *XY.INPS 50940 PRINT MSGX$;: INPUT "X座標(0〜15)を入力してください ";X% 50950 IF X%>15 THEN GOSUB *BEEP.ERROR: GOTO *XY.INPS ELSE GOSUB *BEEP.CLICK 50960 *XY.ERRORS 50970 PRINT MSGY$;: INPUT "Y座標(0〜1)を入力してください ";Y% 50980 IF Y%>1 THEN GOSUB *BEEP.ERROR: GOTO *XY.ERRORS 50990 IF (X%+1)*(Y%+1)>2000 THEN GOSUB *BEEP.ERROR: GOTO *XY.INPS 51000 GOSUB *BEEP.CLICK: RETURN 55000 '************************************ 55010 ' ENTRY−1にテータを送信する 55020 '************************************ 55030 *SEND.DATA 55040 OUT &H2,(&H2 OR INP(&H2)) : DEF SEG=0 55050 SP.TABLE.1 =PEEK(&H538) : SP.TABLE.2 =PEEK(&H53A) 55060 TB.OFFSET.1=PEEK(&H522) : TB.OFFSET.2=PEEK(&H523) 55070 PRINT: PRINT "送信データ(16進):"; 55080 FOR I.SEND=1 TO LEN(SEND$) 55090 OUT &H43,&H17:OUT &H41,ASC(MID$(SEND$,I.SEND,1)): A%=INP(&H41) 55100 PRINT RIGHT$("0"+HEX$(ASC(MID$(SEND$,I.SEND,1))),2);","; 55110 FOR J.SEND=1 TO 36: NEXT J.SEND 55120 NEXT I.SEND 55130 OUT &H43,&H17 55140 POKE &H538,SP.TABLE.1 : POKE &H53A,SP.TABLE.2 55150 POKE &H522,TB.OFFSET.1 : POKE &H523,TB.OFFSET.2 55160 A%=INP(&H41): A%=INP(&H41) 55170 OUT &H2,(&HFD AND INP(&H2)) 55180 PRINT CHR$(&H1D);" " 55190 RETURN 60000 '************************************ 60010 ' メニュー画面のデータ 60020 '************************************ 60030 *MENU.DATA 60040 DATA 0, 2,4," *** 汎用コマンド *** " 60050 DATA 27, 2,5," *** LCDコマンド *** " 60060 DATA 55, 2,6," *** キーコマンド *** " 60070 DATA 0, 4,4,"0:ENTRY-1イニシャライズ" 60080 DATA 0, 5,4,"1:ブザー発鳴" 60090 DATA 0, 6,4,"2:キークリック音長設定" 60100 DATA 0, 7,4,"3:バックアップモード" 60110 DATA 0, 8,4,"4:ヘッダー設定" 60120 DATA 0, 9,4,"5:パケット転送モード" 60130 DATA 0,10,4,"6:デリミタ転送モード" 60140 DATA 0,11,4,"7:ディレイタイム設定" 60150 DATA 27, 4,5,"10:LCDイニシャライズ" 60160 DATA 27, 5,5,"11:LCD表示状態設定" 60170 DATA 27, 6,5,"12:LCD表示クリア" 60180 DATA 27, 7,5,"13:カーソル種類設定" 60190 DATA 27, 8,5,"14:カーソルトレースモード" 60200 DATA 27, 9,5,"15:エコーバックモード" 60210 DATA 27,10,5,"16:エコーバックデータ変更" 60220 DATA 27,11,5,"17:リターンキー処理モード" 60230 DATA 27,12,5,"18:仮想画面サイズ設定" 60240 DATA 27,13,5,"19:表示画面サイズ設定" 60250 DATA 27,14,5,"1A:カーソルロケート" 60266 DATA 27,15,5,"1B:表示画面ロケート" 60270 DATA 27,16,5,"1C:メッセージ表示" 60280 DATA 27,17,5,"1D:ユーザーキャラクタ設定" 60290 DATA 55, 4,6,"20:キーイニシャライズ" 60300 DATA 55, 5,6,"21:キーコンデータ設定" 60310 DATA 55, 6,6,"22:キーマクロ設定" 60320 DATA 55, 7,6,"23:キーマスクモード" 60330 DATA 55, 8,6,"24:キー配列選択" 60340 DATA 55, 9,6,"25:リピートキー設定" 60350 DATA 55,10,6,"26:キーリピートインターバル" 60360 DATA 55,17,6,"30:テストモード" 60370 DATA 0,17,4,"E:終了"