33
XEROX PALO ALTO RESEARCH CENTER 3333 Coyote Hill Road Palo Alto California 94304 Jasmine Scanner Manual BY Joe Maleson Version of August 11, 1980 [IVY]<Jasmine>Docs>JasmineManual.PRESS This is the manual for Jasmine, a low-cost experimental optical scanner which operates at a maximum resolution of 96 8-bit samples per inch. It is intended to contain all the information necessary to build hardware and software interfaces, and to understand the scanner electronics. //£§¤“«££§¤§“‹flfl“«–‡¤§“fl‹‹««–fl‡–‹·‡„·fl••‰‰»‚fi'“§‹›§eN HNQFED>IINSMPXMT‘S>WWSUSbSX[^MVVPWQCb‘VZRTKKcSaZSHUXO NPPQG=<IELNKPQOOWNJPSRYY[MW^\KPWTUXEiaU\^UKLeTe[NNUXY MVTJJ@BJHFNVZXMRSDFX‘T\RVNV__NNVTTVJjYSW]PDHcYa]YRSSW OOZRKDFJKRP\SZKQTFQY[V^S_RW]_LUZVX\UsfZ]‘ROQiVeeYQTOY OU\OIBJLGIO]S‘JRUKCSXNYP\P^^ePV\]_\]nb^aW\UXjUb_MHVZ^ INXKKFKKNLMXWZQXXIJURMWZ^SacbMZ^ao^dmbccX_NQkSi^UHUPa KOQLKMOJIFFXTYIORMUWSJVWWL_\dTW‘fthjebdcZ^OMbU^[URNZ_ EIRMABKOFKGZRQIRHDHIRLQXRS‘Y_QWa‘m_ccc‘_WXML]TbcRIPT[ >@JK?8JMA@@QNLGKN?DHPDDSLJZXXKP][j‘a]V]UT]IM\RUYSDPQT ?EJL>8NP:<FSVOEGP=DOP?HPIEONP>STWe\\WQ_UN^HI\W[XGCHMQ DKJJ>CNQG@FT\K@OOAGOT?JTQBQRQHSQTdYXQNbQPZCO]ZXYOCHIT CHKA;BLSNLBMZRAJNCLKP:D[QBTIPEOLO\PWCX^ONUFWWSUTNCKIP JRKCHXZXRMLSXZHMUFPLVBRZWFPO[GVYT\TNLb^VV\U_WZZ]RBLMT MQN;UW[VYNFS^YKIOFRO\FJUZFUNVO\[SZRK[b\XU]P]V\YZUDMKZ MNP>UY]XWRKO‘XLOO>POUDOOSBTOZEW]PNGPa[ZVW]QWOYY]RJUKX GFK>KNZSUJOEVMGHQ<KPUIIRSFRVYERQJHH\[VUN]TISNXWYVDMGU >>>:@CLJGBE;SFC@M9HGD=@DH<HML<JQDCGPWIRCSIAOHPMRK@ACK @E75=JIJEE?6LFC:B;>HD:@GE=FMR8@LCJHNLCKCGE@E=EFKRU\ey 7;12:A=7=>>2@?=8<27=<5<A<4=CB98C>GIOT[fnx§‹‚ˆ˘˘˚˚˘˙¨¸ 14&45@4:5=95;;96800<B8GQV]lv~¤‡»…ˆˆ´¿´‰„‚‰`ˆ˜`ˆ`……¿˜˜ /4+226274DKKT_hp|/ƒƒ§§‹fi›««fl²‡‡¶”–»…ˆ´`„‚•‚‰´ˆˆ`‰”¿¿ˆ &5*//00<~¥'‹‹§«¤¤§£“§ƒ/¤ƒ¤''''–²²«‚‚‰‰‰”·²·‚„‚‰‚„••”» +-*-&+-4/“flfi««'›fl›flflflfi²«‹‡¶‡‡¶¶„‚”»»„„·¶‚•¶¶‚‚¶„••¶·· +.+/47BLy““‡‡›“““²‡‡¶‡‚”¶¶flfifl‡¶•»•¶»¶¶¶„¶‚·••²²•²«¡vr +:H«fl²²ƒ”…‚¶··²•»”»„·¿‰„‚²·‡„»…‚‚»‰…‰»‰„…¶fl'}eO?/(! * )7@«•··‡‚„»””²·……‰…¶…»¶”·„„•”»¶»””²“|n‘VF9+&(%&!!!"$# (4;¡…”‰…ˆ˜´¿´ˆ¯`‰•”`¿”fl¡rcSI>0.)’$#!#%" (! #T`¿¡ %/7fi»¿´¿˜‰`¯˜˙˙˜˜ˆ¿‰»‰§NB70,.*%)&’* ! !!"E!S¨˙¤O/¥…”„ &+6¥»‰…¿¯…´˘ˆˆ‰¶„»‰!*(&""#! /.M˜˜ˆ•‡»‰„¶»•fi‹››²‰¿‰…ˆ¿ $(/·……‚”‰‰„´‚·•# ’;‚¿»»”„‚•¶²·”„‹‡¿¿¿‰¿…»´¿‚»‚„¶‡²‡ !’2›`¯¿…``‰´˙…‰”…»!! 9„ˆ…»‚¶‡„fl·¶”„•£ƒ·˜ˆˆ˜˜´ˆ…¿‰¿‚‡ +9B£“•¿»‚¿¿¿¿`‰…!#$$#""!2£¿¿»„¶²²·‡¶•‚‚”‡£¤»``ˆˆ¿¿”‰” baa£«–ˆ¯˘˙ˆ‰…¯¨˙˘¯ˆ‰´˜¶$$$&" " %;j/˙¯`‚…¿••„‰ˆˆ`•¥¶¿´ ‘c^¥›‹²‰`˜¿`˜˜˘˙˜ˆ´˙¿»*!!# %6M\/…””•”„¶‡„”‰·‡fi‡„‰¿˜˘` ZWR£‹§›‰‚„”„»»´´`´`¿»‚0 $6DOY”‚·¶‚‚¶¶·•¶••¶¶··”¿ˆ‰…„ [‘\£²‡˙¯˘˙´¯˙˙˝˙˘˘Y(#’%$"! "")8BEAS…‰´´˜…`‰‰`‰”¿»”»˜˙ Zae§²²‡”˚˚¸¯¿ˆ¯˚˝˚˚˙`˙"’%%$!" 0:E?<G^§¿´´˙¯˙˜ˆ‰‰¯˘ˆ„‰ SQT“«––ˆ—˝ˇ¨—ˇ¸¸¨¸´Q$(+&! ## (:FFGILTe‡ˆ¸˚˘ˆ¿ˆ˝˙´´… \YV§'“«'·˜¸¨˛˛¨¸˛¯˙˙¯˜£)*&%!"!#-9@KOGEJFU[b«´¯¯˘ˆ´‰‰` e^a¥¤ƒ'“–`¨˚˛¯˚˝¸¸˙```‰»”r)+(&!!!! # !"$#)..,,,222AJM [[Xk¡¡ƒ§«‡…¯¨¨¯˚˘˙˘˘ˆ…‚‚…¶»fiC0.’##$"!$’)%"*/33469:;;8 ^_\]/¥¢“›²˜»‰¶¶¶¶•¶‚¶761442533:?84769:9:=;562//*,298/ jhmh{‹¤'“fi·……˜¿‰˜˜¶•‚»”…„‰¶»„}PSRTSMHLKGG@?89:411.+-+ otprm£fi§'›·‚˘˚˚´„ˆˆ˘˚—¨˘´˘´„faa‘aZVULF@;987730310.-+( {z~}w·flfl²‚‰´¸¸˚˛˝„˘¨¯˚¨˙˜ˆ˙˙¢V[ZVOHHED;887872/1..*/(’ fi„”‚´˘¸˚˘`˛˝˝˝ˆMTYTLJHGF?=<A;7:64234..467360243.)(%)’ `¨˙˝¸˛—˚ÆÆÆ˚ZHOTIECA?::<=?<;:456414593537482+’+)1++++ •`˚˝˛–EJLIFE??<=9;>879:410.3872203450*)(),-*%%-1@Jd„ˇ ¨—ƪ˚FIKKFDA;:8=9;95533469851643751./,+/,.*,’,:DMj²Æ… ¢¿Æ¯ÆªKFGEGA;786:67454969751277<210*++(")’*/>EVch^Xv… «˚Æ¿™AIE<D<=;<79<9>:53174-537963+/9FNQXTTF>5)%%*4f‚ˇ` ™‰lFB;A:;88<B;8010/.2-/;HPVSVPKD7-"#$ & #&$’3c„—˝e>N™ ·—´¨T9:=:7369;24<JZ]]WWMC:*%#$ ! $##"!"#%-l„˜XU_£¢ƒ‡˛ ˚—`2=69=IU‘c‘UJ<*" !""# # #,r—”ˇ¯APk«»\>bi{yt¶›£§‹¡ ‡˝¯\__YOC2*%%(()! #!$#!# "! ! "!!0y˛˝—˛˝˚¿6Stfl‰¡hK?> ˇ—¶˝E++$$!&%,%#$’# %!!"##"! !&!!! !"$.ˇ´ˇ—”+i~›Q@Cicv ˛ˇ˛˝ˇ/ˆC**%&$%#&$’!%$ $$% ! "$-¸˝¨—˛“8TR¥¸˛—¸qZ^MCABE /˙¨˘¨—˝—˝¸`¨˚˛¸¯˚˜´D#%%# $%("&"!#!"$ ’ˇ˝—ˇˇˇ¨ˆ˙˝¯˙¡PT ™‰¯˘——˝˚¨‚˘˙˙˛ˇ¨˙ˆF’%%$!$%&$& "" !! $%-˛˘˚˙¨¯˚¸˚¨PH ™/˚˝¸˝ˇ˛¨¸˛¢•˝—ˇ¨˜K)((#$&&&$%" !! !""" !$! ""’3¸˙ˆ˘ ™¨——˝˘/‰˛˙˙P/(&$!#&’!"’"#" $"# "# !!$%%/…„˙ˇ—¸bdR2% ™™¢¡¡›ˇ—˜˚‹‚˛ˇ˘˘V*)’$%**%’&-$! #"$!+!" #$!$#$####$$#’ £¥§§¢—˝˜˝–‡ˇ˛—˙V-+’%+&’%’**%$# "$""&+%!! "#%#!"&"##%> ™£/'¤ƒ“”—¨¨„ˇ˝Y/.)1(&)/’,’)$$’%$$$(/*$&"’#$#$’1BQl~›‡ ¡¡¡/¥£¨˛˙¨'ˇ˛¨[//()%,+((’*’%$&&&)$"##"&-AQo²˙˛˛˛˙˙˜¯˚ ~™„˝¨¨¸˛´¢˝¸˛¸—˛˘[--)’$*&(’%&)#"%!!-1B[v›…¯¸¸´——˝ˇ˝¨˙ ˝˝˙¯¯¯§˝ˇˇ˘]*,(%%’&($&+2Eax¶˘ˆ˙—ˇ¸—˛˚˘˙¸˝˛˛¨¨˘˘˚—ˇ˝¨• ™¿¸ˇ¯ˆ¨——«˝¸¸¸g.’*)4K]v§¿˚ˇ˝˝¸˝˘˙˛˛˝˚…–mS9- !")7Bb|™z ™˙ˆ‰‰˘—˛“—˛ˇ˚¨pfi…¨ˇˇ—ˇ—˙˜`²nP8+$#").5?NXluv}z¡£}qeZa¶ ™„¯˙»”¿¸¸¸/˝˝¨˝—˙˝˙˘˙˘˘˙˝—ˇˇ¨„¥\>.!"4FWm¢¢¡¤yoqqmlcw‡ ™™¥˚¯¯˘ˇ˛ƒ¸¨˙¸˝¸——˝˚˜¨¨˝˛ˇˇ˙•|‘J2# # (4DWat™™/¢ytgb># ¢'¤//£˝˙˙¨§¨¨˙¸˚˚—ˇ—ˇ˚˘¯˚˜›}bP9*)()2;H[es™£/¡§ƒƒ£¡/¥¥ ¢¢¢£¶ˇˆ˝—˚¥˙˝˚——¨¸˝˙¨«iO=($/3AQYh|¥§‹fl“¥¡££§¢¢/§¡{ ™£fi“¡˝˙˙˚˙§´ˇ¨˝—ˆ‡xX?’$&’5L]y£‹¥‹‡„fi«¡¤fl¤flfifi‹›£¢“¥£/§ “§¢/¢¢‰—¸˛¸'ˆ˚˙˚¨¿flxYH6’&.7M[t“¥fi„•`¿fi§¡§“§«‡«£//›‹–² ™˛ˆ„…£vu_P;)))/BVkzfi‡•‰‚…„fl–fi¥¥“ƒ¡¡¤§§‹››“–‚„„„–«fi•‡² E0&!"&(,AO‘l|¤fi–²‡‹“'¢ƒƒ¥¥'›²•„‡‹¥§§²•‡·“¤§'¤§‹fl‹'«'ƒ s{ƒ¢ƒ/¡/ƒ}IPZs{¥›fi–²‡–›¥¥™£“fl²²”``”‚»·›§‹–‚»„'‹/¥''§™ ™™™™™«¤'§'fi·„”¥£›•‰‰»ˆ˜fifl¤§ƒ¢¥™£¡£ƒ¥‹²–‡§£§‹“«§§''ƒƒ¥ ¡“·²„²§/''«²›¤¤¤fi²'«–‡›fl‡¥¢ƒ§‹¥¡¢¡'“§ƒ£¤‹fl”•fi¢§'¤'«²“ ™ƒ¥“¤‹‹›“§£§ƒ£ƒ²›«••„“§¢¡¢££¡§–•›«›'/‹/ƒfi'£¥¥“›fl›‡–‡› ¡¥§'–`•‡ƒƒ¢‹“'ƒ§¢/¡¡ƒ‹·²“ƒ·´¯¶¢™£¢›¤fl²«£££§««¥¤›fi¶„²… ~pfy™¥¤·¤›·¶–fi›¢¢¢£§›¤'«¢¥'›«fi–fl›fi‡–«¤¡'flfi“'ƒ/'¢¤›‹¤‹ ™¡¤//¤¥¡¥/¤¤/§¡£“flfi²fi˜»·–ƒƒ¥¥'²·‡¶¶·«‹¡/“››‡«²fl‡“¢'fi² ¢ƒ¥“¤›'‹ƒ¤“'¡¡/ƒfl›fl›²¶‡''/ƒ'fl›¶·‰¶„˜`¯¿…‡‹fifi'flfl–‹«§pZ

Jasmine Scanner Manual - Computer History Museum

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Jasmine Scanner Manual - Computer History Museum

XEROXPALO ALTO RESEARCH CENTER3333 Coyote Hill RoadPalo Alto California 94304

Jasmine Scanner ManualBY Joe Maleson

Version of August 11, 1980

[IVY]<Jasmine>Docs>JasmineManual.PRESS

This is the manual for Jasmine, a low-cost experimental optical scanner which operates at amaximum resolution of 96 8-bit samples per inch. It is intended to contain all the informationnecessary to build hardware and software interfaces, and to understand the scanner electronics.

