Scanner driver 68000

This commit is contained in:
Antoine Vignau 2024-08-22 11:48:58 +02:00
parent ba6d9f58dd
commit 7ed46c39b5
26 changed files with 12455 additions and 6870 deletions

15
scsi2/MAKEBW.S Normal file
View File

@ -0,0 +1,15 @@
* Expansion linker file
DSK SCANNERSCSIBW
TYP $B3
AUX $DB00
* Assemble files
ASM SCANNERSCSIBW.S
KND $0000
SNA ScannerSCSI
* END

View File

@ -2,7 +2,7 @@
* Expansion linker file * Expansion linker file
DSK SCANNERSCSI DSK SCANNERSCSIC
TYP $B3 TYP $B3
AUX $DB00 AUX $DB00

View File

@ -2,7 +2,7 @@
* Expansion linker file * Expansion linker file
DSK SCANNERSCSI DSK SCANNERSCSIG
TYP $B3 TYP $B3
AUX $DB00 AUX $DB00

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

3346
scsi2/SCANNERGREY_Output.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
scsi2/SCANNERSCSIBW Normal file

Binary file not shown.

2196
scsi2/SCANNERSCSIBW.S Normal file

File diff suppressed because it is too large Load Diff

BIN
scsi2/SCANNERSCSIC Normal file

Binary file not shown.

BIN
scsi2/SCANNERSCSICOLOR Normal file

Binary file not shown.

View File

