home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
palsum7
/
prodcder.pds
< prev
next >
Wrap
Text File
|
1988-02-04
|
19KB
|
563 lines
TITLE QIC-02 COMMAND DECODER
PATTERN
REVISION B
AUTHOR KEN WON
COMPANY MMI
DATE JANUARY 19, 1987
CHIP QIC02_CMD_DEC PMS14R21
CLK DCLK /ONLINE /REQUEST /CC0 /CC1 /CC2 /CC3 STATUS EWH SDI GND
PRESET SDO CD3 CD2 CD1 CD0 INITIALIZE ERASE DRSELD READY MODE VCC
STATE
MOORE_MACHINE
MASTER_RESET
DEFAULT_BRANCH HOLD_STATE
POWER_UP :=VCC->INIT
;****** DRIVE SELECTION ******
INIT := REQ -> DRVSELDA ;IF /REQUEST IS TRUE, CHECK FOR DRIVE SELECTION
+-> INIT ;OTHERWISE GOTO INIT
DRVSELDA := COND0 -> DRVSELDB
+-> INIT
DRVSELDB := COND1 -> INIT
+-> DRVSELDC
DRVSELDC := COND2 -> INIT
+-> DRVSELDD
DRVSELDD := COND3 -> INIT
+-> DRVSELDE ;DRIVE IS SELECTED
DRVSELDE := REQ -> DRVSELDE ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> DRVSELDF ;THEN GOTO DRVSELDF
DRVSELDF := VCC -> DRVSELD ;DRIVE SELECTION COMPLETE
INIT.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELDA.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELDB.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELDC.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELDD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELDE.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELDF.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*/DRSELD
DRVSELD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** COMMAND DECODING ******
DRVSELD := REQ -> CMDDECA ;IF /REQUEST IS TRUE, DECODE COMMAND
+-> DRVSELD ;OTHERWISE GOTO DRVSELD
CMDDECA := COND3 -> RDWRCMD ;IF CC3 IS TRUE, GOTO READ/WRITE DECODING
+-> CMDDECB ;OTHERWISE CONTINUE COMMAND DECODING
RDWRCMD := COND2 -> RDWRCMDA ;IF CC2 IS TRUE, GOTO READ/WRITE DECODING
+-> CMDERR ;OTHERWISE GOTO CMDERR
RDWRCMDA := COND1 -> FMCMD ;IF CC1 IS TRUE, COMMAND IS A FILE MARK COMMAND
+-> RDWRCMDB ;OTHERWISE IT IS A READ OR WRITE COMMAND
RDWRCMDB := COND0 -> RDCMD ;IF CC0 IS TRUE, COMMAND IS READ
+-> WRCMD ;OTHERWISE COMMAND IS WRITE
FMCMD := COND0 -> WFMCMD ;IF CC0 IS TRUE, COMMAND IS WRITE FILE MARK
+-> RFMCMD ;OTHERWISE COMMAND IS READ FILE MARK
CMDDECB := COND2 -> CMDDECC ;IF CC2 IS TRUE, CONTINUE COMMAND DECODING
+-> DESELDA ;OTHERWISE CHECK FOR DESELECTING DRIVE
CMDDECC := COND1 -> CMDDECD ;CONTINUE DECODING COMMAND
+-> CMDDECE ;CONTINUE DECODING COMMAND
CMDDECD := COND0 -> INITCMD ;IF CC0 IS TRUE, COMMAND IS INITIALIZE
+-> ERASECMD ;OTHERWISE COMMAND IS ERASE
CMDDECE := COND0 -> BOTCMD ;IF CC0 IS TRUE, COMMAND IS BOT
+-> RDSTSCMD ;OTHERWISE COMMAND IS READ STATUS
CMDDECA.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDDECB.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDDECC.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDDECD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDDECE.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDWRCMD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDWRCMDA.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDWRCMDB.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
FMCMD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** DESELECT DRIVE ******
DESELDA := COND1 -> DESELDB ;CONTINUE CHECKING FOR DESELCT COMMAND
+-> DESELDC ;OTHERWISE GOTO DESELDA
DESELDB := COND0 -> CMDERR ;IF CC0 IS TRUE, COMMAND IS INVALID
+-> DESELDD ;OTHERWISE DESELECT DRIVE
DESELDC := COND0 -> DRVSELDE ;IF CC0 IS TRUE, GOTO DRIVE SELECTION
+-> CMDERR ;OTHERWISE COMMAND IS INVALID
DESELDD := REQ -> DESELDD ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> DESELDE ;THEN GOTO DESELDE
DESELDE := VCC -> INIT ;GOTO DRIVE SELECTION
DESELDA.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
DESELDB.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
DESELDC.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
DESELDD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
DESELDE.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** INVALID COMMAND ******
CMDERR := REQ -> CMDERR ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> CMDERRA ;THEN OUTPUT INVALID COMMAND CODE
CMDERRA := VCC -> CMDERRB ;OUTPUT INVALID COMMAND CODE
CMDERRB := VCC -> CMDERRC ;NEGATE CODE
CMDERRC := VCC -> DRVSELD ;GOTO COMMAND DECODING
CMDERR.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDERRA.OUTF := READY*CD3*CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDERRB.OUTF := READY*CD3*CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
CMDERRC.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** BOT COMMAND ******
BOTCMD := REQ -> BOTCMD ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> BOTCMDA ;THEN OUTPUT REWIND COMMAND CODE
BOTCMDA := STS -> BOTCMP ;WHEN STS IS TRUE, NEGATE OUTPUT CODE
BOTCMP := VCC -> DRVSELD ;GOTO DRVSELD
BOTCMD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
BOTCMDA.OUTF := READY*CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
BOTCMP.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** INITIALIZE COMMAND ******
INITCMD := REQ -> INITCMD ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> INITCMDA ;THEN OUTPUT REWIND COMMAND CODE AND ASSERT INITIALIZE
INITCMDA := STS -> INITCMDB ;WHEN STS IS TRUE, NEGATE COMMAND CODE
INITCMDB := VCC -> INITCMDC ;ASSERT FFWD COMMAND CODE
INITCMDC := STS -> INITCMDD ;WHEN STS IS TRUE, NEGATE COMMAND CODE
INITCMDD := VCC -> INITCMDE ;ASSERT REWIND COMMAND CODE
INITCMDE := STS -> INITCMP ;WHEN STS IS TRUE, NEGATE COMMAND CODE AND NEGATE INITIALIZE
INITCMP := VCC -> DRVSELD
INITCMD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
INITCMDA.OUTF := READY*CD3*CD2*/CD1*CD0*/ERASE*INITIALIZE*DRSELD
INITCMDB.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*INITIALIZE*DRSELD
INITCMDC.OUTF := READY*CD3*CD2*/CD1*/CD0*/ERASE*INITIALIZE*DRSELD
INITCMDD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*INITIALIZE*DRSELD
INITCMDE.OUTF := READY*CD3*CD2*/CD1*CD0*/ERASE*INITIALIZE*DRSELD
INITCMP.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** ERASE COMMAND ******
ERASECMD := REQ -> ERASECMD ;WAIT FOR /REQUEST TO BE DEACTIVATED
+-> ERASECMDA ;THEN OUTPUT REWIND COMMAND CODE
ERASECMDA := STS -> ERASECMDB ;WHEN STS IS TRUE, NEGATE COMMAND CODE
ERASECMDB := VCC -> ERASECMDC ;ASSERT ERASE AND INITIALIZE
ERASECMDC := STS -> ERASECMDD ;WHEN STS IS TRUE, NEGATE ERASE AND INITIALIZE
ERASECMDD := VCC -> ERASECMDE ;OUTPUT REWIND COMMAND CODE
ERASECMDE := STS -> ERASECMDF ;WHEN STS IS TRUE, NEGATE COMMAND CODE
ERASECMDF := VCC -> DRVSELD ;GOTO DRVSELD
ERASECMD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
ERASECMDA.OUTF := READY*CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
ERASECMDB.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
ERASECMDC.OUTF := READY*/CD3*/CD2*/CD1*/CD0*ERASE*INITIALIZE*DRSELD
ERASECMDD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
ERASECMDE.OUTF := READY*CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
ERASECMDF.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** READ STATUS COMMAND ******
RDSTSCMD := REQ -> RDSTSCMD ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> RDSTSAA ;THEN NEGATE READY
RDSTSAA := VCC -> RDSTSA ;ENABLE STATUS BYTE 0
RDSTSA := VCC -> RDSTSB ;ASSERT READY
RDSTSB := REQ -> RDSTSC ;WHEN REQUEST IS ACTIVATED, NEGATE READY
RDSTSC := REQ -> RDSTSC ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> RDSTSD ;THEN ENABLE STATUS BYTE 1
RDSTSD := VCC -> RDSTSE ;ASSERT READY
RDSTSE := REQ -> RDSTSF ;WHEN REQUEST IS ACTIVATED, NEGATE READY
RDSTSF := REQ -> RDSTSF ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> RDSTSG ;THEN ENABLE STATUS BYTE 2
RDSTSG := VCC -> RDSTSH ;ASSERT READY
RDSTSH := REQ -> RDSTSI ;WHEN REQUEST IS ACTIVATED, NEGATE READY
RDSTSI := REQ -> RDSTSI ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> RDSTSJ ;THEN ENABLE STATUS BYTE 3
RDSTSJ := VCC -> RDSTSK ;ASSERT READY
RDSTSK := REQ -> RDSTSL ;WHEN REQUEST IS ACTIVATED, NEGATE READY
RDSTSL := REQ -> RDSTSL ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> RDSTSM ;THEN ENABLE STATUS BYTE 4
RDSTSM := VCC -> RDSTSN ;ASSERT READY
RDSTSN := REQ -> RDSTSO ;WHEN REQUEST IS ACTIVATED, NEGATE READY
RDSTSO := REQ -> RDSTSO ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> RDSTSP ;THEN ENABLE STATUS BYTE 5
RDSTSP := VCC -> RDSTSQ ;ASSERT READY
RDSTSQ := REQ -> RDSTSR ;WHEN REQUEST IS ACTIVATED, NEGATE READY AND COMMAND CODE
RDSTSR := REQ -> RDSTSR ;WAIT FOR REQUEST TO BE DEACTIVATED
+-> DRVSELD ;THEN GOTO DRVSELD
RDSTSCMD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSAA.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSA.OUTF := READY*/CD3*/CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSB.OUTF := /READY*/CD3*/CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSC.OUTF := READY*/CD3*/CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSD.OUTF := READY*/CD3*/CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSE.OUTF := /READY*/CD3*/CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSF.OUTF := READY*/CD3*/CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSG.OUTF := READY*/CD3*/CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSH.OUTF := /READY*/CD3*/CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSI.OUTF := READY*/CD3*/CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSJ.OUTF := READY*/CD3*CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSK.OUTF := /READY*/CD3*CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSL.OUTF := READY*/CD3*CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSM.OUTF := READY*/CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSN.OUTF := /READY*/CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSO.OUTF := READY*/CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSP.OUTF := READY*/CD3*CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSQ.OUTF := /READY*/CD3*CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDSTSR.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** WRITE FILE MARK COMMAND ******
WFMCMD := REQ -> WFMCMD ;WHEN REQUEST IS DEACTIVATED, NEGATE READY AND COMMAND CODE
+-> WFMCMDA ;OTHERWISE GOTO WFMCMDA
WFMCMDA := VCC -> WFMCMDB ;OUTPUT WFM COMMAND CODE
WFMCMDB := STS -> WFMCMDC ;WHEN STS IS ACTIVATED, NEGATE COMMAND CODE
WFMCMDC := VCC -> DRVSELD ;GOTO DRVSELD
WFMCMD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
WFMCMDA.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
WFMCMDB.OUTF := READY*CD3*/CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
WFMCMDC.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** READ FILE MARK COMMAND ******
RFMCMD := REQ -> RFMCMD ;WHEN REQUEST IS DEACTIVATED, NEGATE READY AND COMMAND CODE
+-> RFMCMDA ;OTHERWISE GOTO RFMCMDA
RFMCMDA := VCC -> RFMCMDB ;OUTPUT RFM COMMAND CODE
RFMCMDB := STS -> RFMCMDC ;WHEN STS IS TRUE, NEGATE COMMAND CODE
RFMCMDC := VCC -> DRVSELD ;GOTO DRVSELD
RFMCMD.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RFMCMDA.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RFMCMDB.OUTF := READY*CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RFMCMDC.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;****** READ COMMAND ******
RDCMD := REQ -> RDCMD ;WHEN REQUEST IS DEACTIVATED, NEGATE READY
+-> RDCMDA ;OTHERWISE GOTO RDCMD
RDCMDA := ONLN -> RDCMDB ;IF ONLINEB IS TRUE, OUTPUT READ COMMAND CODE
+-> CMDERRA ;IF ONLINEB IS FALSE, OUTPUT INVALID COMMAND CODE
RDCMDB := STS -> RDCMDC ;IF FILE MARK IS FOUND, NEGATE COMMAND CODE
+-> RDCMDD ;OTHERWISE GOTO RDCMDD
RDCMDD := ONLN -> RDCMDE ;IF ONLINE IS TRUE, GOTO RDCMDE
+-> RDCMDF ;OTHERWISE NEGATE COMMAND CODE
RDCMDF := VCC -> RDCMDG ;OUTPUT REWIND COMMAND CODE
RDCMDG := STS -> RDCMDC ;NEGATE COMMAND CODE
RDCMDE := REQ -> DRVSELD ;IF REQUEST IS TRUE, GOTO DRVSELD
+-> RDCMDB ;OTHERWISE GOTO RDCMDB
RDCMDC := VCC -> DRVSELD ;GOTO DRVSELD
RDCMD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDA.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDB.OUTF := /READY*CD3*/CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDC.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDD.OUTF := /READY*CD3*/CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDE.OUTF := /READY*CD3*/CD2*CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDF.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
RDCMDG.OUTF := /READY*CD3*CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
;****** WRITE COMMAND ******
WRCMD := REQ -> WRCMD ;WHEN REQUEST IS DEACTIVATED, NEGATE READY
+-> WRCMDA ;OTHERWISE GOTO WRCMD
WRCMDA := ONLN -> WRCMDB ;IF ONLINE IS TRUE, OUTPUT WRITE COMMAND CODE
+-> CMDERRA ;IF ONLINE IS FALSE, OUTPUT INVALID COMMAND CODE
WRCMDB := EW -> WRCMDC ;IF EWH IS DETECTED, NEGATE COMMAND CODE
+-> WRCMDE ;OTHERWISE GOTO WRCMDE
WRCMDC := VCC -> WRCMDD ;OUTPUT END OF MEDIA COMMAND CODE
WRCMDD := VCC -> DRVSELD ;GOTO DRVSELD
WRCMDE := REQ -> DRVSELD ;IF REQUEST IS TRUE, GOTO DRVSELD
+-> WRCMDF ;OTHERWISE GOTO WRCMDF
WRCMDF := ONLN -> WRCMDB ;IF ONLINEB IS TRUE, GOTO WRCMDB
+-> WRCMDG ;NEGATE COMMAND CODE
WRCMDG := VCC -> WRCMDH ;OUTPUT WFM COMMAND CODE
WRCMDH := STS -> WRCMDI ;IF FM IS ACTIVATED, GOTO WRCMDI
+-> WRCMDH ;OTHERWISE GOTO WRCMDH
WRCMDI := VCC -> BOTCMDA ;REWIND TAPE
WRCMD.OUTF := READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDA.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDB.OUTF := /READY*CD3*/CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDC.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDD.OUTF := /READY*/CD3*CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDE.OUTF := /READY*CD3*/CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDF.OUTF := /READY*CD3*/CD2*CD1*CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDG.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDH.OUTF := /READY*CD3*/CD2*/CD1*CD0*/ERASE*/INITIALIZE*DRSELD
WRCMDI.OUTF := /READY*/CD3*/CD2*/CD1*/CD0*/ERASE*/INITIALIZE*DRSELD
;@@@@@@ CONDITIONS @@@@@@
CONDITIONS
COND0 = CC0
COND1 = CC1
COND2 = CC2
COND3 = CC3
ONLN = ONLINE
STS = STATUS
EW = EWH
REQ = REQUEST
;@@@@@@ SIMULATION INPUT @@@@@@
SIMULATION
TRACE_ON /CC0 /CC1 /CC2 /CC3 /REQUEST /ONLINE CD3 CD2 CD1 CD0 STATUS ERASE INITIALIZE READY DRSELD
SETF /CC3 /CC2 /CC1 /CC0 /REQUEST /ONLINE /STATUS /EWH /PRESET /CLK
SETF PRESET ;RESET DEVICE
CLOCKF CLK ;SELECT DRIVE
SETF /CC3 /CC2 /CC1 CC0
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /CC3 /CC2 /CC1 /CC0 ;INVALID COMMAND
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /CC3 CC2 /CC1 CC0 ;BOT COMMAND
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, BOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
SETF /CC3 CC2 CC1 /CC0 ;ERASE COMMAND
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
SETF STATUS ; ASSERT STATUS, BOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, EOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, BOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
SETF /CC3 CC2 CC1 CC0 ;INITIALIZE COMMAND
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, BOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, EOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, BOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
SETF /CC3 CC2 /CC1 /CC0 ;READ STATUS
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST ;READ STATUS BYTE 1
CLOCKF CLK
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST ;READ STATUS BYTE 1
CLOCKF CLK
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST ;READ STATUS BYTE 2
CLOCKF CLK
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST ;READ STATUS BYTE 3
CLOCKF CLK
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST ;READ STATUS BYTE 4
CLOCKF CLK
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST ;READ STATUS BYTE 5
CLOCKF CLK
CLOCKF CLK
SETF CC3 CC2 /CC1 CC0 ;READ COMMAND
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /ONLINE ;NEGATE ONLINEB
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
SETF CC3 CC2 /CC1 CC0 ;READ COMMAND
SETF ONLINE
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;FILE MARK FOUND
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF CC3 CC2 /CC1 CC0 ;READ COMMAND
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF CC3 CC2 CC1 /CC0 ;READ FILE MARK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF CC3 CC2 /CC1 CC0 ;READ COMMAND
SETF /ONLINE
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF CC3 CC2 /CC1 /CC0 ;WRITE COMMAND
SETF ONLINE
CLOCKF CLK
SETF REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /REQUEST
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF /ONLINE ;NEGATE ONLINEB
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS
CLOCKF CLK
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
CLOCKF CLK
SETF STATUS ;ASSERT STATUS, BOT
CLOCKF CLK
SETF /STATUS
CLOCKF CLK
CLOCKF CLK
TRACE_OFF