������ ⁄⁄£§¤“«££§¤§“‹°fl°fl“«–‡¤§“fl‹‹««–°fl‡–‹°µ·‡„·fl••‰‰»‚µfi'“§‹›§���eN?;99A>BHKMLGCA?9?66@[a_XRSPLQQ^gqthXKINWODDFLIBIA:>0-424//4/-%.HNQFED>IINSMPXMT‘S>WWSUSbSX[^MVVPWQCb‘VZRTKKcSaZSHUXORe\YUOKFIPKGIIF@B?C5;C5437414-.164:=„˙¯˘˜´É——ɸɴ˚¨´¯À•·�"$.&(4<@CIRJLFCHEA=9<8NPPQG=<IELNKPQOOWNJPSRYY[MW^\KPWTUXEiaU\^UKLeTe[NNUXYYh\ZPGFF@SJEMM@CJ7A6;7455?:50&&1/108�`´¨É˙˝Ñ˛Éɯ¯˘˚¯´¾…¶w�"(&%3<>FDOJHGB?;=>A<7MVTJJ@BJHFNVZXMRSDFX‘T\RVNV__NNVTTVJjYSW]PDHcYa]YRSSW‘fVVTECMESNGLE<?D=98<3234?361+(0,922v¾ˆ˚˙˘¨—˝¸Ì¸¯˘É˜`»”‚j�",&"26@EEMJEBD@=;?;76OOZRKDFJKRP\SZKQTFQY[V^S_RW]_LUZVX\UsfZ]‘ROQiVeeYQTOYZfURUE=C?OIFOJD:@>3;E3167;321/.22123K¿´É¸˚ˆ¸Ó—ÑÔÑ˛É˘¯¿…‰o$(+#$59CJLKKB@GDBA=@;6OU\OIBJLGIO]S‘JRUKCSXNYP\P^^ePV\]_\]nb^aW\UXjUb_MHVZ^]m\WQA?RGZVDHEC:CA9=8095A@7540/89039A«ˆ˚˘˝Ì˛ÑÕÕÙÕÒ˚˚¨¾¯‰c#0,).27HNNPPBHEEEDBA82INXKKFKKNLMXWZQXXIJURMWZ^SacbMZ^ao^dmbccX_NQkSi^UHUPa^bZUWDCJKZN>GLF5HB7G:250=:992)-86228=�˙Ìˇˇ¸ÌÕ×ØÚØÑÖÑ˛˙ÉÀ[%2(&-8;UQMJHDBCA?C==<8KOQLKMOJIFFXTYIORMUWSJVWWL_\dTW‘fthjebdcZ^OMbU^[URNZ_Zd[ZYGGRITP?HNI4CH>H<372?=77404:83.9C\˜˝ÑÒÒÖ×Õ×ÑÒ—ÔÑÑ˛¸…Q$/*’/?DNIKMKDAFC?CA:82EIRMABKOFKGZRQIRHDHIRLQXRS‘Y_QWa‘m_ccc‘_WXML]TbcRIPT[XaUUZLAJEPO6>II7@DGL--54<84:5/686,)1;D'ÒÖÖÕ××ÖÖÕ×ÔÒÔÒɘ»G#-*#35;GIFFA?@<<=;978=>@JK?8JMA@@QNLGKN?DHPDDSLJZXXKP][j‘a]V]UT]IM\RUYSDPQTUZWIK<<??LR8?GK0A@H>0+2.?:570/.7.&$+3;�ÓÕØÔÕÔÒÓÒÑ—˙Ì̯¿•<#%$#237:?GHGG@=7=8675-?EJL>8NP:<FSVOEGP=DOP?HPIEONP>STWe\\WQ_UN^HI\W[XGCHMQYXQKJAA??LM6<:B3A:H<+3.,876/6015,#’-&2eÚ×ÛÙÙÕɲÉ˙É—´¿‰ˆ†2&)(%096A@>>:<985752:40DKJJ>CNQG@FT\K@OOAGOT?JTQBQRQHSQTdYXQNbQPZCO]ZXYOCHITSSUMJ?;B=DG::=E:B<B8152078518//41//107D—ÙÜÚÛ—ˆ˚˚˙˚Ò˙˜´…'/%’$#-48<6::=;=996720,*CHKA;BLSNLBMZRAJNCLKP:D[QBTIPEOLO\PWCX^ONUFWWSUTNCKIPLPRKJA9ABIF8;CI8;==>9552<=75:646320/)03“×ÝÝÞ˘`˚¸˝Ñˇ˙˜`‰£($+*.548@=AAA><:9944657JRKCHXZXRMLSXZHMUFPLVBRZWFPO[GVYT\TNLb^VV\U_WZZ]RBLMTQWWQMC?GGQN?@DN:@A=?@8;8BB;;:=EGV^ly���‹¸ßàÆˇÉÉ˙ÌÓ˝˚˙´¿�),..0=86<?EB>>=;:8;675:MQN;UW[VYNFS^YKIOFRO\FJUZFUNVO\[SZRK[b\XU]P]V\YZUDMKZYT[VPGAF=NP<EIK:BA:;88Wq��¤'–¾ÉÌ—ÑѸ˜ˆ¶”˛ßàßÒ×ÓÕØÒÌ˝˝É˙�)-/(+288;@?<?CA;<9<:754MNP>UY]XWRKO‘XLOO>POUDOOSBTOZEW]PNGPa[ZVW]QWOYY]RJUKXW[ZVSGA@DNL?EIMB<C;G:O…àåªÞßÜÆÜÞÝ×Ñѯ¯„`¸×ÙÑÛÆÕ×ÚÕÙÕ—˚É�’-/)/;97;=:C<@<><;>;61-GFK>KNZSUJOEVMGHQ<KPUIIRSFRVYERQJHH\[VUN]TISNXWYVDMGUVWRTLFEB@KJ<AFH95><A8kÚªäÜÖˇßØÓÞÚÔÙˇ˜``¾‰ˇØÑ˛Ì—ÔÕÖÔ˝˝˝É�’).)03599==@<;67:;74722>>>:@CLJGBE;SFC@M9HGD=@DH<HML<JQDCGPWIRCSIAOHPMRK@ACKKJAGA:=759:18@B84:9;<�—Õ—ˇ—¨˛¸É˛ÑÒÑ˚´‰·¶†˜—¸¾ˆ˙¸˝Éɾ`»„~"+’ ..3026;65:36672-/,/@E75=JIJEE?6LFC:B;>HD:@GE=FMR8@LCJHNLCKCGE@E=EFKRU\ey����'‡µ·«��zg‘R@4-05<�˚˝˝¸¸˙¯ˆÀ˙É˙¯É˜‰…‚·»˘˘¾…˜¯˜˜¯´À„µw!(&")+*/,1412631-0/,*(&7;12:A=7=>>2@?=8<27=<5<A<4=CB98C>GIOT[fnx����§‹‚ˆ¾˘˘˚˚˘˙¨Ì¸˜˜¿…»¿˘˘À»–¥�0=“˘˘˙˜¨¨¿„`˜¯``¯`‰””––`…»‰¿¿¿ˆ…»”•·m�!"�!�#&%*’*)’*)�’(&$��14&45@4:5=95;;96800<B8GQV]lv~��� ¤‡µ»…ˆˆ´¿´¾‰„‚¾‰`ˆÀ˜`ˆ`……¿˜˜´˜À¯˜¿`‰»‚‹%9·¯˜`À…¾»”¯¨˜À´¯¯ˆ”…”µ¾`À…¾‰…”¾¿„·†e� ����!## &"$#� ������/4+226274DKKT_hp|���⁄ƒƒ§§‹fi›««fl†‡‡¶”–»…ˆ´`À„‚•‚‰´¾ˆˆ`À‰¾¾”¾ÀÀ¿¿ÀˆˆÀ¾…¾¾¶’;µ¿˜˜¿…»……¿‰‰`˜´¾`”‚‚·”¿…”„„µ‚•”•–fiY���������!%$ ���� ""���&5*//00<~¥'‹‹§«¤¤§�£“§ƒ�⁄¤ƒ¤''''°–††«‚‚‰‰‰”·†·‚„‚‰‚„••”»”‚•‚”•‚»…»‰»•··†-I‡µ„‚µ‚•„¶¶¶¶”…‰”»”·‡flfiµ†•‚µ·»‚•‡›‹T���!&""#($)’%!’"��"����+-*-&+-4�⁄“flfi««'›fl›°flflflfi†«‹°‡¶‡‡¶µ¶„‚”»»„„µ·¶‚µ•¶¶‚‚µ¶„•µµ•¶µ···‚””»·¶·†8U·‡†‚¶‡¶‚¶»¶”‰…„„µ”·¶–‹µ¶µ••••„”·“«K��� "�� ) #"% �$�������+.+/47BLy““‡‡›“““†‡‡¶‡µ‚”¶¶µflfifl‡µ¶•»•µ¶»¶¶¶„µ¶‚·µµ••††•†«¡��vr •„fi ��‡·‡>m–‡µ„µ‡µ¶„…‚”„‚µ‡µ¶‡µ‡†‡•‚”„¶µ•¶‡fi'B���������"�������������+:H«fl°††ƒ”…‚¶··†•»”»„·¾¿‰„‚†°·‡µ„»À…‚‚»‰…‰»‰„…¶fl'��}eO?/(! �*0�…¾«��}‡””Rx'·…¾”µ·‚…¿¾”»”‚»‰”‚„•»·”„‚•„‚‚•··°B�����������������������)7@«•··‡‚„»””†·µ…¾…‰…¶…»¶”¾·„„•”»¶»””†“��|n‘VF9+&(%&!��!!"$#*C•¿¾�P{�·¿`«��›‚‰À”„‰´À‰»•»•»””•·…‚·‡•°·‚„‰µµ‡¤7�����������������������(4;¡¾…”‰…¾ˆ˜´¾¿´ˆÀ¯`‰•”¾`À¿”fl¡��rcSI>0.)’$#!#%" (! ���� #TÀ`¿¡‘»·fi……‰”ƒ§–•‰»„¾˜˜‰‰¶„‚‰„„•»””•¶·‡¶‚¿…‚‚¶‹3��� %$)+)#&’!����������%/7�fi»¿´¿˜‰`¯˜˙˙˜˜ˆ¿‰»‰¾§NB70,.*%)&’* ! �����!!"E�����������!S¨Ì˙¤O⁄�¥…¾”„‰‡“‡µ‚µ”¾……¿¿…¾»»”˜`´¿¾»¶·•„‰¿”•”µ/��� "#"#" �������������&+6�¥»‰…¿¯À…¾´˘ˆˆ¾À‰¶„»‰�!*(&""#�! /.������������������������M˜˜ˆ•���‡»‰„¶»¾•fi‹››†‰¿‰…¾ÀˆÀ¿¿˘´¾`¾…¶–‡·•»•¶•–)�����"�!���������������$(/��·…À¾¾…‚”‰‰À„À´‚·µ•µ��# �����’�������������������������;‚¾¿»»”„µ‚•¶†·”„µ ��‹‡¿¾¿¿À‰¿…»´¿‚»‚„¶‡†µ‡„‚•µfl"��5�D� ���������������!’2��›`¯¾¿…``ÀÀ‰À´˙…‰”…»��!! �� �����������������������������9„ˆÀ…»¾‚¶‡„fl·¶”„•µ£�ƒ·À˜ˆˆ˜˜´À¾ˆ¾…¿‰À¿‚‡‚·»‰¶¶“��#$-�������������������+9B�£“•¾¿¾ÀÀ»‚¾¿¿¾¿¿`‰…¾ !#$$#""!����������������������������2£¿¿¾»„¶††·µ‡¶•‚‚”‡£�¤»`ÀÀ`ˆˆ¿ÀÀ¿”‰”»»‚µ¶„„•‡·'��"!��� ����������������baa�£«–ˆ¯˘˙ˆ‰…À¯¨˙˘¯ˆ‰´˜¶$$$&" " ����������������������������%;j⁄˙¯`¾‚µ…¿••„‰ˆˆ`•¥�¶¿´˘¯¨ÉÌ˚¨˘˙¯Àˆ´`”¾„¿„¶µ“������������������������‘c^�¥›‹†‰¾`˜¿`À˜˜˘˙˜ˆ´˙¿»*!!#�� �����������������������������%6M\⁄…””•µ”„¶‡µµ„”‰·‡fi‡„‰¿˜˘`ˆ˘ˆ´`À¿¾¾”µ‚µ·µ¶µ'������������������%(&-24ZWR�£‹§›‰‚„”„»»¾´´`´`À¿»‚0� ��������������������������������$6DOY�”‚µ·¶‚‚¶µ¶·•¶••¶¶·µ·”¾¿Àˆ‰…„”„µ…»•µ–'¥›† AEGKKOYY[aahmpvu��������[‘\�£†°‡˙¯˘˙´¯˙˙Ì˝ÌÉ˙˘˘À¾Y(#’%$"! ""�������������������������)8BEAS�…‰´À´˜…À`‰‰¾`‰”¿»”µ»˜˙˛É¯´`¾˜´˜À°¤¢��} –«fi°fifl–‡›°fiƒfi'�����wpd[KBZae�§††‡”˚˚¸¯¿ˆ¯˚˝Ó˚˚É˙`˙À�"’%%$!" ��������������������������0:E?<G^§¿À´´˙¯˙˜ˆ‰‰À¯˘Àˆ¾„‰`˜˚̘´¿À…fi¡�lV>-# 3gkjd]VUROE820&����������SQT�“«°––ˆÉ—˝Ìˇ¨Ì—ˇ¸Ñɸ¨¸É´Q$(+&! ## ��������� ������������(:FFGILTe‡ˆÉÉ̸˚˘ˆ¿¾ˆ˝˙´É´¾…À¯˚„�s]G5$!���������������������������������\YV�§'“«'·˜¸¨˛˛Õ¨Ñ¸É˛É¯˙˙¯˜£)*&%��!"��������������������!#-9@KOGEJFU[b«´¯¯˘ˆ´‰‰¾``´`ˆ‰¿…¾¿À¶����������������������������������������e^a�¥¤ƒ'“–`¨˚˛É̯˚˝¸¸˙```‰»”r)+(&!!!! ��#� ��!"$#)..,,,222AJMNKAA==CECV¡¿`À`À‰…‰”¾”„»»‰¾…”””_��������������������������������������[[Xk¡¡ƒ§«‡…¯¨¨¯˚˘¾˙˘˘ˆ…‚‚…¶»fiC0.’##$"!$’)%"*/33469:;;87;66;=C?7485:96/2K«…‚„•„‚„„»••·¶„„•¶¶‡£��������������������������������������^_\]�⁄¥¢“›†À˜À¾»‰¶¶¶µ¶µµµ•¶‚¶�761442533:?84769:9:=;562//*,298/&,.243+&)6Z'•†–µ”‚·•·•·µµ•·‡µ‡–a������������������������������������jhmh{‹¤'“fi·……˜¿‰˜˜¶•‚»¾”…„‰¶»„}PSRTSMHLKGG@?89:411.+-+’(’(-22*##(+.’!"#(2Tƒ¶··¶„¶µ·‚•‚„”‚”¶‡†'(�������������������������������������otprm£fi§'›·‚˘˚˚ÉÌÌ´„ˆˆ˘˚—¨˘´˘´„faa‘aZVULF@;987730310.-+(*131.+,(-./$� #’)4T'`”‚…`ˆ¾˜ˆÌ¨˚˚¨´‰·†�����������!$!!!���$$����"�����������{z~}w�·flfl†‚‰´¸Ì¸˚˛˝„˘¨¯˚Ѩ˙˜ˆ˙˙¢V[ZVOHHED;887872/1..*/(’+.13,*&+5.(# "%!&,3X£´¾¾¯É¯¯É˛˛¸¸Ì˙´‰‰‚V� #$(+)(*69=;=<6/43,���#%�����������������fi„”‚¾´˘Ò׸˚×Ù˘`Ò˛ÕÞÒ˝Ô˝Ì˝ˆ�MTYTLJHGF?=<A;7:64234..467360243.)(%)’$’*/<]flÌɸɡ˛—Ñ×ÑӸɯ¸˚´„m’205:GKPVUROF;:3250/!!#*1&%%26KZr���������`¨˙˝¸Ì˛Ù—ÓÝÝÚ˚ÝÙÆäÆÝÆÛØÒ×˚ZHOTIECA?::<=?<;:456414593537482+’+)1++++.6Gf”ˇˇÔÛàÛ×ÞÚÜØÑ˝Ì˝¨¨˜|:??BIDGJLGJJJPCE??;<>J\r���''‹¤£������ ��•`˚Ì˝Ñ˛ÖÓ×ØÜâßÖäâäåäääâÜÙÚ–EJLIFE??<=9;>879:410.3872203450*)(),-*%%-1@Jd„ÒˇÒÜàÚÚØßÖÖ¿˝ˇ˙˚¸¤4416@PSUOMSYau~��›”ˆ¨˝¶»‰fl·°fi ¡«����������¨ÉÉ—ÝÛÞÆßààâª˚âàâæååäâÞÞÞÝ�FIKKFDA;:8=9;95533469851643751./,+/,.*,’,:DMj†ÔÞÆßÞàßàÝ×…ÙÑÌÑÖ�EIITmz��ƒ•¾˙˝˛Ö��…ÕÉ˝˘˙…°„fl¢¤ ��������¢���¿ÌÑÓÜÝßßääåÆàÛ¯ßàÆæªàßÞÜÛÜÌKFGEGA;786:67454969751277<210*++(")’*/>EVch^XvÒÜÜÝÝÝààÜÙ…ÛÚш˚�LW�˚ÖÚÚÒÒÝÜÕÕˇ¶|up‚¸‰fl¿°§‡fl£“ƒ⁄›����������«˚ÔÖÙÜÞßÆÝÜÛÝÛ¿×ÙÛßàÜÜÛØÙÙÚ�AIE<D<=;<79<9>:53174-537963+/9FNQXTTF>5)%%*4fÓØÙÜÙÙÙÙÛÛ‚ÚÙˇ`˜yBJ�¸ÙÚÚÚ×ÚØØÑÕ�uDK�¡§¾¾”†‡«‹« ¡�¥ ���������ÌÓÕÖØÝÚÚÜÛÜÙØÓ‰ÜØÛÛÙ×ÔÖÕÚØÑlFB;A:;88<B;8010/.2-/;HPVSVPKD7-"�#$ & #&$’3cÕ××ÖÖÕØÖÖׄÕÕÑ—˝e>N�fl˙É×Ø×Û×Ù×Ø˙kw��ii¥¸„'‡fi'⁄'£������������·—ÒÑÓØÔÖÚÚ×ÖØØ´ÔßÜÚÔÕÖ×Ñ××Ò¨T9:=:7369;24<JZ]]WWMC:*%���#$ ! $��##"!"#%-lÔÒÕ×ÖÓÔÓÕÑ„ÑÓÒÒ˜XU_£¢ƒ‡˛ÕÕ×ÑÒÒÕ��^EB>Kq ›¶flfi•°–“fi£�����������˚—ÒÒÕÕÖÖÜÙÛÞÚÓ`àÞÜÖÒÕØÕÚØÕÑ 2=69=IU‘c‘UJ<*" ����!"����"#� ��� #� ��#,r—ÒÕÛØÚÙ×ÒÕ”ÑÓˇÑ¯APk�� «¾ÔÕ×ÙÙØ×»\>bi{�yt�¶°›£µ§�‹¡�����������‡˝Ñ×ÓÙÖÚÛÛÜÜÖÒÀ×àÞßÛÚÙØÞÛÚÕ¯\__YOC2*%%(()! #!�$#!# ��"! !������ � "!!0y˛˝ØÜÙÝÝØÔ—¾˛Ô˝˚¿6St����flÔÝÙÜÙÖØÓ‰¡�hK?>:J���°·–·¶«§�����������ˇ—ÖÖ×ÖÓØØÕÓÕÕضÝÝÜÞ×ØÛÞÛØ×˝E++$$!&%,%#$’# %!!"##"! �!&!!!����� ��!"$.�×ÖÙÙÜßÞÖÖˇ´ˇÒÒ—”+i~����›ÔÙÒÙÛ××ÓÖ×�Q@CicvnY_�–‹¡¢�������������¾É˛ˇ˛˝ˇÖÕÒÑÔØÔ⁄ÔÕØÒÓÓ×ØÙÕɈC**%&$%#&$’!%$� $���$% ���! �"����������$-�ÒÓÔÕ×ØÒ¸˝¨ÀÉ—˛Ì“8TR����¥¸Ó˛—ÒÕÔÒÔ¸��qZ^MCABE\“¥�‹“¡�����������⁄˙¨˘¨Ì—˝—Ñ˝Ì¸É�`¨˚˛¸¯ÌÒÖ˚˜´D#%%# $%("&"!#��!������"���������������$ ’�ˇ˝—Ó×ˇÌˇˇ¨ˆ˙˝¯˙¡PT@Q���§˘Ó—ÓÓÖÙÚÙ˛y‘<<?JVg{��»˜‚‰ƒ�������������‰¯˘É—Õ—˝Ñ˚¨ÉÉ�‚˘ÌÑÉ˙˙˛ˇ¨˙ˆF’%%$!$%&$& "" ����� !!���� ����������$%-�ÔÖÑÌÕ˛˘˚˙¨¯˚¸˚¨�PH?,y��“ÌÒÔÒÓÔÛÙÛÕ˜��£–ÀÌˇ—Õ˚̸˘‚��������������⁄˚˝¸˝Úס˛¨¸˛Ò¢•˝Ì—ˇÒÓÑǪ́˜K)((#$&&&$%" !! � !�"""� ��!$!�� ���� ""’3�ÖÛÙÕÔ¸˙ˆ˘—˝˛˛˝¨�[YP/;��«˜˝ÑØÕˇÒÕÙÖÌÑ˝ÌÔÖÓÕ××Ò˜˜´‚‡°�������������¨——ÖÜÜÓ˝˘ÌÒÙ⁄‰ÙÌÕ×ÖÔ×Ù˛˙˙P/(&$!#&’!"’"#"�� $"�# � ��"# ���� !!�$%%/�ÖÜÙ×ÙÕÔ…„˙ˇ—¸ÒÉ�bdR2%g�–ÌÑ—ÙÕÒ˝——˝ˇÓÙÙÜÙÔ×ÖÓѸ˚¯¾•‡������� �¢¡¡�›ˇÓ×ÙÜÕ—˜˚Ú׋‚Ö˛ÝÜÔÓÔÙˇ˘˘V*)’$%**%’&-$! ��#"$!+!" #$!�$#$####$�$#’0£ÓÝÚÙØÖ×´À˙¸˝˝ˇ˙ub[P:63�µ˘˝˛˛ˇ—˝—ˇ˝—Ô×ÛÞØÑˇ˚˚˙¾¶·fl���������£¥§§¢��É—ÔØ×Õ˝˜˝ÔÓ–‡ÖÓÕÙˇ˛—ÒÓÉ˙V-+’%+&’%’**%$# "$""&+%!!� "#%#!"&"�#�#%>j`—ØÚÚÛÚÖ˙¿¯¨˚˚¨˙pd_W<3*T‚¸˝Ù˛˛˚˝Ó——ÓÕÔÕˇ˙„·††‡fi‹‹“��������£⁄'¤ƒ“ �”Ñ—ÙÙÙ¨¨ÔÛÙ„°ÖÔˇÕÓÑÔÔØÒ˝Y/.)1(&)/’,’)$$’%$$$(/*$&"’#$#$’1BQl~�›‡‰¨˝ÑÜÙ×ØÓÔ˚˚É˘Ì´À˘rnmeZE:5�Ñ˝ÓÌÒ¸¸¯Àˆ¿‰…•••fl›flfifi¤“‹ƒ������¡��¡¡⁄¥£���¨ÌÙÔ˛˙¨ÒÔÕ¾'ÑˇÔÕÕ˛ÑÓ×Ô¨[//()%,+((’*’%$&&&)$"##"&-AQo��†À˙˛˛˛˙˙˜¯É˚ÒÓÙÝÚÑÔѸ˙˘˜¾¾µxtmeYNE?D¾Ì¸˝Õ˜„¾‚¾¯`´‚‚°flflfi‹›“ƒ¥£�����~�����������„˝ÒĮ̀¨¸Ó˛´¢˝¸ÔÕ˛¸—˛ÛÑ˘[--)’$*&(’%&)#"%!!-1B[v�›…¯¸¸É´Ì——Ô˝ˇ˝É¨˙ÌÑÒ˛ÕÜÜÕÕ˛¨‚�pmrrz{uwofZUWuˆÉ¸×¿µ¶‰‚ÀÀÀ……¶·††°'ƒ§⁄¢������������������˝ÌÌ˝˙¯¯Ìѯ§˝ÕÞÚÑÓˇˇÓÌ˘]*,(%%’&($&+2Eax��¶˘ˆ˙—Ñˇ¸—˛˚˘˙¸˝Óײ˛¨¨˘˘˚—ˇÓ˝¨•��fI-!3K\l������wi]S�Ñˇ—‚„‚µ‚¾„…À•¶···'“''‹ƒ¡����������� �� ��¿¸ˇÓ¯ˆ¨—Õ—«ÓÒ×ÚÕ×Õ˝¸¸¸g.’*)4K]v�§¿˚Ó××ÖˇÖ×ÖÔÖ×˝˝Ó¸˝Éɢ˙˛˛˝Ñ˚À…–��mS9- �!")7Bb|����������zpj†ÑÑ¿¿…µÀ„„¾…•¶·¶†›'��t\70�����������������˙ˆÉ‰‰˘—Ó˛“—˛ˇÑÓÌÔÑ˚ɨ�p��fi…¨ˇˇ—×ÙÕÖÒÕÙÔ×ÙÝÜÙÙÔÑÔˇÌ—˙˜`†��nP8+$#").5?NXluv}z���¡��£ ���}qeZa¶ˇ„”‰¶•¶»·¥�qaO;, �!������������� �����„¯˙»”¿¸¸¸⁄˝˝É¨É˝ÓÑ—˙É˝˙˘˙˘À˘˙Ì˝ÓÔÓÓÑ—ÒÑˇÓÜÙÒÒÑˇ¨„¥�\>.!����"4FWm��������������¢¢¡¤��yoqqmlcwÀ‡‡›�cL7)�����"(4DLQ__V�����������������¥˚̯¯˘Ìˇ˛ƒ¸¨˙¸˝¸ÒÒ—ÕÓ—˝˚˜¨¨˝˛ˇˇ×ØÖÙ×ÙÓÕÖÑ˙• |‘J2# # (4DWat������������������� ⁄¢���������ytgb>#���� ’1:DYdjmqmrqurk�������� ¢'¤⁄⁄£ ��É˝É˙˙¨Éɧ¨¨˙¸˚˚—ˇ—ÙÙÕˇÓÉ˚˘¯˚ÒÔÙÙј›�}bP9*)()2;H[es��� �����£⁄¡ §ƒ � ���ƒ£����¡⁄¥¥¢�������|xskdYamv���zvzx����{|vts��������¢��� ¢¢£��¶ÔˇÉˆ˝—˚¥˙˝˚Ì—Ì—¨¸ÖÜ×ÚÕ˝˙¨µ«��iO=($/3AQYh|���¥§‹fl“¥������¡££§¢� �¢⁄§����������¡����������������������������������{�������������£fi“¡��ÑÑ˝˙˙˚˙§´ˇ¨˝ÔÓÒÉÌ—Òˆ‡�xX?’$&’5L]y�� £‹¥‹µ‡„fi«��¡¤fl¤flfifi‹›£�� �¢“¥£⁄§⁄�� ⁄ƒ¤›⁄¡£¢¤§§¢¡¡⁄������������������������������������“§¢�⁄¢¢���‰—¸É˛¸É'ˆ˚˙˚¨¿fl�xYH6’&.7M[t��“¥fi„•`¿µµfi§�¡§“§«‡«£⁄�⁄›‹–µ††•µ””…‡‹¤«⁄��£ƒ“§'¥¥ ¡¥⁄¥������ƒ �������������������������������������������˛ˆ„…£�v�u_P;)))/BVkz�����fi‡•‰‚…„fl–fi¥¥“ƒ¡�¡¤§§‹››“–‚„„„µ–«fi•‡°†‡›‹‡–·flfl°ƒ§¤ƒƒ¤�£ƒ¥¢¢¡£���⁄§� ⁄��������������|o]H7���������������������E0&!"&(,AO‘l|��¤fi–†‡‹“'¢ƒƒ¥¥'›†•µ„‡°‹¥§§°†•‡·°“¤§'¤§‹fl‹'«'ƒ«‹°fi¤§fi¤ƒ ƒ§§‹›fi'¡ ¢¡¡¥¥£���¥¤  �¥ �¢¡⁄���jP=5%#&,)���s{������ƒ¢ƒ⁄¡⁄ ƒ��}IPZs{����¥›fi–†‡°–µ›¥¥����£“fl††”``”‚»·› §‹–‚»„°'‹⁄����¥''§������ ·•°›¤¤¢¢¡�ƒ“ «“¤“⁄����¡¢'¤§ƒ��yhTC-! #.-0.,/4!��������������������������������«¤'§'fi·„”°¥�� £›•‰‰»Àˆ˜µfifl¤§ƒ¢¥�����£¡� �������£ƒ¥‹°†°–‡§£§‹“«§§''�ƒƒ¥''«¥¥¡���l\D5)!�$()-/*/0(#� #������������� ¡ ��������������“·†„µ†§⁄''«†›¤¤¤fi†'«–‡›°fl‡¥� ���¢ƒ �§‹¥���¡��¢¡'“§ƒ £¤‹°fl”•fi�¢§'¤'«†°“«¤'¥��lZ@1&,(++$/-.0,&*"�&,)( !"��������������������ƒ¥“¤‹‹›“§£§ƒ��£ƒ†›«••„“§¢¡¢���££�¡§–•›°«›'⁄����‹⁄ ƒfi'£���¥¥“›°fl›°‡–‡›†fl•¶‡•µfl¥�v_L9,""*06;;716,%-&&+!)%’(’#!���#!������������ ¡¥§'–¾`•‡°ƒƒ��¢�‹“'ƒ§¢⁄¡¡ƒ‹·†“ ����ƒ·À¾À´¯¶¢ ���£¢›¤fl†«�£££§««¥¤›fi¶„†µ¾…¶„µ‡°«��mX;-’&$�,1846;91,)$# &,*))$"����)23,#���~pfy�������¥¤·¤›·¶–fi›¢�¢¢����£§›¤'«¢¥°'›«fi–fl°›fi°‡–«¤�¡ 'flfi“'ƒ⁄'¢¤›‹¤‹§¤›«‹flfl¶‚¿ˆ”„¶“¡�v^F6’"’(19861+.,-)) $,042(!!��""./3.)#���#),"!������������¡¤���⁄⁄¤¥¡¥ ⁄¤¤⁄§¡£“flfi†fiµ˜»·–ƒƒ¥��¥'†·‡¶¶·°«‹¡⁄“››‡«†fl‡“¢'fi°†°‚°–§��eW@5,,5,35/4670%,#"#’"()0+(*��$’2661*#��#+,154363-��������������¢ƒ¥“¤›'‹ƒ¤“'¡¡⁄ƒfl›fl›†¶‡°µµ''⁄�ƒ'fl›¶·¾‰¶„˜`¯¿À…‡‹°fifi'°flfl–‹«§��pZJ@./115?><;A6251(+’"#--**)&�!(6<@<:3(��"**0167755+’ �����

Page 2: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 2

Contents

1. Introduction

2. External Interface2.1 Jasmine Control2.2 Commands2.3 Data Transfer2.4 Timing

3. Analog Electronics3.1 Detector Array3.2 Video Signal3.3 A-D Conversion3.4 Noise Filtering

4. Digital Electronics4.1 Finite State Machine4.2 Sequencing Logic4.3 Stepper Motor Control

5. Mechano-Optical Design5.1 Paper Transport5.2 Document Illumination5.3 Optical Path5.4 Lens Alignment/Focus/Magnification

6. User Software6.1 User level interfaces: Jasmine.RUN, Scan.RUN, Scope.RUN6.2 Procedural interface6.3 Microcode Interface and Implementation

7. Check-out Procedures7.1 Adjusting the Output Level7.2 Optical Assembly7.2.1 Alignment7.2.2 Focus7.2.3 Magnification

Appendix 1. SchematicsA1.1 Analog BoardA1.2 Finite State MachineA1.3 Sequencing LogicA1.4 Stepper Motor DriversA1.5 PC board layoutA1.6 Power WiringA1.7 External CableA1.8 TC200 Paper Transport Modifications

Appendix 2. PROM MicrocodeA2.1 PROM Blowing ProcedureA2.2 Microcode Listing

Appendix 3. RevisionsA3.1 Rev Gb