@ -11,6 +11,7 @@
mx %00 mx %00
rel rel
dsk SCANNERCOLOR.l
lst off lst off
*---------- *----------
@ -340,7 +341,7 @@ deviceMENU = *
bcc ]lp bcc ]lp
bne deviceMENU2 bne deviceMENU2
jmp searchMENU ; or even 0 to exit jmp searchMENU ; or even 0 to exit
deviceMENU2 cmp #"2"+1 deviceMENU2 cmp #"4"+1
bcs ]lp bcs ]lp
sec ; call the routines sec ; call the routines
@ -355,6 +356,9 @@ deviceMENU3 jsr $bdbd
ptrCOMMANDS ptrCOMMANDS
da doINQUIRY da doINQUIRY
da previewPAGE da previewPAGE
da doLESS
da doMORE
* da doMODESENSE6 * da doMODESENSE6
* da doEXPLORE * da doEXPLORE
* da doGETMODE * da doGETMODE
@ -369,28 +373,55 @@ strDEVMENU
asc ' 0. Go back to previous menu'0d asc ' 0. Go back to previous menu'0d
asc ' 1. Inquiry'0d asc ' 1. Inquiry'0d
asc ' 2. Preview page'0d asc ' 2. Preview page'0d
asc ' 3. Decrease length and test'0d
asc ' 4. Increase length and test'0d
asc 00 asc 00
*---
doLESS dec zeLEN1
dec zeLEN2
dec zeLEN3
bra showLEN
doMORE inc zeLEN1
inc zeLEN2
inc zeLEN3
showLEN PushLong #zeLEN
_WriteCString
lda zeLEN1
jsr showBYTE
PushWord #$d
_WriteChar
jmp previewPAGE
zeLEN asc 0d'Buffer length: $'00
*---------------- *----------------
* APPLE SCANNERS * APPLE SCANNERS
* *
* Scanner (300dpi 4-bit grey) * Scanner (300dpi 4-bit grey)
* 06 00 02 02 2C 00 00 00 'APPLE SCANNER A9M0337 ' * 06 00 02 02 2C 00 00 00 'APPLE SCANNER A9M0337 '
* 06 00 02 02 28 00 00 00 'CPC INC Smart Scan(FW) ' * 06 00 02 02 28 00 00 00 'CPC INC Smart Scan(FW) '
* * => link is / sync is
* OneScanner (300dpi 8-bit grey) * OneScanner (300dpi 8-bit grey)
* 06 00 02 02 2C 20 04 08 'APPLE SCANNER II 2.02' * 06 00 02 02 2C 20 04 08 'APPLE SCANNER II 2.02'
* 00 20 00 90 00 27 34 01 08 A0 48 00 FF FF * 00 20 00 90 00 27 34 01 08 A0 48 00 FF FF
* * => link is 1 / sync is 0
* Color OneScanner (300dpi 24-bit color) * Color OneScanner (300dpi 24-bit color)
* * => link is
*
* Color OneScanner 600/27 (600dpi 27-bit color) - CANOSCAN 300 (CS300) * Color OneScanner 600/27 (600dpi 27-bit color) - CANOSCAN 300 (CS300)
* 06 00 02 02 1F 00 00 10 'CANON IX-03035B 1.01' FF * 06 00 02 02 1F 00 00 10 'CANON IX-03035B 1.01' FF
* * => link is 0 / sync is 1
* Color OneScanner 1200/30 (1200dpi 30-bit color) - CANOSCAN 600 (CS600) * Color OneScanner 1200/30 (1200dpi 30-bit color) - CANOSCAN 600 (CS600)
* 06 00 02 02 1F 00 00 10 'CANON IX-06015C 1.07' FF * 06 00 02 02 1F 00 00 10 'CANON IX-06015C 1.07' FF
* * => link is 0 / sync is 1
* ---End of list * ---End of list
*---------------- *----------------
@ -684,7 +715,7 @@ strPRL asc 0d' Product revision level: '00
previewPAGE previewPAGE
jsr openSCANNER jsr openSCANNER
jsr setMODE jsr setMODE ; works fine but we want 1200dpi vertical
bit setHALFTONES bit setHALFTONES
jsr setWINDOW jsr setWINDOW
jsr askforMEM jsr askforMEM
@ -738,8 +769,8 @@ os_ok2 PushLong #endOS
startOS asc 0d'Start openSCANNER ($'00 startOS asc 0d'Start openSCANNER ($'00
startOS2 asc ')'00 startOS2 asc ')'00
openOS asc ' (open not OK) '00 openOS asc ' (open not OK)'00
waitOS asc ' (wait not OK) '00 waitOS asc ' (wait not OK)'00
endOS asc '...End'00 endOS asc '...End'00
proOPEN dw 2 ; 00 pcount proOPEN dw 2 ; 00 pcount
@ -788,7 +819,7 @@ st_ok PushLong #endSM
startSM asc 0d'Start setMODE ($'00 startSM asc 0d'Start setMODE ($'00
startSM2 asc ')'00 startSM2 asc ')'00
controlSM asc ' (control not OK) '00 controlSM asc ' (control not OK)'00
endSM asc '...End'00 endSM asc '...End'00
proSETMODE proSETMODE
@ -805,52 +836,21 @@ setmodeBUFF
hex 10 ; 01 PF bit is 1 for SCSI-2 hex 10 ; 01 PF bit is 1 for SCSI-2
hex 00,00 ; 02 reserved hex 00,00 ; 02 reserved
dfb 12 ; 04 parameter list length dfb 12 ; 04 parameter list length
hex 00,00,00,00,00,00,00 hex 00 ; 05 control
hex 00,00,00,00,00,00
adrl setmodeonescannerDATA adrl setmodeonescannerDATA
*--- for Scanner *--- for OneScanner
setmodeDATA
hex 00,00 ; 00 mode parameter header (8.3.3, table 91)
hex 00,00
hex 01 ; 04
hex 08 ; 05
hex 00 ; 06
hex 00 ; 07
hex 02 ; 08
hex 58 ; 09
hex 00,00 ; 10 reserved - 2 bytes
*--- For OneScanner
setmodeonescannerDATA setmodeonescannerDATA
hex 00,00 ; 00 mode parameter header (8.3.3, table 91) hex 00,00 ; 00 mode parameter header (8.3.3, table 91)
hex 00,00 hex 00,00
dfb 1 ; 04 page code - Apple-specific parameter page hex 03 ; 04 00 - measurements units page
dfb 8 ; 05 page length - Apple-specific page hex 06 ; 05 01 - parameter length
dfb 0 ; 06 graymap (Apple Scanner) hex 00 ; 06 02 - basic measurement unit (see 15.3.3.1 table 298) = inch
; 0: dark hex 00 ; 07 03 - reserved
; 1: normal hex 02,58 ; 08 04 - measurement unit divisor (258x = 600d, from a std 1200)
; 2: light
dfb %00000000 ; 07 auto background adjustment threshold
; Default threshold value is 64 (Apple Scanner)
; bit 0 - 0: do not use custom CCT / 1: use custom CCT (3*3 Color Correction Table)
; bit 1 - 0: do not use custom gamma / 1: use custom gamma
; bit 2 - 0: setting of the ambler LED off / 1: setting on (OneScanner)
dfb %00000000 ; 08 parameters setting 1
; bit 0 - 0: turn lamp off / 1: turn lamp on
; bit 1 - power of the CCD array on / 1: power off
; bits 2/3 - 00: normal / 01: fast / 10: high speed (OneScanner)
; bit 2 - 0: do not reverse B&W / 1: reverse B&W (Color OneScanner)
; bit 3 - 0: no ICP / 1: ICP on (Color OneScanner)
; bit 4 - 0: no MTF / 1: MTF on (Color OneScanner)
dfb 0 ; 09 color sensor (color onescanner)
; 0: all
; 1: red
; 2: green
; 3: blue
hex 00,00 ; 10 reserved - 2 bytes hex 00,00 ; 10 reserved - 2 bytes
hex 00,00 ; for testing purposes
*----------------------- *-----------------------
* SET HALFTONES * SET HALFTONES
@ -885,7 +885,7 @@ sht_ok PushLong #endSHT
startSHT asc 0d'Start setHALFTONES ($'00 startSHT asc 0d'Start setHALFTONES ($'00
startSHT2 asc ')'00 startSHT2 asc ')'00
controlSHT asc ' (control not OK) '00 controlSHT asc ' (control not OK)'00
endSHT asc '...End'00 endSHT asc '...End'00
proSETHALFTONES proSETHALFTONES
@ -1004,7 +1004,7 @@ sw_ok PushLong #endSW
startSW asc 0d'Start setWINDOW ($'00 startSW asc 0d'Start setWINDOW ($'00
startSW2 asc ')'00 startSW2 asc ')'00
controlSW asc ' (control not OK) '00 controlSW asc ' (control not OK)'00
endSW asc '...End'00 endSW asc '...End'00
proSETWINDOW proSETWINDOW
@ -1012,48 +1012,52 @@ proSETWINDOW
ds 2 ds 2
dw $8024 dw $8024
adrl coloronescannerBUFF ; for OneScanner and above adrl coloronescannerBUFF ; for OneScanner and above
adrl 80 ds 3
zeLEN1 dfb 72
ds 4 ds 4
*--- For Apple Color OneScanner *--- For Apple Color OneScanner
coloronescannerBUFF coloronescannerBUFF
dw $0000 dw $0000
hex 24 hex 24 ; 00
hex 00 hex 00 ; 01
hex 00,00,00,00 hex 00,00,00,00 ; 02
dfb 00,00,72 ; length is 50 bytes for OneScanner dfb 00,00 ; 06 length is 72 bytes for the Color OneScanner
hex 00 ; control ($80: the Apple bit) zeLEN2 dfb 72 ; 06 length is 72 bytes for the Color OneScanner
hex 00,00 hex 80 ; 09 control ($80: the Apple bit)
adrl coloronescannerDATA hex 00,00 ; 10
adrl coloronescannerDATA
coloronescannerDATA coloronescannerDATA
hex 00,00,00,00,00,00 ; 00 hex 00,00,00,00,00,00 ; 00
dfb 00,64 ; 06 window length (canon scanners) dfb 00 ; 06 window length (canon scanners)
zeLEN3 dfb 64 ; 06 window length (canon scanners)
dfb windowID ; 08 00 window identifier dfb windowID ; 08 00 window identifier
hex 00 ; 09 01 reserved hex 00 ; 09 01 reserved
dfb 00,75 ; 10 02 x-axis resolution dfb 00,75 ; 10 02 x-axis resolution
dfb 00,75 ; 12 04 y-axis resolution dfb 00,75 ; 12 04 y-axis resolution
hex 00,00,00,00 ; 14 06 x-upper left hex 00,00,00,00 ; 14 06 x-upper left
hex 00,00,00,00 ; 18 10 y-upper left hex 00,00,00,00 ; 18 10 y-upper left
* Photographie 5 x 3,5 = 6000 x 4200 = $1770 x $1068 * Photographie 5 x 3,5 = 6000 x 4200 = $1770 x $1068
hex 00,00,17,70 ; 14 x-width (27D8 for 10200) * Photographie 6 x 4 = 7200 x 4800 = $1C20 x $12C0
hex 00,00,10,68 ; 18 y-height (3390 for 13200) hex 00,00,1C,20 ; 22 14 x-width (27D8 for 10200)
hex 00,00,12,C0 ; 26 18 y-height (3390 for 13200)
dfb 0 ; 30 22 brightness dfb 0 ; 30 22 brightness
dfb 0 ; 31 23 threshold dfb 0 ; 31 23 threshold
dfb 0 ; 32 24 contrast dfb 0 ; 32 24 contrast
dfb 5 ; 33 25 imageComposition (see table 283) dfb 5 ; 33 25 imageComposition (see table 283)
dfb 24 ; 34 26 bitsPerPixel (8) dfb 24 ; 34 26 bitsPerPixel (8)
hex 00,01 ; 35 27 halftone (2) hex 00,00 ; 35 27 halftone (2 or 1)
dfb 128+3 ; 37 29 RIF + paddingType (byte boundary) dfb 3 ; 37 29 RIF + paddingType (byte boundary)
hex 00,00 ; 38 30 bit ordering hex 00,00 ; 38 30 bit ordering
hex 00 ; 40 32 compression type hex 00 ; 40 32 compression type
hex 00 ; 41 33 compression argument hex 00 ; 41 33 compression argument
hex 00,00,00,00,00,00 ; 42 34 hex 00,00,00,00,00,00 ; 42 34
dfb 255 ; 48 40 OPT_VOLT_REF_TOP = 255 dfb 0 ; 48 40 OPT_VOLT_REF_TOP = 255
dfb 1 ; 49 41 OPT_VOLT_REF_BOTTOM = 1 dfb 0 ; 49 41 OPT_VOLT_REF_BOTTOM = 1
dfb 0 ; 50 42 bit 3: GRC, bit 2: Mirror dfb 0 ; 50 42 bit 3: GRC, bit 2: Mirror
hex 00 ; 51 43 hex 00 ; 51 43
hex 00 ; 52 44 hex 00 ; 52 44
@ -1063,20 +1067,21 @@ coloronescannerDATA
hex 00 ; 56 48 hex 00 ; 56 48
dfb 1 ; 57 49 dfb 1 ; 57 49
dfb 1 ; 58 50 dfb 1 ; 58 50
hex 255 ; 59 51 Hilite R dfb 0 ; 59 51 Hilite R
hex 0 ; 60 52 Shadow R dfb 0 ; 60 52 Shadow R 1
hex 00 ; 61 53 hex 00 ; 61 53
hex 255 ; 62 54 Shadow G dfb 255 ; 62 54 Hilite G 255
hex 00 ; 63 55 hex 00 ; 63 55
hex 0 ; 64 56 Hilite G dfb 0 ; 64 56 Shadow G 1
hex 00 ; 65 57 hex 00 ; 65 57
hex 00 ; 66 58 hex 00 ; 66 58
hex 00 ; 67 59 hex 00 ; 67 59
hex 00 ; 68 60 hex 00 ; 68 60
hex 00 ; 69 61 hex 00 ; 69 61
hex 255 ; 70 62 Hilite B dfb 0 ; 70 62 Hilite B 255
hex 0 ; 71 63 Shadow B dfb 0 ; 71 63 Shadow B 1
ds 10 ; for padding
*----------------------- *-----------------------
* ASK FOR MEMORY * ASK FOR MEMORY
*----------------------- *-----------------------
@ -1176,7 +1181,7 @@ ss_ok PushLong #endSS
startSS asc 0d'Start scanSCANNER ($'00 startSS asc 0d'Start scanSCANNER ($'00
startSS2 asc ')'00 startSS2 asc ')'00
controlSS asc ' (control not OK) '00 controlSS asc ' (control not OK)'00
endSS asc '...End'00 endSS asc '...End'00
proSCAN dw 5 proSCAN dw 5
@ -1237,7 +1242,7 @@ rs_ok PushLong #lengthRS
startRS asc 0d'Start readSCANNER ($'00 startRS asc 0d'Start readSCANNER ($'00
startRS2 asc ')'00 startRS2 asc ')'00
controlRS asc ' (read not OK) '00 controlRS asc ' (read not OK)'00
lengthRS asc ' Len=$'00 lengthRS asc ' Len=$'00
endRS asc '...End'00 endRS asc '...End'00
@ -1277,7 +1282,7 @@ cs_ok PushLong #endCS
startCS asc 0d'Start closeSCANNER ($'00 startCS asc 0d'Start closeSCANNER ($'00
startCS2 asc ')'00 startCS2 asc ')'00
closeCS asc ' (close not OK) '00 closeCS asc ' (close not OK)'00
endCS asc '...End'00 endCS asc '...End'00
proCLOSE dw 1 ; 00 pcount proCLOSE dw 1 ; 00 pcount

