home *** CD-ROM | disk | FTP | other *** search
- 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