Page 3: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 3

1. Introduction

This document describes Jasmine, a low-cost experimental scanner. Jasmine moves an originaldocument past a linear detector array to produce a gray-level image which can be displayedimmediately on a CRT, stored on a file, or transmitted to a printer for hardcopy. It operates at amaximum resolution of 96 8-bit samples per inch, and moves paper at a maximum speed of 2inches per second. It communicates through a simple computer interface which allows it to connectto an unmodified AltoII or D0. The scanner speed and resolution closely matches the Alto/D0capabilities: neither machine can accept data at paper speeds above 2"/sec; doubling the resolutionwould produce about 4Mbits/page which is unrealistic for the Alto/D0 storage capacities.

The scanner hardware consists of two printed circuit boards containing about 40 TTL chips, twopower supplies (+5V and -12V), a modified TC200 telecopier paper transport driven by a smallstepper motor, an f4.0 28mm lens, a front-surface mirror, and a light bar containing ten 48V ACbulbs. The unit is packaged for desktop use in a sheet metal box measuring 15 3/4" x 19" x 4";the paper transport housing rises about 3" above the top of the box, and lifts on hinges for clearingdocuments. The on/off button is mounted on the transport top. Four screws attach the metalcover of the scanner box to the base. On the rear plate are a female AC plug, a 3/4 amp fuse, anda female 25 pin connector.

The electronics consists of a simple state machine which drives an A/D converter and feeds the 8-bit output values into a FIFO. In addition, per-pixel correction is provided in order to produce auniform digital output range for each element in the detector array. There are 6 bits of offsetcorrection and 6 bits of gain correction for each element, held in three 1024x4 static RAMs. Theoutput variance among elements when no light is incident is called dark current leakage , andproduces a DC offset which must be corrected. The gain correction takes care of the light responsevariation among elements.

People

The Jasmine scanner represents a joint effort between the Computer Science Lab and the OpticalSciences Lab at Xerox PARC. The analog electronics were designed by Ed McCreight (CSL), theoriginal mechanical and optical design were done by Gary Starkweather (OSL) and the digitalelectronics and software were produced by Joe Maleson (CSL). Fabrication and test of initial buildof 25 units was carried out by Terry Haney, Frank Vest, and John Henning (Garage).

Page 4: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 4

2. External Interface

Jasmine connects to an external computer through an 8-bit input and 8-bit output bus. Datatransfer from Jasmine requires an additional input and output control bit.

2.1 Jasmine Control

The command byte from the controlling computer to the scanner is functionally divided into:Enable[0], Command[1-3], and Data[4-7]. To avoid hardware transition states, the command byte isfirst sent with Enable low (0), then high (1), and finally low (0). For commands which do notrequire any data, the state of the four Data bits is not important.

The Jasmine logic package is controlled by a state machine (sequencer), implemented with a ROM.There are four possible sequencer states: Wait , Scan , Load , and Init . When Jasmine is powered up,this sequencer will be in some random state. The sequencer is moved from any state to its Waitstate by a LOAD command followed by a START command. From the Wait state, a STARTcommand moves the sequencer into Scan state, in which it produces the next scan line of samples.From the Wait state, a LOAD command moves the sequencer into Load state, in which it loads thecorrection RAMs with data received from the external computer. The Init state is entered wheneither 1) the sequencer is Scan ning, and a LOAD command is received, or 2) the sequencer isLoad ing, and a START command is recived. The sequencer moves from Init to Wait on the fallingedge of the START command line.

2.2 Commands

START (111)The start command begins a new Scan cycle. In this cycle, the detector array first receivesa pulse which causes it to begin clocking out samples, and then a uniform train of clockpulses is generated. The amount of time that light is integrated on a particular detectorelement is exactly the interval between output clocks for that element. The timing intervalbetween start pulses is entirely regulated by the controlling computer. Variations in theduration of this interval will cause variations in the output levels of the samples.

In addition, the 4 bit Data field of the start command specifies the number of samples toskip after a sample has been digitized. This feature enables a scanner with 1024 elementsto deliver either 1024, 512, 340, 256, 204, ..., or 64 [=1024/(skipCount+1)] digitizedsamples per scan line.

LOAD (110)The load command begins a new Load cycle, and sets the internal address counters toreceive the correction values for the first detector. Each successive load command causesthe address counters to increment by one. When the last element has been corrected, orwhen a start command is received, the sequencer enters its Wait state.

MOTORCTL (101)This command controls the stepper motor which moves the paper. Taking advantage of themotor’s short duty cycle, increased torque is obtained by supplying high current for shortperiods (< 60 seconds). Current is cut off from the motor by asserting data bit 2 (x1xx).Leaving the motor on for extended periods will cause overheating and possible damage. Themotor is turned by applying power to two coils according to the two low order data bits.The motor moves forward one step for each value in the sequence {3,2,0,1}, and in reversefor {1,0,2,3}.

WE1 (011)WE2 (010)WE3 (001)

These three commands load the 4 bit Data field into the top, middle, or low 4 bit fields ofthe currently selected 12 bit word of the correction RAMs. The top 6 bits of this wordcorrespond to the offset correction, and the low 6 bits are the gain correction.

Page 5: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 5

SETDELAY (000)

The potentially large bandwidth required to transfer samples from the Jasmine FIFO to theexternal computer is a problem in some applications where the computer cannot keep upwith the transfer rate. A delay counter is implemented which provides additional delaybetween digitized samples in units of 1 microsecond. The 4 bit Data field thus specifies upto 15 microseconds of additional delay between output samples. (see also section 2.4 fortiming details).

2.3 Data Transfer

A 64x8 FIFO buffers data bytes between Jasmine and the external computer. An output bit fromthe scanner (XBus.0) is high when the FIFO is ready with a data word. Two control bits from thecomputer are used to shift a data word out of the FIFO: the falling edge of XBus.Read’ sendsXBus.A0’ on the FIFO shift-out line. After the FIFO receives the shift signal, the output ready bitwill stay low until the next data byte is ready. This will take more than a microsecond for someFIFOs.

On the Alto, the XBus provides the input path from the scanner. Each time the XBus is read, two addressbits are available on the connector, and a third bit indicates that the read is taking place. For convenience andspeed, the "XBus read" signal is used to clock a flip-flop, with one of the address bits used as the input data.Thus, two XBus addresses are "safe," causing no change to the FIFO, and two XBus addresses cause the FIFOto shift out. For computers with other I/O interfaces, both the clock and data can be driven fromcomplementary versions of the same output bit (clock low, data high causes a shift).

Note that the XBus read signal goes high when any XBus address fetch is issued, so in order to shift theFIFO, a non-XBus address must be stored into the Alto MAR.

The FIFO is reset at every START pulse, so that any data not read out at that time will be lost.Because the inter-sample timing is critical, it is impossible to do anything if a new data byte is readyand the FIFO is full: in this case, either the new data byte, or the first data byte in the FIFO,must be discarded. It is up to the external computer to ensure that the combination of integrationtime, skip count, and delay setting will not cause data to be lost. On the other hand, if the onlypurpose of the START pulse is to maintain constant integration time, there is no error signalgenerated if none of the data bytes are read out. 2.4 Timing The maximum speed of the Reticon chip used as the detector array is 1MHz. Each sample which isskipped thus produces a minimum of 1 microsecond of delay. The A to D converter implementedfor Jasmine provides a bit every clock time. Currently, Jasmine runs on a 250 nsec clock;including overhead for other control functions, Jasmine will deliver a digitized value every 15 clocks(3.75 microseconds). Thus, the time between digitized samples is (3.75+skipCount+delayCount)microseconds. The minimum time per scan line for the various values of skipCount anddelayCount are given in Table 1.

Page 6: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 6

delayCount 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15skipCount(nSamples)

0 (1024) 3.84 4.86 5.89 6.91 7.94 8.96 9.98 11.01 12.03 13.06 14.08 15.10 16.13 17.15 18.18 19.201 ( 512) 2.43 2.94 3.46 3.97 4.48 4.99 5.50 6.02 6.53 7.04 7.55 8.06 8.58 9.09 9.60 10.112 ( 340) 1.96 2.30 2.64 2.98 3.33 3.67 4.01 4.35 4.69 5.03 5.37 5.71 6.05 6.39 6.74 7.083 ( 256) 1.73 1.98 2.24 2.50 2.75 3.01 3.26 3.52 3.78 4.03 4.29 4.54 4.80 5.06 5.31 5.574 ( 204) 1.58 1.79 1.99 2.19 2.40 2.60 2.81 3.01 3.21 3.42 3.62 3.83 4.03 4.23 4.44 4.645 ( 170) 1.49 1.66 1.83 2.00 2.17 2.34 2.51 2.68 2.85 3.02 3.19 3.36 3.53 3.70 3.87 4.046 ( 146) 1.42 1.57 1.72 1.86 2.01 2.15 2.30 2.45 2.59 2.74 2.88 3.03 3.18 3.32 3.47 3.617 ( 128) 1.38 1.50 1.63 1.76 1.89 2.02 2.14 2.27 2.40 2.53 2.66 2.78 2.91 3.04 3.17 3.308 ( 113) 1.33 1.44 1.55 1.67 1.78 1.89 2.01 2.12 2.23 2.35 2.46 2.57 2.68 2.80 2.91 3.029 ( 102) 1.30 1.40 1.51 1.61 1.71 1.81 1.91 2.02 2.12 2.22 2.32 2.42 2.53 2.63 2.73 2.8310 ( 93) 1.28 1.37 1.47 1.56 1.65 1.74 1.84 1.93 2.02 2.12 2.21 2.30 2.40 2.49 2.58 2.6711 ( 85) 1.25 1.34 1.42 1.51 1.59 1.68 1.76 1.85 1.93 2.02 2.10 2.19 2.27 2.36 2.44 2.5312 ( 78) 1.23 1.31 1.39 1.46 1.54 1.62 1.70 1.78 1.85 1.93 2.01 2.09 2.17 2.24 2.32 2.4013 ( 73) 1.22 1.30 1.37 1.44 1.52 1.59 1.66 1.73 1.81 1.88 1.95 2.03 2.10 2.17 2.25 2.3214 ( 68) 1.21 1.28 1.34 1.41 1.48 1.55 1.62 1.68 1.75 1.82 1.89 1.96 2.02 2.09 2.16 2.2315 ( 64) 1.20 1.26 1.33 1.39 1.46 1.52 1.58 1.65 1.71 1.78 1.84 1.90 1.97 2.03 2.10 2.16

Table 1. Scan line time in milliseconds for various sample resolutions and rates

Page 7: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 7

3. Analog Electronics

The analog electronics converts the detector array outputs to 8-bit digital values, individuallycorrected for gain and offset variations. A separate analog board is used due to packagingconstraints. For noise reduction, some of the analog components are in a shielded area formed by asolid ground plane and the metal lens shroud. A single point ground connection is used betweenthe analog and digital electronics.

3.1 Detector Array

The Reticon RL1024G detector array uses photodiodes to discharge capacitors. The chargeremoved from each capacitor is proportional to the light incident on the associated photodiode.Each detector cell is connected to the video line by a MOS switch. The switches are sequentiallyclosed for one clock period, during which time the residual charge must be sensed, and then thecapacitor must be recharged.

The differential video buffer outputs are common source amplifiers, and are connected to +5vthrough a 10K pot. The pot is adjusted to provide balanced inputs to the LM733 video amplifier.The buffer outputs operate with an offset voltage near +5V, and the zener/capacitor/resistor circuitis designed to provide -2.3 volts to the video recharge lines so as to maintain a common modevoltage at the LM733 differential inputs midway between the amplifier reference voltages of 0V and+5V. The end of scan signal is not used, and is tied high to avoid introducing noise. The rechargegate is normally held high (off) by a 10k resistor to +5v, and is turned on (connected to -10v)when the LM339 comparator’s negative input rises above TTL threshold (~1.5v).

3.2 Video Signal

The LM733 differential video amplifier provides a linear voltage gain of ~100 to boost the ~25mvdetector array output to the 2.5v range. A CD4053 analog multiplexor is switched for 1 msec toallow charge sharing between the .01 mf capacitor and a 220pf capacitor connected to the holdamplifier. When the switch is opened, the detector cell is recharged and a DC restore is performed,while the analog sample is digitized. During the recharge operation, the video buffer outputs are attheir fully charged (black) state.

DC restore is accomplished by connecting the analog multiplexor input to ground, thereby makingthe voltage drop across the .01 mf capacitor equal to the difference between V black and ground.When the next sample is presented, the LM733 output voltage will increase to V sample ; themultiplexor input voltage must increase by the same amount, and since it was originally at ground,it is now at V sample -Vblack , the sample voltage with the DC component removed. When themultiplexor is switched for charge sharing between the capacitors, the hold capacitor will move tothis level . Note that the previous voltage difference across the hold capacitor will have a very small effect on the finalvoltage, typically ~1%. This slight blurring between adjacent sample levels is equivalent to shifting the input image by.0001".

The hold amplifier is implemented with a CA3140 Op Amp, providing a final voltage gain setting.The exact gain is the ratio of the feedback resistor (marked 5.1K, but typically 820 ohms) and theresistor to ground (1.1k). To avoid clipping problems near black level in the A-D conversion, anoffset bias is added by a large resistor to +5v (marked 80K, but typically 1M); decreasing the valueof this resistor will increase the offset bias. On the output of the hold amplifier is a 1k biasbalancing resistor.

3.3 A-D Conversion

The A-D converter is implemented with a NE5008 multiplying DAC, a comparator, and asuccessive approximation register. The SAR provides an 8-bit input value to the DAC, with themost significant unknown bit set to 1, and the other unkown bits set to 0. The DAC produces anoutput between 0 and 2.55 volts (~.01 volts/bit). This voltage is compared to the output of thehold amplifier; if it is higher, the most significant unknown bit is set to 0, and if lower 1. The SAR