View File

@ -11,6 +11,7 @@
mx %00 mx %00
rel rel
dsk SCANNERGREY.l
lst off lst off
*---------- *----------
@ -1026,8 +1027,9 @@ setwindowDATA
hex 00,00,00,00 ; 06 x-upper left hex 00,00,00,00 ; 06 x-upper left
hex 00,00,00,00 ; 10 y-upper left hex 00,00,00,00 ; 10 y-upper left
* Photographie 5 x 3,5 = 6000 x 4200 = $1770 x $1068 * Photographie 5 x 3,5 = 6000 x 4200 = $1770 x $1068
hex 00,00,17,70 ; 14 x-width (27D8 for 10200) * Photographie 6 x 4 = 7200 x 4800 = $1C20 x $12C0
hex 00,00,10,68 ; 18 y-height (3390 for 13200) hex 00,00,1C,20 ; 14 x-width (27D8 for 10200)
hex 00,00,12,C0 ; 18 y-height (3390 for 13200)
hex 00 ; 22 brightness hex 00 ; 22 brightness
hex 00 ; 23 threshold hex 00 ; 23 threshold
hex 00 ; 24 contrast hex 00 ; 24 contrast

File diff suppressed because it is too large Load Diff

View File

@ -1 +1,4 @@
SCANNERSCSI=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000) SCANNERSCSI=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
SCANNERSCSIG=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
SCANNERSCSIBW=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)
SCANNERSCSIC=Type(B3),AuxType(DB00),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
scsi2/scans/Scan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
scsi2/scans/Scan19.BIN Normal file

Binary file not shown.

BIN
scsi2/scans/Scan19.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

BIN
scsi2/scans/Scan19_2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

BIN
scsi2/scans/bayer4tile8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B