home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 2
/
FreeSoftwareCollection2pd199x-jp.img
/
fbasic
/
scanner
/
gts_32.bas
< prev
Wrap
BASIC Source File
|
1990-06-14
|
5KB
|
149 lines
10 '**************************
20 '* F-BASIC386 << SCANNER PROGRAM >> *
30 '* COLOR IMAGE SCANNER * 32K.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@ 1
130 COLOR 6 : LOCATE 31,8 : PRINT "画像処理中 !!" : COLOR 7
140 DEFLNG A-Y
150 DEFDBL Z
160 DIM CH(161),KAI(2)
170 CC=0
180 KAI(0)=1024 : KAI(1)=32 : KAI(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=5 : ' データフォーマット 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>319 THEN XEN=319 ' 最大 (0,0)-(319,239) チェック
460 IF YEN>239 THEN YEN=239
470 '
480 DIM GD$(3,YEN,4)
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 FOR ST=1 TO ((XEN-1) \ 200)+1
850 RED=200
860 IF ST=((XEN-1) \ 200)+1 THEN RED=((XEN-1) MOD 200)+2
870 GD$(COL,L,ST)=INPUT$(RED,#2)
880 ::::::::: IF INKEY$=ESC$ THEN GOSUB *SENDC : END :::::::::: ESC
890 NEXT ST
900 IF L<>YEN THEN GOSUB *SENDA
910 NEXT L
920 NEXT COL
930 PRINT #1,ESC$;"@";:DUMMY$=INPUT$(1,#2)
940 CLOSE
950 '
960 ' データ変換
970 '
980 FOR COL=0 TO 2
990 FOR L=YST TO YEN
1000 FOR ST=1 TO ((XEN-1) \ 200)+1
1010 GD$=GD$(COL,L,ST)
1020 FOR BY=1 TO LEN(GD$) STEP 2
1030 CH(CC)=(ASC(MID$(GD$,BY,1))/8)*KAI(COL)
1040 CH(CC)=CH(CC)+(ASC(MID$(GD$,BY+1,1))/8)*KAI(COL)*65536
1050 CC=CC+1
1060 NEXT BY
1070 NEXT ST
1080 PUT@A (XST,L)-(XEN,L),CH,OR
1090 CC=0
1100 NEXT L
1110 NEXT COL
1120 CLS 4
1130 END
1140 '
1150 '
1160 'SUB.
1170 '
1180 *SENDDATA
1190 PRINT #1,SCOM$;
1200 A$=INPUT$(1,#2):IF A$ <> ACK$ THEN *ERR
1210 PRINT #1,PAR$;
1220 A$=INPUT$(1,#2):IF A$ <> ACK$ THEN *ERR
1230 RETURN
1240 '
1250 *SENDA
1260 PRINT #1,ACK$;
1270 RETURN
1280 '
1290 *SENDC
1300 PRINT #1,CAN$;
1310 RETURN
1320 '
1330 *ERR
1340 CLS
1350 PRINT "ERROR !"
1360 PRINT RIGHT$(SCOM$,1);"コマンド ERROR !"
1370 END
1380 '
1390 '
1400 ' このプログラムはカラーイメージスキャナ GT-4000・GT-1000
1410 ' で使用できます。
1420 ' 360-410行の式から使用する機種・モードにあったものを選択
1430 ' して下さい。 (転送速度は9600bpsに設定して実行して下さい。)
1440 '
1450 ' 読み込みを途中で終了するときは[ESC]キーを押して下さい。
1460 '
1470 '** 読み取りサイズや、解像度などは280-440行で変更できます。
1480 '