home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / fbasic / scanner / gts_25.bas < prev    next >
BASIC Source File  |  1990-06-14  |  6KB  |  172 lines

  1. 10 '**************************
  2. 20 '* F-BASIC386         << SCANNER PROGRAM >>       *
  3. 30 '*   COLOR IMAGE SCANNER   * 256 COLOR 9600bps  * *
  4. 40 '*   GT-1000(GT-1000mode GT-3000Vmode), GT-4000   *
  5. 50 '*     COPYRIGHT FUJITSU LIMITED 1989             *
  6. 60 '*                                                *
  7. 70 '*   (AUTHOR) : HIDENORI-ISHIKIRIYAMA.            *
  8. 80 '*   (DATE.W) : 1989. 7.13                        *
  9. 90 '**************************
  10. 100 '
  11. 110 CLS
  12. 120 SCREEN@ 2
  13. 130 COLOR 6 : LOCATE 31,8 : PRINT "画像処理中 !!" : COLOR 7
  14. 140 DEFLNG A-Y
  15. 150 DEFDBL Z
  16. 160 DIM CH(161),QQ(2,255)
  17. 170 FOR I=1 TO 128
  18. 180  READ QQ(0,I)
  19. 190 NEXT I
  20. 200 DATA 0,8192,8192,16384,16384,24576,24576,32768,32768,40960,40960
  21. 210 DATA 49152,49152,57344,57344,0,0,8192,8192,16384,16384,24576,24576
  22. 220 DATA 32768,32768,40960,40960,49152,49152,57344,57344,32,32,8224,8224
  23. 230 DATA 16416,16416,24608,24608,32800,32800,40992,40992,49184,49184
  24. 240 DATA 57376,57376,32,32,8224,8224,16416,16416,24608,24608,32800,32800
  25. 250 DATA 40992,40992,49184,49184,57376,57376,64,64,8256,8256,16448,16448
  26. 260 DATA 24640,24640,32832,32832,41024,41024,49216,49216,57408,57408,64
  27. 270 DATA 64,8256,8256,16448,16448,24640,24640,32832,32832,41024,41024
  28. 280 DATA 49216,49216,57408,57408,96,96,8288,8288,16480,16480,24672,24672
  29. 290 DATA 32864,32864,41056,41056,49248,49248,57440,57440,96,96,8288,8288
  30. 300 DATA 16480,16480,24672,24672,32864,32864,41056,41056,49248,49248
  31. 310 DATA 57440,57440,128
  32. 320 FOR I=1 TO 127
  33. 330  QQ(0,I+128)=128+QQ(0,I)
  34. 340 NEXT I
  35. 350 FOR J=1 TO 255
  36. 360    QQ(1,J)=QQ(0,J)/8
  37. 370    QQ(2,J)=INT(QQ(0,J)/64) AND &HFF7F
  38. 380 NEXT J
  39. 390 CC=0
  40. 400 OPEN "I",#2,"COM0:"
  41. 410 OPEN "O",#1,"COM0:"
  42. 420 ESC$=CHR$(27)
  43. 430 STX$=CHR$(2)
  44. 440 ACK$=CHR$(6)
  45. 450 CAN$=CHR$(24)
  46. 460 '
  47. 470 ' コマンドパラメータ設定
  48. 480 '
  49. 490 COL=1 :                   ' 色指定       Cコマンド
  50. 500 DFO=3 :                   ' データフォーマット Dコマンド
  51. 510 MID=0 :                   ' 中間調処理          Bコマンド
  52. 520 SZOMX=100 : SZOMY=100 :   ' ズーム設定          Hコマンド
  53. 530 R1=100 : R2=100 :         ' 解像度設定          Rコマンド
  54. 540 NOU=1 :                   ' 濃度補正      Zコマンド
  55. 550 '
  56. 560                           ' 読み取り可能範囲
  57. 570       ' MAX=8*(INT((2.96!*R1*SZOMX/100+.1!)/8))   :'''GT-1000 mode
  58. 580       ' MAY=INT(4.2!*R2*SZOMY/100+.1!)
  59. 590       ' MAX=8*(INT((4*R1*SZOMX/100+.1!)/8))       :'''GT-3000V mode
  60. 600       ' MAY=INT(6.4!*R2*SZOMY/100+.1!)
  61. 610 MAX=8*(INT((8.56!*R1*SZOMX/100+.1!)/8))   :'''GT-4000
  62. 620 MAY=11.6!*R2*SZOMY/100
  63. 630 '
  64. 640 XST=0 : YST=0 :           ' 読み取り開始位置   Aコマンド
  65. 650 XEN=MAX-1 : YEN=MAY-1 :   ' 読み取り終了位置         
  66. 660 IF XEN>639 THEN XEN=639   ' 最大 (0,0)-(639,479) チェック
  67. 670 IF YEN>479 THEN YEN=479
  68. 680 '
  69. 690 DIM GD$(3,YEN,4)
  70. 700 '
  71. 710 'コマンド実行
  72. 720 '
  73. 730 SCOM$=ESC$+"C"
  74. 740  PAR$=CHR$(COL) : GOSUB *SENDDATA
  75. 750 SCOM$=ESC$+"D"
  76. 760  PAR$=CHR$(DFO) : GOSUB *SENDDATA
  77. 770 SCOM$=ESC$+"B"
  78. 780  PAR$=CHR$(MID) : GOSUB *SENDDATA
  79. 790 SCOM$=ESC$+"H"
  80. 800  PAR$=CHR$(SZOMX)+CHR$(SZOMY) : GOSUB *SENDDATA
  81. 810 SCOM$=ESC$+"R"
  82. 820  PAR$=CHR$(R1 MOD 256)+CHR$(R1 \ 256)+CHR$(R2 MOD 256)+CHR$(R2 \ 256)
  83. 830  GOSUB *SENDDATA
  84. 840 SCOM$=ESC$+"A"
  85. 850  PAR$=CHR$(XST MOD 256)+CHR$(XST \ 256)+CHR$(YST MOD 256)
  86. 860  PAR$=PAR$+CHR$(YST \ 256)+CHR$((XEN+1) MOD 256)+CHR$((XEN+1) \ 256)
  87. 870  PAR$=PAR$+CHR$((YEN+1) MOD 256)+CHR$((YEN+1) \ 256)
  88. 880  GOSUB *SENDDATA
  89. 890 SCOM$=ESC$+"Z"
  90. 900  PAR$=CHR$(NOU) : GOSUB *SENDDATA
  91. 910 '
  92. 920 PRINT #1,ESC$+"G";
  93. 930 '
  94. 940 ' MAIN
  95. 950 '
  96. 960 '     データREAD
  97. 970 '
  98. 980 XXX=INT((XEN+1)/2)-1
  99. 990 FOR COL=0 TO 2
  100. 1000   FOR L=YST TO YEN
  101. 1010     *WAIT
  102. 1020      HD$=INPUT$(1,#2) : IF HD$<>STX$ THEN *WAIT
  103. 1030      ST$=INPUT$(1,#2)
  104. 1040       IF (ASC(ST$) AND &H40)<>0 THEN GOSUB *SENDA : GOTO *WAIT
  105. 1050      ST$=INPUT$(2,#2)
  106. 1060      FOR ST=1 TO ((XXX-1) \ 200)+1
  107. 1070        RED=200
  108. 1080        IF ST=((XXX-1) \ 200)+1 THEN RED=((XXX-1) MOD 200)+2
  109. 1090        GD$(COL,L,ST)=INPUT$(RED,#2)
  110. 1100 ::::::::: IF INKEY$=ESC$ THEN GOSUB *SENDC : END :::::::::: ESC
  111. 1110      NEXT ST
  112. 1120     IF L<>YEN THEN GOSUB *SENDA 
  113. 1130   NEXT L
  114. 1140 NEXT COL
  115. 1150 PRINT #1,ESC$;"@";:DUMMY$=INPUT$(1,#2)
  116. 1160 CLOSE
  117. 1170 '     データ変換
  118. 1180 '
  119. 1190 CLS
  120. 1200 FOR COL=2 TO 0 STEP -1
  121. 1210   FOR L=YST TO YEN
  122. 1220     FOR ST=1 TO ((XXX-1) \ 200)+1
  123. 1230       GD$=GD$(COL,L,ST)
  124. 1240       FOR BY=1 TO LEN(GD$) STEP 2
  125. 1250         ZZ=QQ(COL,ASC(MID$(GD$,BY,1)))
  126. 1260         ZZ=ZZ+QQ(COL,(ASC(MID$(GD$,BY+1,1))))*65536
  127. 1270         IF ZZ>=2147483648# THEN ZZ=ZZ-4294967296#
  128. 1280         CH(CC)=ZZ
  129. 1290         CC=CC+1
  130. 1300       NEXT BY
  131. 1310     NEXT ST
  132. 1320   PUT@A (XST,L)-(XEN,L),CH,OR
  133. 1330   CC=0
  134. 1340   NEXT L
  135. 1350 NEXT COL
  136. 1360 END
  137. 1370 '
  138. 1380 '
  139. 1390 'SUB.
  140. 1400 '
  141. 1410  *SENDDATA
  142. 1420   PRINT #1,SCOM$;
  143. 1430   A$=INPUT$(1,#2):IF A$ <> ACK$ THEN *ERR
  144. 1440   PRINT #1,PAR$;
  145. 1450   A$=INPUT$(1,#2):IF A$ <> ACK$ THEN *ERR
  146. 1460  RETURN
  147. 1470 '
  148. 1480  *SENDA
  149. 1490   PRINT #1,ACK$;
  150. 1500  RETURN
  151. 1510 '
  152. 1520  *SENDC
  153. 1530   PRINT #1,CAN$;
  154. 1540  RETURN
  155. 1550 '
  156. 1560  *ERR
  157. 1570   CLS
  158. 1580   PRINT "ERROR !"
  159. 1590   PRINT RIGHT$(SCOM$,1);"コマンド ERROR !"
  160. 1600  END
  161. 1610 '
  162. 1620 '
  163. 1630 ' このプログラムはカラーイメージスキャナ GT-4000・GT-1000
  164. 1640 ' で使用できます。
  165. 1650 ' 570-620行の式から使用する機種・モードにあったものを選択
  166. 1660 ' して下さい。  (転送速度は9600bpsに設定して実行して下さい。)
  167. 1670 '
  168. 1680 ' 読み込みを途中で終了するときは[ESC]キーを押して下さい。
  169. 1690 '
  170. 1700 '** 読み取りサイズや、解像度などは490-650行で変更できます。
  171. 1710 '
  172.