IMD 1.17: 11/11/2014 15:11:32 82VKXBVERDOS C* VERSADOS/RMS68K OBJECT 4.4 SN=48634 20 OF 22  BT20\82VKXBVERDOS 0420¼<-*ˆJAHƒ2/25/85ƒInCOMCMD:‚Useno.ofcylindersonmediaforthe'*˜configurecommandonharddisksonly.9*ˆJAHƒ2/18/85ƒInCOMCMD:‚Limitthepre-compensationvalue.*˜to$FF-themostthatwillfitinonebyte.ééééééé(:0:8D@9H8P=X,`+h:p7x6€:ˆA:˜6 .¨9°;¸8À8È4Ð8Ø:à6è<ðQø *ˆBWNƒ2/13/84‡PJD9/18/84 *ˆRV10/17/84retryoptioncheck<*ˆBWN‚10/25/84:‚Fixedsothatcorrectsectornumberreturned*˜whenanerrorisfound.3*˜RWCOMMON:‚DonotincrementLSNunlessallsectors.*˜havebeenprocessedforthecurrentcommand.+*˜CHECKERR:DonotdecrementLSNforretry.4*˜STATERR:‚DonotdecrementLSNforreportingerror.*;*ˆBWNƒ11/7/84ƒInCOMCMD:‚Makeachecktoseethatbytesper-*˜sector,sectorspertrack,anddatadensity4*˜haveconsistentvaluesforafloppydiskof51/4".*˜and8"sizes.‚Ifnot,returnerrorcode$47.*D*ˆBWNƒ12/21/84‚Yetanotherfixfortheelusivecorrectsectornumber *˜return:0*˜Seemsthatthelast"fix"causedustoputbad3*˜stuffintotheuser'sbufferwhenreadingsectors-*˜intrack0ofadoubledensityfloppydisk.5*˜ThisoccuredwhentherewasaCRCerrorintrack0.&*˜Thesetupforretrywasnotcorrect.4*˜Hopefullythiswillfixtheproblemofthecorrect'*˜sectornumbersgettingreturnedfora.*˜CRCerrorandtrack/sectorIDerroraswell.*˜(1)inRWCOMMON:**œputbackinthecodethatadded1toLSN'*œandsubtracted1fromCMDSECTSinthe*œcommandpacket.*˜(2)nearthelabelRD_WR::+*œIfanerroroccurshere,branchdirectto,*œSTATERRinsteadofCHECKERR.‚Atthispoint *œwehavethecurrentLSNinthe*œcommandpacket.*˜(3)inCHECKERR:**œIfthedataiscorrectible,andCMDSECTS1*œispositive(whichIdon'tthinkcouldhappen‚-'*œneedsmoreanalysis)thentheLSNand$*œCMDSECTSwillbesetupcorrectly.&*œIfthedataisnotcorrectible,then3*œwhetherweretryorreporttheerror,weneedthe0*œcurrentLSNandCMDSECTSinthecommandpacket.*œsomovethesubtract1fromLSNandadd1to**œCMDSECTScommandsuptothelabelL0555.*** ŠOPTCRE,PCS **‰MISCEQUATES*"DRIVESƒEQU‡4“#ofdrivesperboardEXEC…EQU‡0“RMS68Ktrap# %DTYPE„EQU‡1”Conditionalassemblyflag*¦0=assembleforSASIdriver$*¦1=assembleforWinchesterdriver*K*****************************************************************************ˆBWN‡2/13/84ƒPJD‚9/18/84*1GOODCODEEQU‡0“Opcodeforformatsectoras"good"1BADCODE‚EQU‡$80‘Opcodeforformatsectoras"bad"7ALTCODE‚EQU‡$40‘Opcodeforformatsectoras"alternate"*O*******************************************************************************   **ˆMACROSUSEDBYTHISDRIVER*4LONGWORDMACRO„.–Thismacroskipszeroormorebytes'*¦inmemory(ifnecessary)toalignthe)*¦assembler'slocationcountertoalong-&*¦wordboundary.‚Wedefinealong-word)*¦boundarytobealocationwhoseaddress*¦isevenlydivisibleby4.‰DS.W…00‰IFNE…*/4*4-*Ifthelocationcounterisn'tona-‰DS.W…1”long-wordboundary,advanceitbyone/‰ENDC….”wordtoputitonalong-wordboundary.‰ENDM 3MOVEIAƒMACRO„.–Thismacroisusefulwhenwewantto%*¦putanimmediatevalueintoan *¦register."*¦[