Page 8: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 8

then provides a new 8-bit input value, using the known high order bits, and a 1 in the mostsignificant unknown position. After 8 clocks (2 msecs), all 8 bits are known, and the SAR’s EOC’goes low, indicating that the digital approximation is complete.

The per-pixel gain correction is implemented by using an ADC-MC8BC DAC to vary the NE5008negative reference voltage. The scale DAC reference output is connected through a unity gainbuffer amp to provide a high impedence positive reference for the NE5008. 15pf to -10?

3.4 Noise Filtering

The low level analog outputs of the detector array make it important to reduce electrical noise.This is the motivation for the shielded analog section, the various capacitors on the analog board,and the standard pi filters on the power supplies.

Page 9: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 9

4. Digital Electronics

The digital electronics provide the control signals for image sampling, handling the correctionRAMs, A/D conversion, and stepper motor control. The user’s view of the digital functionality wascovered in section 2: External Interface. This section discusses the internal operation in more detail.

4.1 Finite State Machine

Digital control is based on a small finite state machine (FSM) with 32 states, built out of two ROMsand two latches. The FSM operates on a 250 nsec clock. The 512x8 State ROM produces the nextstate number based on the current state and the values of four input signals: the START andLOAD signals from the controlling processor, and the Sample and ScanDone signals from thesequencing logic. The 32x8 Control ROM produces 7 output signals based on the current statenumber. The ROM outputs are loaded into the latches at every clock cycle. Five signals(VirScanClk, AnalogOn, DCRestore, and ScanStart) are concerned with the analog sampling logic.One signal (ResetAD) controls the successive approximation register used for A/D conversion. Thelast signal (ResetCtrs) controls various registers in the sequencing logic. A complete code listing forthe state machine is included as Appendix 2.2.

4.2 Sequencing Logic

The sequencing logic consists of three counters: the Delay counter, the Sample counter, and theScan counters. The Delay counter is provided for control flow, as described in section 2 on Timing.The Sample counter provides another level of bandwidth control: reducing the number of inputsamples per scan line allows the controlling processor to accept more scan lines per unit time, andwill also reduce the storage necessary for holding an image. The Sample counter is loaded on eachexternal START pulse with the four data bits, as described in section 2.2.

The Scan counters are three four-bit counters which cycle through the RAM addresses. They areinitialized with a constant value (-1025, based on the array size of 1024 elements) at every externalSTART pulse. The Scan counters increment once per scan clock. The high order carry-out bit isthe input signal ScanDone to the FSM, and causes the FSM to return to its Wait state.

4.3 Stepper Motor Control

The stepper motor is made up of two coils, each with two windings. The motor turns when currentis applied in proper sequence to each winding. The two windings of each coil are always inopposite states, so that when current is flowing through one winding no current is flowing throughthe other. Each winding is connected to -12V through a TIP 122 Darlington pair. An LM339comparator is used to produce a 0V or -12V input at the TIP 122 base from the TTL output of aNAND gate. Each NAND gate has one input from the RunMotor signal, and one input fromeither StepControlA, StepControlB, StepControlA’, or StepControlB’. These three signals are heldin a latch which is set by the external MotorCtl command. The RunMotor signal should normallybe FALSE, in order to avoid motor overheating. See Appendix 1.4 for the electronics schematic.

Page 10: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 10

5. Mechano-Optical Design

5.1 Paper Transport

The Jasmine scanner uses a modified Xerox TC-200 telecopier paper transport. TC-200 partsremoved include: DC motor assembly, illuminator bar, LED and light sensor, automatic paper feedwheel, and plastic cover. The base casting is somewhat modified (see Appendix 2.8). A new coverand a release bar extender are added. After the paper moves through the transport, it exits the

scanner housing through a rectangular rear aperture, and is turned up to an angle of about 60 o by acurved metal platform. The final paper turner allows the Jasmine unit to be placed close to a wall,and will generally handle documents as stiff as photographic paper. For installations whereexcessively heavy input material commonly causes jamming problems at the paper turner, amodified platform with smaller curvature should be used.

One turn of the paper drive gear results in 2" of paper movement. A 48 step/revolution steppermotor turns a 12 tooth pulley, connected by a drive belt to the transport’s 48 tooth gear, resulting in96 steps/inch. The stepper motor typically generates 6 oz-inches of torque, and so the 4:1 gearingprovides 24 oz-inches at the paper. The torque decreases as paper speed increases above .4"/sec.Jamming problems may be caused by attempting to move thick documents at high speed. (Thestandard software positions the document by moving the paper at 2"/sec; there should be a "thickdocument" setting which slows down the positioning rate).

5.2 Document Illumination

Illumination is provided by a strip of 48V incandescent bulbs. This causes non-uniformillumination, which is brightest in the center, and falls off at either side. In order to partiallycompensate for this non-uniformity, the center two bulbs are removed. The remaining variation iscorrected by the Gain RAMs, in the same way that non-uniform detector element response ishandled.

5.3 Optical Path

A scan line from the document is reflected off a 45 o mirror and imaged through a SchneiderComponon f4.0 28mm lens onto the detector array. The optical path measurements for figure 5.1are derived as follows:

array length = 1.008"; (8.5" x 96pixels/inch)x1.008" = .803"magnification m = 8.5"/.803" = 10.585F = effective focal length = 29.4 mmO = F(1+m) = 339.44mm = 13.363"P = F(1+1/m) = 32.17mm = 1.267"D = object to image = O+P+(N1-N2) = 368.41mm = 14.504"Allowing for + or - 1% focal length variations,

364.75mm = 14.36" < D typical < 14.65" = 372.16mm

and image plane variation is +/-0.32mm

Image PlaneFront Conjugate = O

Rear Conj = P

N1

N2

O = F(1+m)

P=F(1+1/m)

s

h

Object ( Document Plane) Flange

3.2 mmsh

Figure 5.1 Optical Path Distances

Page 11: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 11

5.4 Lens Alignment/Focus/Magnification

The scanner must be set up so that each scan line from the document falls across the detector arrayin focus and at the appropriate magnification. Any skew present in the detector array due toinexact bonding is corrected by adjusting the position of the analog board in its mounting assembly.Minor adjustments to the angle of the lens are made with the top alignment screw so that the scanline hits the entire detector array. Focus is set by changing the distance between the lens and thedetector. This can be accomplished by inserting a test pattern into the scanner, and rotating thelens in the lens mount until optimal focus is reached. Magnification is determined by the distancefrom the lens to the document. The lens assembly and circuit boards are moved as a unit until thedesired magnification is reached. For additional set-up instructions, see Chapter 7: Check-out Procedures.

Page 12: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 12

6. User Software

6.1 User level interface: Scan.BCD, Scan.RUN

[IVY]<Jasmine>Scan.BCD is a Mesa 6 system for driving the Jasmine scanner. It runs on either D0s orAltoIIs. It will display input pages on the screen, allows zooming, enables a user to set various of theJasmine device parameters, and writes output files. The output files have an AIS header, and a PRESStrailer, and can be used as input to systems expecting either AIS or PRESS format files. Scan4.BCDprovides the same interface, but with output to the D0 4-bit per point display. A similar package existsin BCPL for AltoIIs as Scan.RUN.

In specifying to a page position, the term Jasmine coordinate is used: this refers to the basic Jasminepixel resolution of 1/96". In addition to the hardware state maintained in the scanner, there is somestate maintained in the software. The current window refers to a rectangle on the page in Jasminecoordinates; when a new page is inserted, the current window is set to (xstart: 0,xlength: 1024,ystart:0,ylength: 1024). Any of the four coordinates can be changed using the XS, XL, YS, or YL commands.All four coordinates will be updated by the Zoom command. The current scan length refers to thenumber of output dots per scan line to be displayed on the screen. Normally, the scan length is set to608 (full screen width), but the user may desire a narrower length in order to display a narrow, tallimage. The current scan length is also used in creating an output file.

The user interface to Scan consists of a key letter interpreter. Each command is initiated by typing thefirst (and sometimes second) characters of the command. Unrecognized letters are ignored.

The key letters in the following list of commands are capitalized.

?: The question mark causes the current settings of black, white, xstart, xlength, ystart, and ylength to beprinted out.

Black: Prompts the user for a decimal number to be used by the halftoning routine; any pixels less thanor equal to this number will be printed as black.

Calibrate: The scanner has a separate correction value for each pixel. The calibrate command promptsthe user to "Insert sheet of white paper" and to "Press any key when ready." Best results will beobtained from an opaque, flat white sheet such as photographic paper. Any irregularities in thecalibration sheet will cause uneven calibration. When the user presses a key to indicate that thecalibration sheet is in place, the scanner will average a number of white lines, and set the correctionvalues so that each pixel produces the same white response. This is not an optimal calibration scheme: itsearches iteratively for the best solution. After each iteration it prints out the minimum and maximum value for the line,and the cumulative difference of the 1024 elements from the desired value. This routine does not incorporate darkcorrection, so that while a light image will be fairly uniform, a dark image will contain streaks. John Warnock is currentlyworking on a better procedure.

Page 13: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 13

Delay: Prompts the user for a decimal number from 0 to 15 to be used as the delay (in microcoseconds)between pixels delivered from the Jasmine. This control is mainly for hardware debugging. Incorrectsettings will cause the scanner to stop working, and all settings in the correct range will cause identicaloutput. The Scan program will automatically set the delay correctly .

Erase: Erases the user screen.

