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ƒIn�COMCMD:‚Use�no.�of�cylinders�on�media�for�the'*˜configure�command�on�hard�disks�only.9*ˆJAHƒ2/18/85ƒIn�COMCMD:‚Limit�the�pre-compensation�value.*˜to�$FF�-�the�most�that�will�fit�in�one�byte.ééééééé(:0:8D@9H8P=X,`+h:p7x6€:ˆA�:˜6 .¨9°;¸8À8È4Ð8Ø:à6è<ðQø *ˆBWNƒ2/13/84‡PJD�9/18/84 *ˆRV�10/17/84�retry�option�check<*ˆBWN‚10/25/84:‚Fixed�so�that�correct�sector�number�returned*˜when�an�error�is�found.3*˜RWCOMMON:‚Do�not�increment�LSN�unless�all�sectors.*˜have�been�processed�for�the�current�command.+*˜CHECKERR:�Do�not�decrement�LSN�for�retry.4*˜STATERR:‚Do�not�decrement�LSN�for�reporting�error.*;*ˆBWNƒ11/7/84ƒIn�COMCMD:‚Make�a�check�to�see�that�bytes�per-*˜sector,�sectors�per�track,�and�data�density4*˜have�consistent�values�for�a�floppy�disk�of�5�1/4".*˜and�8"�sizes.‚If�not,�return�error�code�$47.*D*ˆBWNƒ12/21/84‚Yet�another�fix�for�the�elusive�correct�sector�number *˜return:0*˜Seems�that�the�last�"fix"�caused�us�to�put�bad3*˜stuff�into�the�user's�buffer�when�reading�sectors-*˜in�track�0�of�a�double�density�floppy�disk.5*˜This�occured�when�there�was�a�CRC�error�in�track�0.&*˜The�setup�for�retry�was�not�correct.4*˜Hopefully�this�will�fix�the�problem�of�the�correct'*˜sector�numbers�getting�returned�for�a.*˜CRC�error�and�track/sector�ID�error�as�well.*˜(1)�in�RWCOMMON:**œput�back�in�the�code�that�added�1�to�LSN'*œand�subtracted�1�from�CMDSECTS�in�the*œcommand�packet.*˜(2)�near�the�label�RD_WR::+*œIf�an�error�occurs�here,�branch�direct�to,*œSTATERR�instead�of�CHECKERR.‚At�this�point *œwe�have�the�current�LSN�in�the*œcommand�packet.*˜(3)�in�CHECKERR:**œIf�the�data�is�correctible,�and�CMDSECTS1*œis�positive�(which�I�don't�think�could�happen‚-'*œneeds�more�analysis)�then�the�LSN�and$*œCMDSECTS�will�be�set�up�correctly.&*œIf�the�data�is�not�correctible,�then3*œwhether�we�retry�or�report�the�error,�we�need�the0*œcurrent�LSN�and�CMDSECTS�in�the�command�packet.*œso�move�the�subtract�1�from�LSN�and�add�1�to**œCMDSECTS�commands�up�to�the�label�L0555.*** ŠOPT�CRE,PCS **‰MISC�EQUATES*"DRIVESƒEQU‡4“#�of�drives�per�boardEXEC…EQU‡0“RMS68K�trap�# %DTYPE„EQU‡1”Conditional�assembly�flag*¦0�=�assemble�for�SASI�driver$*¦1�=�assemble�for�Winchester�driver*K*****************************************************************************ˆBWN‡2/13/84ƒPJD‚9/18/84*1GOODCODE�EQU‡0“Opcode�for�format�sector�as�"good"1BADCODE‚EQU‡$80‘Opcode�for�format�sector�as�"bad"7ALTCODE‚EQU‡$40‘Opcode�for�format�sector�as�"alternate"*O*******************************************************************************   **ˆMACROS�USED�BY�THIS�DRIVER*4LONGWORD�MACRO„.–This�macro�skips�zero�or�more�bytes'*¦in�memory�(if�necessary)�to�align�the)*¦assembler's�location�counter�to�a�long-&*¦word�boundary.‚We�define�a�long-word)*¦boundary�to�be�a�location�whose�address*¦is�evenly�divisible�by�4.‰DS.W…00‰IFNE…*/4*4-*�If�the�location�counter�isn't�on�a-‰DS.W…1”long-word�boundary,�advance�it�by�one/‰ENDC….”word�to�put�it�on�a�long-word�boundary.‰ENDM 3MOVEIAƒMACRO„.–This�macro�is�useful�when�we�want�to%*¦put�an�immediate�value�into�an� *¦register."*¦[