home *** CD-ROM | disk | FTP | other *** search
- 10 '**************************
- 20 '* F-BASIC386 << SCANNER PROGRAM >> *
- 30 '* COLOR IMAGE SCANNER * 16 COLOR 9600bps * *
- 40 '* GT-1000(GT-1000mode GT-3000Vmode), GT-4000 *
- 50 '* COPYRIGHT FUJITSU LIMITED 1989 *
- 60 '* *
- 70 '* (AUTHOR) : HIDENORI-ISHIKIRIYAMA. *
- 80 '* (DATE.W) : 1989. 7.13 *
- 90 '**************************
- 100 '
- 110 CLS
- 120 SCREEN@ 0
- 130 COLOR 6 : LOCATE 29,8 : PRINT " 画像処理中 !! " : COLOR 7
- 140 DEFLNG A-Y
- 150 DEFDBL Z
- 160 DIM CH(20)
- 170 STIM=TIME
- 180 CO(0)=4 : CO(1)=2 : CO(2)=1
- 190 OPEN "I",#2,"COM0:"
- 200 OPEN "O",#1,"COM0:"
- 210 ESC$=CHR$(27)
- 220 STX$=CHR$(2)
- 230 ACK$=CHR$(6)
- 240 CAN$=CHR$(24)
- 250 '
- 260 ' コマンドパラメータ設定
- 270 '
- 280 COL=1 : ' 色指定 Cコマンド
- 290 DFO=1 : ' データフォーマット Dコマンド
- 300 MID=0 : ' 中間調処理 Bコマンド
- 310 SZOMX=100 : SZOMY=100 : ' ズーム設定 Hコマンド
- 320 R1=100 : R2=100 : ' 解像度設定 Rコマンド
- 330 NOU=1 : ' 濃度補正 Zコマンド
- 340 '
- 350 ' ' 読み取り可能範囲
- 360 ' MAX=8*(INT((2.96!*R1*SZOMX/100+.1!)/8)) :'''GT-1000 mode
- 370 ' MAY=INT(4.2!*R2*SZOMY/100+.1!)
- 380 'MAX=8*(INT((4*R1*SZOMX/100+.1!)/8)) :'''GT-3000V mode
- 390 'MAY=INT(6.4!*R2*SZOMY/100+.1!)
- 400 MAX=8*(INT((8.56!*R1*SZOMX/100+.1!)/8)) :'''GT-4000
- 410 MAY=11.6!*R2*SZOMY/100
- 420 '
- 430 XST=0 : YST=0 : ' 読み取り開始位置 Aコマンド
- 440 XEN=MAX-1 : YEN=MAY-1 : ' 読み取り終了位置
- 450 IF XEN>639 THEN XEN=639 ' 最大 (0,0)-(639,479) チェック
- 460 IF YEN>479 THEN YEN=479
- 470 '
- 480 DIM GD$(2,YEN)
- 490 '
- 500 'コマンド実行
- 510 '
- 520 SCOM$=ESC$+"C"
- 530 PAR$=CHR$(COL) : GOSUB *SENDDATA
- 540 SCOM$=ESC$+"D"
- 550 PAR$=CHR$(DFO) : GOSUB *SENDDATA
- 560 SCOM$=ESC$+"B"
- 570 PAR$=CHR$(MID) : GOSUB *SENDDATA
- 580 SCOM$=ESC$+"H"
- 590 PAR$=CHR$(SZOMX)+CHR$(SZOMY) : GOSUB *SENDDATA
- 600 SCOM$=ESC$+"R"
- 610 PAR$=CHR$(R1 MOD 256)+CHR$(R1 \ 256)+CHR$(R2 MOD 256)+CHR$(R2 \ 256)
- 620 GOSUB *SENDDATA
- 630 SCOM$=ESC$+"A"
- 640 PAR$=CHR$(XST MOD 256)+CHR$(XST \ 256)+CHR$(YST MOD 256)
- 650 PAR$=PAR$+CHR$(YST \ 256)+CHR$((XEN+1) MOD 256)+CHR$((XEN+1) \ 256)
- 660 PAR$=PAR$+CHR$((YEN+1) MOD 256)+CHR$((YEN+1) \ 256)
- 670 GOSUB *SENDDATA
- 680 SCOM$=ESC$+"Z"
- 690 PAR$=CHR$(NOU) : GOSUB *SENDDATA
- 700 '
- 710 PRINT #1,ESC$+"G";
- 720 '
- 730 'MAIN
- 740 '
- 750 ' データREAD
- 760 '
- 770 FOR COL=0 TO 2
- 780 FOR L=YST TO YEN
- 790 *WAIT
- 800 HD$=INPUT$(1,#2) : IF HD$<>STX$ THEN *WAIT
- 810 ST$=INPUT$(1,#2)
- 820 IF (ASC(ST$) AND &H40)<>0 THEN GOSUB *SENDA : GOTO *WAIT
- 830 ST$=INPUT$(2,#2)
- 840 GD$(COL,L)=INPUT$((((XEN-XST)-1) \ 8)+1,#2)
- 850 ::::::::: IF INKEY$=ESC$ THEN GOSUB *SENDC : END :::::::::: ESC
- 860 IF L<>YEN THEN GOSUB *SENDA
- 870 NEXT L
- 880 NEXT COL
- 890 PRINT #1,ESC$;"@";:DUMMY$=INPUT$(1,#2)
- 900 CLOSE
- 910 '
- 920 ' データ変換
- 930 '
- 940 FOR COL=0 TO 2
- 950 FOR L=YST TO YEN
- 960 CC=0
- 970 SS=-3
- 980 GD$=GD$(COL,L)+" "
- 990 FOR ST=XST TO XEN STEP 32
- 1000 SS=SS+4
- 1010 Z=ASC(MID$(GD$,SS,1))+ASC(MID$(GD$,SS+1,1))*256
- 1020 Z=Z+ASC(MID$(GD$,SS+2,1))*65536+ASC(MID$(GD$,SS+3,1))*16777216
- 1030 IF Z>2147483647 THEN Z=Z-4294967296#
- 1040 CH(CC)=Z
- 1050 CC=CC+1
- 1060 NEXT ST
- 1070 PUT@ (XST,L)-(XEN,L),CH,OR,CO(COL)
- 1080 NEXT L
- 1090 NEXT COL
- 1100 CLS 4
- 1110 END
- 1120 '
- 1130 'SUB.
- 1140 '
- 1150 *SENDDATA
- 1160 PRINT #1,SCOM$;
- 1170 A$=INPUT$(1,#2):IF A$ <> ACK$ THEN *ERR
- 1180 PRINT #1,PAR$;
- 1190 A$=INPUT$(1,#2):IF A$ <> ACK$ THEN *ERR
- 1200 RETURN
- 1210 '
- 1220 *SENDC
- 1230 PRINT #1,CAN$;
- 1240 RETURN
- 1250 '
- 1260 *SENDA
- 1270 PRINT #1,ACK$;
- 1280 RETURN
- 1290 '
- 1300 *ERR
- 1310 CLS
- 1320 PRINT "ERROR !"
- 1330 PRINT RIGHT$(SCOM$,1);"コマンド ERROR !"
- 1340 END
- 1350 '
- 1360 '
- 1370 ' このプログラムはカラーイメージスキャナ GT-4000・GT-1000
- 1380 ' で使用できます。
- 1390 ' 360-410行の式から使用する機種・モードにあったものを選択
- 1400 ' して下さい。 (転送速度は9600bpsに設定して実行して下さい。)
- 1410 '
- 1420 ' 読み込みを途中で終了するときは[ESC]キーを押して下さい。
- 1430 '
- 1440 '** 読み取りサイズや,解像度などは280-440行で変更できます。
- 1450 '
-