Forward: Prompts the user for a decimal number ("nSteps"). The paper will be moved forward thismany steps. (1 step = 1 Jasmine coordinate = 1/96")

Halftone: The scanner will read in pixels from the current window and halftone them onto the screenusing the current scan length . Pressing any key will terminate the halfonte command.

Initialize: The correction values in the scanner will all be initialized to a constant value. This commandis useful for determining how well the calibration routines are working.

Length of scan : Prompts the user for a decimal number to be used as the current scan length .

New page : This command ejects the current page, and prompts the user to "Press any key when ready";the user should insert the new page, and press a key. This command sets the current window to(xstart: 0,xlength: 1024,ystart: 0,ylength: 1024).

Quit: Ejects the current page, and returns to the Executive.

Reverse: Prompts the user for a decimal number ("nSteps"). The paper will be moved in reverse thismany steps. (1 step = 1 Jasmine coordinate = 1/96").

Skip count : Prompts the user for a decimal number from 0 to 15 to be used by the scanner as a "skipcount": that many pixels will be skipped for each pixel delivered. The software will use the sameskip count to drop out scan lines. This command is useful for reducing the storage required for alow resolution image. Note that the image produced by skipping pixels is undersampled , which may cause severealiasing and other problems. A better way to create the lower resolution image would be by averaging the pixels insteadof throwing them away. The hardware does not support this function .

Time for integration : Prompts the user for a decimal number to be used as the integration time in 38.08microsecond "ticks". This setting defaults to 656 ticks, or about 1/40 second. For dark documents,it is possible to get more dynamic range by increasing the integration time. Reducing the integrationtime may create impossible timing constraints. If the integration time is less than the time required toread in a scan line, the scanner will stop working .

White: Prompts the user for a decimal number to be used by the halftoning routine; any pixels greaterthan or equal to this number will be printed as white.

XStart: Prompts the user for a decimal number from 0 to 1023 which will be used as the current windowhorizontal start in Jasmine coordinates.

XLen: Prompts the user for a decimal number which will be used as the current window length inJasmine coordinates. If XStart+XLen is greater than 1024, XLen will be set to 1024-XStart.

YStart: Prompts the user for a decimal number which will be used as the current window vertical start inJasmine coordinates.

Page 14: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 14

YLen: Prompts the user for a decimal number which will be used as the current window height inJasmine coordinates.

Zoom: The zoom command waits for a new window to be indicated by the mouse. Pressing the leftmouse button indicates the corner of the window. Holding down the left mouse button will allowthe user to stretch the rectangle indicating the current window from the window origin to the mouse.Holding down the middle mouse button allows the user to reposition the window origin. When theappropriate window has been selected, hitting the right mouse button will terminate the zoomcommand, and the new window will be scanned in and displayed. Note that in the BCPL version, no

rectangle is displayed, and the new window is indicated by depressing the left mouse button at onewindow corner, holding the button down as you move the mouse to the second corner, and thenreleasing the button.

6.2 Procedural interface

The interface to the Jasmine scanner is implemented in both MESA and BCPL. The MESA syntaxis used in this document, but the transformation to BCPL syntax is straightforward. The interfacedescribed here handles the scanner data as an input stream. For speed, a number of buffers arepre-filled with input data; typically the calling routine will not have to wait for additional inputfrom the scanner, because at least one of the buffers will already be full. The following routines aresufficient for most scanner operations.

JasmineInit: PROCEDURE;Loads the device microcode, sets up appropriate Debugger and Finish processes, and gets thescanner into the Wait state with a reasonable delay setting. This routine must be called exactlyonce, before any of the other routines.

JasmineScanInit: PROCEDURE[block: POINTER,nWords: CARDINAL] RETURNS [scanStream:POINTER];This routine initializes the nWords of memory beginning at address block for use as a ring ofinput buffers. It moves the paper so that the first scan line of the current window is imaged onthe detector array. The routine returns a pointer which must be passed to subsequentprocedures.

JasmineReadLine: PROCEDURE [scanStream: POINTER] RETURNS [data: POINTER TOPACKED ARRAY OF [0..377B]];This routine returns a pointer to the next scan line of data. The number of bytes in the scanline is determined by the current window setting, which defaults to the entire scan line, and thecurrent resolution (setting of the Sample counter). Because of the input buffering, the data willonly be valid until the next call to JasmineReadLine.

JasmineScanClose : PROCEDURE [scanStream: POINTER];This routine should be called before the next call to JasmineScanInit. It ensures that everythingis left in a clean state.

JasmineSetWindow: PROCEDURE [xStart,xLen: CARDINAL, yStart: CARDINAL _ 0,yLen:CARDINAL _ 1400];Sets the input window for the reading routines. After changing the input window,JasmineScanInit must be called before any additional calls to JasmineReadLine.

JasmineSetReadMode : PROCEDURE [readMode: [1..3]];There are three modes of running JasmineReadLine: when readMode = 1, the current scan lineis read without moving the paper; for readMode = 2, the line is read and the paper is moved(this is the default setting); for readMode = 3, the scan line is read, the paper is moved, and adelay of one integration time is inserted. On the Alto, when the display is running, the currentmicrocode often "misses" clock ticks when reading a scan line (this is seen in the jittery motion of the cursor). Byadding a delay cycle, two desirable effects are achieved: there will be no paper motion during the integration time,and the integration time of the line being digitized will not vary since that integration time was calculated when themicrocode was not reading, and therefore not missing clocks .

The following low level routines allow the user to set various scanning parameters. Somecombinations of parameters are impossible (i.e. integration time too short for digitizing the requiredsamples, or delay time too short to allow the controlling processor to acquire the data); not all of

Page 15: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 15

the impossible combinations are checked for, so that the programmer should invoke the follwoingroutines with caution.

JasmineSetDelay : PROCEDURE [delay: [0..15]];Sets the delay in microseconds/sample.

JasmineSetResolution : PROCEDURE [nSkips: [0..15]];Sets the number of samples to be skipped for each sample digitized. The software will alsoskip nSkips scan lines between each digitized line. Resolution defaults to 0 (1024 elements).

JasmineSetTime : PROCEDURE [ticks: CARDINAL];This routine sets the integration time per scan line in 38.08 microsecond ticks. Because there isAC variation in illuminator brightness at 120Hz, the integration time should be set to closemultiples of 218.84 ticks (=1/120 second).

JasmineLoadRam: PROCEDURE [array: POINTER,len: CARDINAL];A low level interface used to set the Gain/Offset RAMs. This routine is called by thecalibration routine, and is of limited use to the casual programmer.

JasmineStep: PROCEDURE [nSteps: CARDINAL,forward: BOOLEAN];A low level routine which moves the stepper motor forward and back. Moving the motor maycause the current page position to be lost.

JasmineCoord: PROCEDURE [coord: CARDINAL] RETURNS[nSamples: CARDINAL];Converts scanning resolution coordinates (~250 microns) to pixel coordinates based on thecurrent resolution setting. This routine will return the number of pixels on a scan line whencoord=1024.

JasmineNewPage: PROCEDURE;Feeds the new sheet of paper up to the document window, and resets the internal line counter.

JasmineEject: PROCEDURE;Ejects the current page.

JasmineMotorOff: PROCEDURE;Sets the RunMode line to FALSE, thereby cutting off current to the stepper motor.

6.3 Microcode Interface and Implementation

The microcode uses three fixed locations in low memory. Location 526B contains the integrationtime in 38.08 microsecond ticks. Location 736B is a pointer to a linked list of control blocks.Location 737B contains the data bits for the START command. The Alto microcode runs as part ofthe Memory Refresh Task, which is activated every 38.08 microseconds. A counter is initialized tothe contents of 526B ( ScanTime ), and is decremented once per MRT activation. Normally, whenthe counter reaches zero the command at 737B ( StartCommand ) is issued, and location 736B(ScanCBHead ) is examined: if it is non-zero, the command it points to is performed. If, however, acurrent command block is still being processed when the integration time counter reaches zero, thestatus of that command block is set to "StatusDATALATE," and ScanCBHead is set to zero.

The data types for a command block are:ScanCommand: TYPE = CARDINAL;

CommandREAD: ScanCommand = 0CommandDELAY: ScanCommand = 1CommandFORWARD: ScanCommand = 2CommandBACK: ScanCommand = 3

ScanStatus: TYPE = CARDINAL;StatusINUSE: ScanStatus = 1 //in general, all positive numbers are "in use" flagsStatusFREE: ScanStatus = 0StatusDONE: ScanStatus = -1StatusDATALATE: ScanStatus = -2

ScanCB: TYPE = RECORD [ link: POINTER TO ScanCB,

command: ScanCommand,status: ScanStatus,buffer: POINTER

];CommandREAD interprets the status field as the number of bytes to be read. If buffer=NIL (0)the input data is discarded. The high level read commands implement a horizontal window by inserting two read

Page 16: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 16

commands on the command block chain, with the first block containing a NIL buffer pointer. When the currentread command is completed, the status field is set to StatusDONE, and the next command on thechain is immediately interpreted. The other three commands cause command block execution tostop until the integration counter reaches zero. In addition to waiting for the next line time,CommandFORWARD and CommandBACK issue the appropriate output signals to move the paperin the desired direction.

Page 17: Jasmine Scanner Manual - Computer History Museum

These images are printed using gray level fonts. If you have access to a full PRESS printer, the real images are contained in[IVY]<Jasmine>Docs>CheckOut.PRESS.

��������������������������"� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,/798ADEEJGSUZZXW‘aeficmqsvz~|{vxqqzy��w��‹ƒ£�����~m�}vu{j/&�«����������������q{����x����~���|�qv����z��££���vsmj^hc_^‘[)#��uxx�rrqlpqirpqpc[cdifkcljokhcnnfk^‘oejnfq|���xogc^‘ZVQRSQP"��qgjhjag‘d\][efii_X]b_ae_ecfmfcki‘dU\cb‘h\kx��zhf^ZRSMNNEJHG#��jWb‘cddlaa_fjjzigdagexdlonsl}vtplodpvptuqs����|yjwhe]\]Z^X_*&������������������v����������������y�������¥fi“'������w��{|}v00�°§'ƒfl‹·fl‹–‹¢†fl¶«ƒ««‹†‡‡fi»¾¾¾¾‡˜˜„¿'¿´À˙ˆ„É¸Ìˇ˝˘¸˜…˜À¶¿`¾…À‰WM*ÛÑˇ—×ÌÑˇÌ¸˝ˆ˝˚¸¸¿´´˜¸˘Ì˘É˚˝˝˝˝Ñ˛ÉÉÀˆ˝˚—ˇ¸Ñ×ÕÙݡˇ—ÛÓ—˛ÑÔÑÒÖÙ·�RŁßßÞªÝåäÞÝß×ÚÖÚÓ˚˛ÉÉÒˇÑˇÑ—ÓÓÕØÕØÑÓ˚˝ÔÒÖÖÓÓÕÕÜàÚÕÔÓÓ—¨—ÓÒ˝˛Ì�g@Ó˙˜¨˚…À„•–†¥°''¤����������¡¡������{�������£fl§¥�����ygmklb]‘#*�ZTXXVNXPRKJNPMRUCEFDMKGGMIRMKJJICIBFKGKPJQZeb\RNNPMNKKE@==G�%�s|���VRIKLMIMKQTEFCBGCGCFHHGEBCA?E<>D?FHEGMVQMKFC?@>4310*N�=>�‰fl��§}.,.(*,.&..$$’#(&’)&’(*’-)+&(# (((-)(2741-*+)+’’ (?6B���������a#�&"#$"!)’�’ � !!!"��#!$!!�!��" $"" &0*(&� �����c{wQ����������Q���������������������� ���������!���+#"#�������!������������¥�P#���������������������������������’��!������06�������������’_��}yhNJ7:168;9=D?5RO_oke[gedOTQ>BHTYWMReow�}r2))),��t�¡ƒ¥�¥¢����‚¿¸É˜‰¨ˆ˛—ˇ‰˘˘Ô…‡¢⁄¤£'��¢fl–‡°ˆÌÛÔˇ•fi��zskmjjd‘\<+�7�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!%�������������������������������������������

�����������������������"���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"���������������������������������������������!��$ "% & !""$*&$&%*%’’*’,,),’$$$’# $!������������������� ��1!#’’).*2,’*,*3.+1-10.124273933126.,/(#�"88?:?@CAB@@EABA@BACOECHJTZWVRIKJGGDAD@ADCDBEAIGDE@:@>757/#!•×Ó˛—˛Ì—̸¨˙˜`˜¾À¨É¨¨¯É¨˘˛—˝˛¨´ÉÌÌ—ÔˇÕÖÕÖÕÔ˛ÑÒÓˇ—É—ÌÕˇˇÌˇ¾�QŁääàÚÚÝÛÖ×Ô—˝˚ÉÌÌˇ˛¸ˇ˝ˇ˛˝˛ÒÌ—ÌÉ˝—ˇØÛÓÜÕßßÜÜÔ×ÖØÕÕ×Ô—Ô××ÕÙ×Ñ�pqposxuxryukqz~��~�������'•fl ¢�������£�¢¤ƒ¤¥ƒ�«‹¥§¥�¥¤§'¥�P*(479;:9?:@B;?AEGDEECMLVOThupfbZ[[ZYUTXVWWVWXXSZSWVPKPNLHL:&�|��£ƒ^(%%,(,’)*)(..-2487<GLNKB=C>@A<9;@><@B=?=C>A8986755pk<+36/03q"% $$""!’&%’&’0/065;BB<;5744552304445224420-*+&<EA_L-������ 1���������� ��$" &(,511.’--’/+(-+*)’**(,)&*%#" ���D���������n?��������������� $+’(’�"!�%"������!!� �������8�����������/w�jE(�������������$’(($�$��%#��� �����������$K�������������Qw��s\G=:*7-25854AXIqXkLU‘Y/3,’"#�!�&"’7Kv�������������������-?[my�������¥–”„“r�o�yg{⁄«¤��w]mqx�¤⁄�[$������������������������������0.������������);Z{jgG9��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������’22206195751767589<;<>8=BHTNG=5520,1,++()(’*’%&"#"������������������������������$!$$(3>=41+,,05427899<@BD>AB?>=;:?<7:.����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������-���������������������������������������"��������’����������������������������������������"����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������"��������������������������������������������"��"�� �((" �# " �#"��!!!�����������������������!"&�!#�() &%")$’&#)1(’’+)).’(+.’(,+$)(#*�!$!! �!�&�"" #$’#"*’’*&*))/+&*,)/*3.,5::2.5488138665563/88>1-3.1/(-%%##&&))--.-.,0*/-)36086190<93?@JF69;9=789:97755:=B:7(.+6E,.)*!Huqzxyxvzkonv�{z}s�����|��|����w}smlc\\Y]‘YYTWYWTIC?FN_DB)#�ÌØîغºŁàŁÞÞâÛÜØÒÕØÔÖØÖ×ÒÆÖÑÞåÝÖÒÖØÖÞÞàØÆæØðäߺŒºìæŒíŒíïððìŁ’*@?ILUUa� ”˘ˆ‡�������������£�»–¤“¤£§���{y{|~t~����»…�jrmdJE��%�%&)**-&�,E\v� ¢·‹¾–fi¤‰É‰°⁄�����z�°fi¾”¯·››»¶”��s?��� �" #!����!�!%’&�+*,.(-+-,--..35*9964573+/&()(#9?:(���"�������������������� �’%&&"*,*./+.*52,5624/1,-,+$%)&%%$!&# "�������������������&# *$$%"-*&.-+,,23*5225,--,,(&’$,$�%!%$� ���������!�����������������#�!"&%)&*("++$(&’$$#$"�"!��"��������������#���������������������� ##)&�%&!%�)! ������������������������������������������������#��!&"�����������������������������������������* &&�+($--)/)/.*36-0/,’&+$%#�"!�!� �����������������������������������������!#� � ������������������������������������������������������#"� �������������������������������������������������������� !���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$����������������������������

Jasmine Scanner Manual 17

7. Check-out Procedures

7.1 Adjusting the Output Level

The value of the 10K pot on the analog board is set to provide balanced input to the LM733 videoamplifier. With your scope set at 2mV/division, sync on the ScanStart signal (pin #3B-10). Placea white strip of paper on the document window and examine the output of the video amplifier (pin#IC2-7). When the pot is below the minimum allowable value, the output is a constant high value(~4V). Turning the pot clockwise will cause the output signal to move through the correct settingrange (Figure 7.1) to a point above the maximum allowable value, where the output will be aconstant low value (~2V). The optimum setting is where high light level produces an output valuejust above the bottom constant line, and zero light level produces an output value just below thetop line.

Figure 7.1: output at #IC2-7 with low, optimum, and high settings of pot

With the pot set to its optimum position, examine pin #IC8-3. The signal here should varybetween 0V (black) and about -2.2V (white). If the signal goes below -2.5V, reduce the value of thefinal gain resistor #R10 until the maximum value falls into the permissable range. If the signalgoes much above -2V, increase the value. (Levels below -2.5V will cause the A/D system to wraparound so that high light levels read as "black", and levels above -2.5V will reduce the maximumrange of output values. Setting the gain for a nominal value of -2.2V reduces output range onlyslightly, and guarantees no wrap-around).

7.2 Optical Assembly

Fasten the analog board to the lens mount assembly. There is play in the board position due tooversized mounting holes: this allows corrections for minor variations in the position of thedetector array elements. Fasten the lens mount assembly to the chassis at the midpoint of theadjustment slots. Thread the lens into the mounting collar as far as it will go. Set the lens apertureto f4 (full open).

The three optical adjustment steps are performed with an alternating pattern of broad black andwhite stripes in the transport; this allows easy identification of the image window for alignment andprovides the appropriate patterns for magnification and focus adjustment. There is a small amountof interdependence in the adjustment steps: changing the focus may alter the alignment slightly.

7.2.1 Alignment

The lens axis must be positioned so that the image of the document window reflected by the mirrorfalls across the detector elements. Small variations in the tilt of the lens to achieve this goal are

Page 18: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual 18

controlled by the 2" lens mount adjusting screw. A rough setting can be performed by visuallychecking that the image is correctly aligned. Fine adjustment is performed by watching the scanneroutput on the Alto screen, and ajusting for the best image.

7.2.2 Focus

The image is focused by varying the distance from the lens to the detector array. This is achievedby turning the lens in the mounting threads until the edges of the stripe pattern are as sharp aspossible. When the mounting bracket is under tension from the adjusting screw, the resultingpressure on the lens threads will hold the lens securely. For final focus, insert a text page into thescanner, and use the software to zoom in on a small (~100x100 pixel) area. Rescan the area whileadjusting the focus for an optimal image. While adjusting focus, it is easy to change the lens aperture, therebycutting down the brightness of the image. Make sure the aperture is always fully open.

7.2.3 Magnification

The image magnification is determined by the distance from the lens mount assembly to thedocument window. Moving the assembly away from the document window increases themagnification.

Page 19: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 19

Appendix 1. Schematics

A1.1 Analog Board

21

21

21

14

14131211654315

XEROX FileProject Designer Rev Date Page

Parc CSL McCreight 01

GHRR T+

-

TRTRTR

GND1VCC1

ANALOG

T

TREFoREFi

CTRSELCLK’RESET’

RRR

ADC-MC8BC

lsb

RR

R

R

RRRRD0

D1D2D3D4D5D6D7

RRR

msb

Scale.0Scale.1Scale.2Scale.3Scale.4Scale.5

GHRR T+

-

TR hd

hd

hd

hd

LM360CA3140

GND

GND

TRhd

n

CA3140

jasmana.silJasmine Analog section

GHRRiT+-

TDD’

D0D1D2D3D4D5D6D7

RRRRRRRRV+V-

REF+REF-

COMP

II’

RRRRR

TT

TGND*

msb

lsb TRGND

SAR.0SAR.1SAR.2SAR.3SAR.4SAR.5SAR.6SAR.7

TR

EOC’

Q0Q1Q2Q3Q4Q5Q6Q7

lsb

msb

CLK

Q7’

RES’

E’

D TTTTTTTTTT

RRRR

NextBit

GND

.DM2503

GND

TR

ScaleCorr15pf

1k

1k

1k .

hd

hd

hd

TR.GHRRiT+-

TDD’

LM733

n

C YX

TS

SY TR

TTRRRRRRRRR TR

EOS

RecGate

DRecVRec

VBufDBufBufSup

GND*

STARTCLK

V-V2+V1+

n

GND

ScanStart

CD4053

GND*

RV+V-RR

E’

RG2BG2A

G1BG1A

RRRRRRV-

V+

CD4053

LM733

hd

GND*

RRRV-

V+

Clock

-Pwr+Pwr

RR

GND

-10v

-10v+5v

+5v

+5v

GND+5v-10v

-5v

+5v

+5v

CA3140

LM360

NE5008

RL1024G

DCRestore

AnalogOn’

.01uf

8.2k

-10v

220pf

TRTR TRn

hd

hd

Pi filter

Pi filter

hd

hd

n TRTRTR

VCC +5v

-10vNegSupply GND*

RRRV-

V+

n

TR-5v

nPower Supply

GHRR T+

-

TR TRTR nVCC

hd hd

hd

1.5k3.9k

LM339

Scale DAC

Scanner

Video AmplifierSample/Hold/Restore Switch

Hold Amplifier

Successive approx.DAC

Comparator

+5v

+5v-10v

CA3140-Pwr+Pwr

RR

Recharge

TRhd1.1k

Ref

D3

D2

RRRRRRRR TTTTS

D1

D0E0

E1

E2

E3

H0

H1

H2

H3

CO

T

CI

D3

D2

RRRRRRRR TTTTS

D1

D0E0

E1

E2

E3

H0

H1

H2

H3

CO

T

CI

Offset.5

Offset.4

Offset.3

Offset.2

Offset.1

Successiveapprox.register

nOffset adder

LS283

LS283

.SAR.0

SAR.1

SAR.2

SAR.3

SAR.4

SAR.5

SAR.6

SAR.7

* adjust for proper gain

Data.0

Data.1

Data.2

Data.3

Data.4

Data.5

Data.6

Data.7

-10v

#aa61

-Pwr+Pwr

RR

VCC

LM339

#bb34

hdr

uA7905

312

6523

15141112 10

13

1

4

7

9

6523

15141112 10

13

1

4

7

9

21

74

21 21

21

4

52

12

31221

21

21

21

74

854

105

11

12

4

3

6

716

8

6

16

171

18

212

7

913

12

1011

87

121

21

1091

7

2

21

21

16

24

1514

13

13

121110

98765

76

23

21

21

2

36

14

16

243

1

15

13

8

5679

121110 21

2121

2

36

hd

hd

1 2

21

ScanClk’

ResetAD’

22uf+

10k

6.8uf 6.8uf

6.8uf6.8uf

+ +

+ +

3.9uH

3.9uH

6.8uf

iGHR TLS04 SampleDone

TR TRn TR-5v

22uf

zener

300 ohms

hd

hd

hd

True

5.1k*

n

1 2

nhd1k TR

..

**adjust for proper offset

80k**

7/19/79

n.01uf TR

TRTRn

.1uf

.1uf

B

Offset.0

True

n

n#C3

#C2

#1A

#1B

#IC4

#IC6

#IC3

#IC1#IC2

#IC2

#IC1

#IC8

#IC8

#IC5

#IC9

#IC7

#IC7#IC6#IC3

#2B

21

#C5

#R10#R11

#R12#R13

#C6

ADD

#C12

#R15

#R16

#R14

#C9

#R22

#D6

#C11

#R17#R19

#R18

#C10#C7

#H1

#H2

#C8

#C13

#C15

121314

11

note: C2,C3 polarityis mismarked on PC board

+5v

+5v(#R21b)

k#R20a

#R21aSee modification list

nrevGb

revGb

Page 20: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 20

A1.2 Finite State Machine

21

21

1

1

19

4

13

5

12

5

46

9

14

10

124567

153

13

11

2

9

14

10

124567

153

13

11

2 151

6

1

2

3

5 4

79101112131415

14

12

9

7

19181716

54

23

1 6

8

11

13

1519

6

14

7

15

12345

9

10

12

14

15

11

13

XEROX FileProject Designer Rev Date Page

MalesonCSL JASMINE FINITE STATE MACHINE

State.1State.2State.3State.4

Q7Q6Q5Q4Q3Q2Q1Q0

TTTTTTTT

RRRS

RR

A0A1A2A3A4

CS’

State.0

State.0

State.4State.3State.2State.1

CL’CK

SS

RRRRRR

D0D1D2D3D4D5

TTTTTT

Q0Q1Q2Q3Q4Q5

State.0State.1State.2State.3State.4

Clock

Seq.SampleSeq.ScanDone

S

Q7Q6Q5Q4

TTTT

RA8A7A6A5A4A3A2A1A0

CS’

RR Q3Q2Q1Q0

RRRRRR

TTTT

n

n82S147

LS174

HM7603

.

...

fsm.sil

E

SRRR

SSTTTTTTTT

E’E’

S1

S2

S4

Q0’Q1’Q2’Q3’Q4’Q5’Q6’Q7’

LS138

Alto.9’

Alto.10’

Alto.11’

Decode.Start’Decode.Load’

Decode.WE1’

Decode.WE3’Decode.WE2’

Decode.Start’Decode.Load’

Alto.8’

Alto.8’ SE’SB

S

B3D3B2D2B1D1B0

RRRRRRRR

D0

TTTT

Q0

Q1

Q2

Q3

XBus.8XBus.9XBus.10XBus.11

XBus.12

XBus.13

XBus.14

XBus.15

Output section: data to Alto either from 64x8 FIFO orhigh order bits of Init register (describes sensor array)

Input decode: 3 bit command, 1 bitfor "command ready"

Finite State Machine, controls scan cycle andRAM initialization cycle

Recharge

DCRestoreAnalogOn’

SampleDone

LS257

SB=0 selects DSB=1 selects BTrue

VGG

RMR’

SO IRORSI

S

Q3Q2Q1Q0

TTT

D0

RRRRRR

D1D2D3 TT

T

VGG

RMR’

SO IRORSI

S

Q3Q2Q1Q0

TTT

D0

RRRRRR

D1D2D3 TT

T

Data.0Data.1Data.2Data.3

Data.4Data.5Data.6Data.7

SampleDone FIFOReady

iRR TBAFIFOReady n

Decode.Load’

02

.

.

XBus.Read’

pppppppp

XBus.Read’XBus.A0’XBus.0XBus.8XBus.9XBus.10XBus.11XBus.12XBus.13XBus.14XBus.15

ppppppppppp

Alto.9’Alto.10’Alto.11’Alto.12’Alto.13’Alto.14’Alto.15’

pn

Cable connections

Clock

ResetCtrs’

ResetCtrs’LS00

iCDRR Ti

LS00 XBus.0

pNegSupply

p

CL’CK

SS

RRRRRR

D0D1D2D3D4D5

TTTTTT

Q0Q1Q2Q3Q4Q5

True

ClockTrue

F3341

F3341

NegSupply

NegSupply

LS174VirScanClk’

Decode.SetDelay’

ResetAD’

S’

R’R TTR

S

QQQ’

D

C

XBus.A0’

iGHR TFIFOReady

True

.TRTR

n

200 ohms

pVCC

hd

hd

.Decode.MotorCtl’

4 Mhz Xtal

K1100A

TRFout 8

TRVCC True

1k

True

CL’CK

SS

RRRRRR

D0D1D2D3D4D5

TTTTTT

Q0Q1Q2Q3Q4Q5

LS174

1210

1311

9 1

Stepper Motor Control

..Decode.MotorCtl’

Alto.13’Alto.14’Alto.15’

. ...

RunMotorStepControlAStepControlB

7/19/79

GND

GND

GND

True

Serial No. 1returned onLoad cmd

B

470 pf

n

#7A#7A

#4A

#6A

#3A

#2C

#6B

#1B

#2B

#4B

#3B

#5B

#5A

#3C

11

3 4

13 1210

52

ScanStart

ResetCtrs’

6

314

11

7

215

10

46

14

3

5715

2

89

10

14131110 2 3 5 6

12

9

4

7

1012

11

13

8

9

89

114

215

316

417

518

6

197

208

219

2210

13,2511,23

12 24

#R1

#C1

76

S74

LS74’s won’t work

LS14Note: the inverter must be

S’

R’R TTR

S

QQQ’

D

C

S74#1BClock(#3B9) 3

2

True(#1B14)

Alto.8’(#6B5)5

4

1

4

True(#1B4)

Synchronizer modification(blue wires)

.

Alto.8’RAW

Alto.8’RAW(C19)

an LS14 for noise immunity

The flop must be an S74:

Page 21: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 21

A1.3 Sequencing Logic

21

21

65

8

74321

171615

10

14

13

12

11

65

8

74321

171615

10

14

13

12

11

65

8

74321

171615

10

14

13

12

11

1

1

19

19

346

13

257

12

1

1312116

5

3

710

9

4

15

14

2

1

1312116

5

3

710

9

4

15

14

2

1

1312116

5

3

710

9

4

15

14

2

1

1312116

5

3

710

9

4

15

14

2

FileProject Designer Rev Date Page

MalesonJASMINEXEROX FileProject Designer Rev Date Page

MalesonJASMINE

B1

S

TTTH3H2H1H0

B3B2

B0

RRRRRS

RT

LD’

TCL’

EPET

CO

SCK

B1

S

TTTH3H2H1H0

B3B2

B0

RRRRRS

RT

LD’

TCL’

EPET

CO

SCK

B1

S

TTTH3H2H1H0

B3B2

B0

RRRRRS

RT

LD’

TCL’

EPET

CO

SCK

Carry0

Carry1

Offset.0

Offset.1

Offset.2

Offset.3

Offset.4

Offset.5

Scale.0

Scale.1

Scale.2

Scale.3

Scale.4

Scale.5

Addr.2Addr.3Addr.4Addr.5Addr.6Addr.7Addr.8Addr.9Addr.10Addr.11

Addr.11Addr.10Addr.9Addr.8Addr.7Addr.6Addr.5Addr.4Addr.3Addr.2

Addr.2

Addr.4Addr.5Addr.6Addr.7Addr.8Addr.9Addr.10Addr.11

B1

S

TTTH3H2H1H0

B3B2

B0

RRRRRS

RT

LD’

TCL’

EPET

CO

SCK

CL’CK

SS

RRRRRR

D0D1D2D3D4D5

TTTTTT

Q0Q1Q2Q3Q4Q5

LS174

LS163

LS163

LS163

LS163

Scan Counters Cycle Address Lines to Scale/Offset RAMS Signal ScanDone

Latch contains frequency "n"

3-State Drivers forScale/Offset Rams

Scale/Offset RAMS

2 6-bit values arepassed to the analogsection for correction(separate correctionfor each sensor element).

Intel 2114

SEQUENCING LOGIC Sequence.SIL

Addr.2Addr.3

Addr.4Addr.5Addr.6Addr.7

Addr.8Addr.9Addr.10Addr.11

Carry1

Carry0

Seq.ScanDone

Seq.Sample

Seq.Sample

CSL

...... ..

R TiHGiR TiHGiR TiHGi

R TiHGiR TiHGi

R TiHGi

Offset.0

Offset.1

Offset.2

Offset.3

Offset.4

Offset.5

R TiHGiR TiHGiR TiHGi

R TiHGi

R TiHGiR TiHGi

Scale.0

Scale.1

Scale.2

Scale.3

Scale.4

Scale.5

SEN’

SEN’

LS240

LS240

SEN’

Addr.3i2114

i2114

i2114

SamplePreset’

1K x 4CD iRR T

ResetCtrs

Decode.WE1’

Decode.WE2’Decode.WE2’

Decode.WE3’Decode.WE3’

Decode.WE1’

ResetCtrs’

ResetCtrs’

ResetCtrs’

TrueTrue

LS02

True

BAiiRR T

TTTT

SRRRRRRRR

Q0

Q1

Q2

Q3

S

RR

CS’

A0A1A2A3A4A5A6A7

A9A8

WE’

TTTT

SRRRRRRRR

Q0

Q1

Q2

Q3

S

RR

CS’

A0A1A2A3A4A5A6A7

A9A8

WE’

TTTT

SRRRRRRRR

Q0

Q1

Q2

Q3

S

RR

CS’

A0A1A2A3A4A5A6A7

A9A8

WE’

n

n

03

LS240

#y15a

#y15b

#y15c

#y15d

#y4a

#y4b

#y4c

#y4d

#y4e

#y4f

#y4g

#y4h

LS02

Alto.12’Alto.13’Alto.14’Alto.15’

Alto.12’

Alto.13’

Alto.14’

Alto.15’

Alto.15’

Alto.14’

Alto.13’

Alto.12’

Alto.12’

Alto.13’

Alto.14’

Alto.15’

ResetCtrs’ResetCtrs

..Addr.0Addr.1

True

True

True

Alto.15’Alto.14’Alto.13’Alto.12’

TrueResetCtrs .... ...

.

Digitize every nth sample, discard others Latch contains frequency "n"

Sample Counter

LS163

LS174

CL’CK

SS

RRRRRR

D0D1D2D3D4D5

TTTTTT

Q0Q1Q2Q3Q4Q5

B1

S

TTTH3H2H1H0

B3B2

B0

RRRRRS

RT

LD’

TCL’

EPET

CO

SCK2

14

15

4

9

107

3

56 11

1213

1

12

752

13

643

9 1

Delay counter

Delay n clocks after every sample

DelayDone

True

iGHR T

BAiiRR TVirScanClk’

DelayDone

LS04

LS02

Decode.SetDelay’

DelayDone

DelayDone

DelayDone

VirScanClk’

VirScanClk’

VirScanClk’

DelayDone’

DelayDone’

DelayDone’True

VirScanClkVirScanClk

iGHR TVirScanClk’ VirScanClk

CD iRR TResetCtrs

ScanClk’ScanClk

LS02

n

TR TRn

150 ohms hd

hd

TrueGNDTrueTrue

True

True

7/19/79B

220 pf

#5C

#5D

#5E

#6C

#6C

#6D

#4C

#4D

#4E

#1C

#1C

#2B

#3D

#2D

#3E

#2E

#2B

#1C#1C

14

11

15

1014

11

15

10

5 6

46

5

12

3

3 4

9

810 11

12

13

8

6

4

2

11

13

15

17

8

6

4

2

12

14

16

18

12

14

16

18

9

7

5

3

Page 22: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 22

A1.4 Stepper Motor Drivers

XEROX FileProject Designer Rev Date Page

CSL JASMINE AStepper Motor Drivers MalesonMcCreight 7/2/79Stepper.SIL

GHRR T+

-

GHRR T+

-

GHRR T+

-

GHRR T+

-

-Pwr+Pwr

RR

TTLThresh

TTLThreshStepControlA

TRhd6.8k

n

n6.8k hd

TR

TRhd6.8k

n

n6.8k hd

TR

TRhd1N4002

1N4002 hd

TRhd

TR1N4747

n

C

EB

TR TC

EB

TR T

C

EB

TR TC

EB

TR T

Note: for diodes,

K

K

K

CoilA2

CoilA1

NegSupply

K

K

TRhd1N4002

1N4002 hd

TR

CoilB1

CoilB2

TR

nTR

TapA

TapB

NegSupply

NegSupply

NegSupply

hd

hd

K = cathode = banded end

VCCNegSupply

iRR TBA

iRR TBA

RunMotor

RunMotor

iRR TBAiRR TBA

TTLThresh

TTLThresh

StepControlB

LS00

LS00

LS00

LS00

LM339

LM339

LM339

LM339

LM339

TIP122

TIP122

TIP122

TIP122

Stepper motor sequencing:Forward

A On B OnA On B OffA Off B OffA Off B On

BackA Off B OnA Off B OffA On B OffA On B On

TIP 122 pin order: B,C,E

04

#1D

#1D

#1D

#1D

#1E

#1E

#1E

#1E

8

11

6

3

9

10

12

13

5

4

2

1

8

9

10

11

6

7

4

5

14

13

1

2

#1E

312

5ohm5w

5ohm5w

Page 23: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 23

A1.5 PC board layout

PageDateRevDesignerProject FiìeXEROX

As viewed from the component side

ParcCSL

JasmineReference

05

LS283 LS283

LS02

LS00

LM339

LS14

Crystal

LS163

LS163

F3341

LS174

LS174

LS174

LS174

LS257

HM7603

LS163

LS163

LS163 i2114

i2114

i2114

82S147

LS174

LS138

F3341

LS240

LS240

LS00A

B

C

D

E

JASMINE DIGITAL BOARD

1 2 3 4 5 6 7

PC Board Layout Merino A 9/21/79PCLayout.SIL

RL1024G

7905

ADCMC8BC

LM339

LM360N

LM2503

NE5008

CD4053

LM733

CA3140

CA3140

C1

R1

C2

C3R2

R3 R4 R5 R6D1 D2 D3 D4 D5

R

R

R

7

8

9

C

R R R R

R R

R

C11

R12 13 14

R15

R16

R17

R18

R19

20 21

22

10

C

4

5

C6

C7

C8

C9

C10

11 D6

H1

H2

IC1

IC2

IC3

IC4

IC5

IC6

IC7

IC8

IC9

IC10

TIP122 TIP122 TIP122 TIP122

C14

C15

C13

C12

S74

note: C2,C3polarity aremismarkedon PC board

Page 24: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 24

A1.6 Power Wiring

PageDateRevDesignerProject FileXEROX1CSL G AVEST

<IBIS>

tyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUItyuiTYUI

a

3 4

b

SWITCH

PLUG

WHITE

BLACK

BLACK

BLACK WHITE

WHITE

-12 VOLT POWER SUPPLY

+5 VOLT POWER SUPPLY

SCANNER BASIC WIRING SCANNER.SIL

FUSE 3/4 AMP

L NE

LENS

MIRROR

B1

B2

A1

A2 YELLOW

YELLOW

GREY

GREY

GROUND

STEPPERMOTOR

INTERNAL CABLE

ANALOG BOARD

DIGITAL BOARD

J-1

BLACK

+12 VOLTS (YELLOW)

GROUND (BLACK)

GROUND

+12 VOLTS (YELLOW)

GROUND (BLACK)

PIN #25

PIN # 24PIN #23+5 VOLTS (ORANGE)

+5 VOLTS (ORANGE)GROUND

GROUND

COMMON

4/8/80

Page 25: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 25

A1.7 External Cable

PageDateRevDesignerProject FileXEROX1CSL G AVEST

<IBIS>

4/8/80SCANNER SCANNERCABLE.SILCABLE FOR ALTO 2

1

2

3

4

5

6

14

15

16

17

18

7

8

9

10

19

20

21

22

24

12

ALL GROUNDS TIETO A COMMON POINT

21

20

19

18

14

9

8

7

6

16

15

25

11

9

7

5

1

12

10

8

6

NOTES:1. CABLE IS 10 FT. LONG2. CABLE IS 19 TWISTED PAIRS3. ALL PLUGS ARE AMP. P/N 205208-1

Page 26: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 26

A1.8 TC200 Paper Transport Modifications

XEROX FileProject Designer Rev Date Page

Parc CSL Jasmine Transport mods Maleson A 1/2/80

leading edge of

cutouts to be

beveled to match

trailing edge bevel

to be removed

rear section

three descending

tabs to be

removed

TransportMods.SIL 08

Red areas indicate sections to be modified on TC200 Transport assembly

Page 27: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 27

Appendix 2. PROM Microcode

A2.1 PROM Blowing Procedure

Both PROMs are blown with the Prolog PROM blower. The Harris HM7603 32x8 PROM requiresthe PM9039 Personality Module, the PA16-2 Adaptor, and the 32x8(H) Configurator. The TexasInstruments 74S472 512x8 PROM requires the PM9046 Personality Module, the PA20-1 Adapter,and the 512x8(L) Configurator.

The easist way to blow a set of PROMs is to copy an existing PROM. If you need to blow PROMsfrom scratch, you will need:

[IVY]<Jasmine>JasProm.MB[???]<???>PNew.RUN.

The command lines for the 74S472 and HM7603 respectively are:PNew jasprom.mb/f 22/t StateMem/m 0/c 0/b 0/a 0/sPNew jasprom.mb/f 7/t ControlMem/m 0,1,2,3,4/p 0/c 0/b 0/a 0/s.

Page 28: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 28

A2.2 Microcode Listing

To produce JasProm.MB from the following source code, you will need:[MAXC]<Alto>BCPL.RUN[???]<???>RomDef.RUN.

The command lines necessary are:BCPL.RUN JasminePromGen.BCPL //produces JasminePromGen.BRRomDef.RUN JasProm.MB JasminePromGen.BR.

//J A S M I N E P R O M G E N//// generate PROMs for Jasmine scanner

//RomDef jasprom.mb jasminepromgen.br//pnew jasprom.mb/f 22/t StateMem/m 0/c 0/b 0/a 0/s//pnew jasprom.mb/f 7/t ControlMem/m 0,1,2,3,4/p 0/c 0/b 0/a 0/s

//12/13/78: first try//12/21/78: modify control mem to fix inverted signals//12/28/78: modify state mem for additional recharge cycle// (useless)//1/25/79: modify control mem to fix initialization sequence//1/27/79: modify control mem for inverted sample/delay clocks// modify state mem to remove additional cycle on recharge//4/30/79: fix Load sequence to access first, last locations//1/24/80: hold DCRestore high while A/D conversion is taking// place because there seems to be charge leaking into the// analog switch when DCRestore is low, even though the// AnalogOn’ signal is high (shouldn’t happen but does)//3/10/80: four cycle Recharge////The Alto supplies 8 data bits, and receives 8 data bits + ready flag from Jasmine//Data bits: 3 bits are decoded into 8 states:// {Start’,Load’,Forward’,Back’,WE1’,WE2’,WE3’,unused’}//1 bit enables the decode chip, and 4 bits are data// Forward’,Back’ are stepper motor drive signals// WE1’,WE2’,WE3’ are write enables to the three 4x1024 RAMs//Input bits: two locations are used (both reading from XBUS)// one is "SafeLoc" (no state change caused by access)// the other is "StepLoc" (reading causes the FIFO to shift out)

//PROM initialization//The PROM has 4 possible places it may be looping at startup:// <Wait>,<Scan>,<Load>,<Init>//To go from <AnyState> to <Wait>, do:// pulse Load’, then pulse Start’//causing the following state transitions// currentState Load’ 0 Start’ 0 Start’ 1//--------------|---------|---------|---------// <Wait> | <Load> | <Init2> | <Wait>// <Load> | <Load> | <Init2> | <Wait>// <Scan> | <Init1> | <Init2> | <Wait>// <Init1> | <Init1> | <Init2> | <Wait>// <Init2> | <Init2> | <Init2> | <Wait>

//To load the scale/offset ROMs, Pulse LoadPrime to advance the address counters,//and then each 4-bit nybble is written by the appropriate WE signal and data

//To Scan, pulse StartPrime//let count=0//until count eq nSamplesPerScanLine do// [ data!count=@SafeLoc repeatuntil data!count ls 0// [ count=count+1// data!count=@StepLoc// ] repeatuntil data!count ge 0// ]//

//outgoing proceduresexternal [ RomDef

Page 29: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 29

]

//incoming proceduresexternal [ WriteMem

]

//internal manifest and structure declarationsstructure [ blank bit 7

StartPrime bitLoadPrime bitSample bitScanDone bitState bit 5

]

structure [ blankbyte byte

ScanClkPrime bitRecharge bitAnalogOnPrime bitDCRestore bitResetADPrime bitResetCtrsPrime bitScanStart bitblank bit

]

//manifest names for state numbersmanifest [ WAIT=0

SCAN1=1SCAN2=2SCAN3=3SCAN4=4SCAN5=5SCAN6=6SCANLOOP1=7SCANLOOP2=8SCANLOOP3=9SCANLOOP4=10SAMPLE1=11SAMPLE2=12SAMPLE3=13SAMPLE4=14SAMPLE5=15SAMPLE6=16SAMPLE7=17SAMPLE8=18SAMPLE9=19SAMPLE10=20SAMPLE11=21SAMPLE12=22FREESTATE=23LOAD1=24LOAD2=25LOADLOOP1=26LOADLOOP2=27LOADLOOP3=28LOADLOOP4=29INIT1=30INIT2=31

]

let RomDef() be [ let S147Mem=vec 512 //Signetics 512x8 PROM

let HM7603Mem=vec 32 //Harris 32x8 PROM

//input variables are: StartPrime,LoadPrime,Sample,ScanDonefor State=0 to 31 do for Start=0 to 1 do for Load=0 to 1 do

Page 30: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 30

for Sample=0 to 1 do for ScanDone=0 to 1 do [ //set up Signetics PROM address

let Saddr=StateSaddr<<StartPrime=not StartSaddr<<LoadPrime=not LoadSaddr<<Sample=SampleSaddr<<ScanDone=ScanDone

//set up default values of output parameterslet nextState=State+1let ScanClk=0let Recharge=0let AnalogOn=0 //analog switch enablelet DCRestore=0let ResetAD=0let ResetCtrs=0let ScanStart=0switchon State into

[ case WAIT: // standard wait state: branch on Start or Loadif Start&Load then

[ nextState=WAIT ;endcase] //NEVER HAPPENSif Start then [ nextState=SCAN1 ;endcase]if Load then [ nextState=LOAD1 ;endcase]nextState=WAITendcase

//for reading a sample:// pulse ScanClk// wait 500nsec for detector output// hold AnalogOn for 1 us (to transfer charge to hold register)// StartAD// wait 9 clock times for AD to complete, during which// Recharge+DCRestore// DCRestore+AnalogOn for 1 us (to do DCRestore)// DCRestore (to avoid glitches from analog switch)

case SCAN1: // set up for array startScanStart=1if Load then nextState=INIT1endcase

case SCAN2: // array start, (resetctrs for ScanClk)ResetCtrs=1ScanStart=1 // array starts on falling edge of clockif Load then nextState=INIT1endcase

case SCAN3: // array start goes away while clock lowScanClk=1 // counter reset on rising edge of clockResetCtrs=1if Load then nextState=INIT1endcase

case SCAN4: // delay for first "real" clock pulseif Load then nextState=INIT1endcase

case SCAN5: if Load then nextState=INIT1 ;endcase case SCAN6: if Load then nextState=INIT1 ;endcase case SCANLOOP1: // until ScanDone do . . .

DCRestore=1 //1/24/80 --last cycle of previous A/DScanClk=1if Load then [ nextState=INIT1 ;endcase]if ScanDone then nextState=WAIT //loop exitendcase

case SCANLOOP2: // wait 500 nsec after trailing edge of ScanClkif Load then nextState=INIT1endcase

case SCANLOOP3: // decide whether to use sample, or skipif Load then [ nextState=INIT1 ;endcase]if Sample then nextState=SAMPLE1 // do the sampleendcase

case SCANLOOP4: // rechargeRecharge=1nextState=SCANLOOP1

Page 31: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 31

if Load then nextState=INIT1endcase

case SAMPLE1: // Grab output voltage in hold registerAnalogOn=1if Load then nextState=INIT1endcase

case SAMPLE2:AnalogOn=1if Load then nextState=INIT1endcase

case SAMPLE3:AnalogOn=1if Load then nextState=INIT1endcase

case SAMPLE4:AnalogOn=1if Load then nextState=INIT1endcase

case SAMPLE5: // reset presented to SARResetAD=1if Load then nextState=INIT1endcase

case SAMPLE6: // Q7 low, Q6-Q0 highRecharge=1DCRestore=1if Load then nextState=INIT1endcase

case SAMPLE7: // Q7 correct,Q6 low, Q5-Q0 highAnalogOn=1Recharge=1 //3/10/80DCRestore=1if Load then nextState=INIT1endcase

case SAMPLE8: // Q7-Q6 correct,Q5 low, Q4-Q0 highAnalogOn=1Recharge=1 //3/10/80DCRestore=1if Load then nextState=INIT1endcase

case SAMPLE9: // Q7-Q5 correct,Q4 low, Q3-Q0 highAnalogOn=1Recharge=1 //3/10/80DCRestore=1if Load then nextState=INIT1endcase

case SAMPLE10: // Q7-Q4 correct,Q3 low, Q2-Q0 highAnalogOn=1DCRestore=1if Load then nextState=INIT1endcase

case SAMPLE11: // Q7-Q3 correct,Q2 low, Q1-Q0 highDCRestore=1if Load then nextState=INIT1endcase

case SAMPLE12: // Q7-Q2 correct, Q1 low, Q0 highDCRestore=1 //1/24/80if Load then nextState=INIT1nextState=SCANLOOP1 // finish AD while reading next sampleendcase

case LOAD1: // load scale/offset RAMSResetCtrs=1ScanClk=1if Start then nextState=INIT2endcase

case LOAD2: // counter load on clock rising edgeResetCtrs=1

//wait here until Load goes low (to access 0th location) [4/30]if Load do nextState=LOAD2

if Start then nextState=INIT2endcase

case LOADLOOP1: // step counter on every Load pulse

Page 32: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 32

if Start then [ nextState=INIT2 ;endcase]unless Load do nextState=LOADLOOP1endcase

case LOADLOOP2:ScanClk=1if Start then nextState=INIT2endcase

case LOADLOOP3:if Start then [ nextState=INIT2 ;endcase]if Load then nextState=LOADLOOP3endcase

case LOADLOOP4:if Start then [ nextState=INIT2 ;endcase]

//we miss the last location with this here code [4/30]if ScanDone then nextState=WAITnextState=LOADLOOP1endcase

case INIT1: // wait for Startif Start then [ nextState=INIT2 ;endcase]nextState=INIT1endcase

case INIT2: // wait for Start to fallif Start then [ nextState=INIT2 ;endcase]nextState=WAITendcase

default: nextState=WAITendcase

]let Scommand=0Scommand<<ScanClkPrime=not ScanClkScommand<<Recharge=RechargeScommand<<AnalogOnPrime=not AnalogOnScommand<<DCRestore=DCRestoreScommand<<ResetADPrime=not ResetADScommand<<ResetCtrsPrime=not ResetCtrsScommand<<ScanStart=ScanStartS147Mem!Saddr=nextStateHM7603Mem!State=Scommand

] //end of nested for loopsWriteMem(S147Mem,"StateMem",8,511)WriteMem(HM7603Mem,"ControlMem",8,31)

]

Page 33: Jasmine Scanner Manual - Computer History Museum

Jasmine Scanner Manual Appendix 33

Appendix 3. Revisions

A3.1 REV Gb: modifications to original PC boards

Analog Board

Connect IC4 pin 21 to 22Cut trace to IC2 pin 5 (was connected to -5V)Connect IC2 pin 5 to C14 (GND)

(C14 is now useless with both legs connected to GND)Add .1uF cap on IC8 from pin 5 to 8Add .01uF cap on IC5 from pin 1 to 13Remove resistors R20 and R21Add 10K pot with adjusting screw at top as follows:

top leg to top hole of R21middle leg to bottom hole of R21bottom leg to top hole of R20(no connection to bottom hole of R20)initial setting is about 5K

Substitute 1M resistor for R12 (marked 80K)Substitute 820 ohm resistor for R10 (marked 5.1K)

(NOTE: this resistor is the final gain set. Increasing theresistance will increase the output values)

Digital Board

reverse both 6.8uF caps (pc artwork is backwards)Cut the etch from Cable connection 19 to #6B pin 5Add wire from #1B pin 5 to #6B pin 5Add wire from #1B pin 1 to #1B pin 4Add wire from #1B pin 4 to #1B pin 14Add wire from #1B pin 3 to #3B pin 9Add wire from #1B pin 2 to Cable connection 19

D0 NOTE: The D0 provides TTL termination on its printer port,but the F3341 FIFO is a MOS device. For proper D0 operation,replace the F3341 with the pin-compatible MMI67401 TTL FIFO.The MMI67401 will work on Altos, but costs ten times as much.

NOTE: #1B Must be an S74, not LS as indicated#6B may want to be an S138, although the twisted pair cable andsynchronizer modifications should allow the LS138 to work.

Light Bar

Remove center two bulbsAdd foam tape to front of light bar base, to elevate lights