Sunteți pe pagina 1din 9

PAROMA IDNT 1,2

OPT CL,MC,MD,MEX,CEX
INCLUDE MACROS.INC
ENTRY RDHAND INTEGER*2 VARIABLE
* reads the handshake data for SENSOR PP - hibyte = A0B0 / lobyte = A1B1
* FORTRAN CALLING SEQUENCE: CALL RDHAND(integer*2 VAR)
RDHAND EQU *
SAVREG
LEA.L SPPH,A1 A1 loaded with addr SENSOR PP HAND.
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.W (A1),(A0) store the result
RSTREG
FNRET 1 RDHAND return
ENTRY FRDHND INTEGER*2 VARIABLE
FRDHND EQU *
PEA SCRLWRD
JSR RDHAND
MOVE.L (A7)+,D0
FNRET 1 FRDHND return
*
ENTRY RDHND0 INTEGER*1 VARIABLE ports A0&B0
* FORTRAN CALLING SEQUENCE: CALL RDHND0(integer*1 VAR)
RDHND0 EQU *
SAVREG
LEA.L SPPH0,A1 A1 loaded with addr SENSOR PP HAND.
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A1),(A0) store the result
RSTREG
FNRET 1 RDHND0 return
ENTRY FRDHN0 INTEGER*1 VARIABLE
FRDHN0 EQU *
PEA SCRLWRD
JSR RDHND0
MOVE.L (A7)+,D0
FNRET 1 FRDHN0 return
*
ENTRY RDHND1 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDHND1(integer*1 VAR)
RDHND1 EQU *
SAVREG
LEA.L SPPH1,A1 A1 loaded with addr SENSOR PP HAND.
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A1),(A0) store the result
RSTREG
FNRET 1 RDHND1 return
ENTRY FRDHN1 INTEGER*1 VARIABLE
FRDHN1 EQU *
PEA SCRLWRD
JSR RDHND1
MOVE.L (A7)+,D0
FNRET 1 FRDHN1 return
*
ENTRY WTCTRL INTEGER*2 VARIABLE
* hibyte is A0/B0 control, lobyte is A1/B1 control
* FORTRAN CALLING SEQUENCE: CALL WTCTRL(integer*2 VAR)
* Within each control byte: BIT7 MUST BE 1
* BIT6 & BIT5 are A mode select: 00 = Mode 0,
* 01 = Mode 1, 1X = Mode 2
* BIT4 A direction: 0 = Output, 1 = Input
* BIT2 B mode control: 0 = Mode 0, 1 = Mode 1
* BIT1 B direction: 0 = Output, 1 = Input
* BITS 3 & 0 are port C control and thus irrelevant
WTCTRL EQU *
SAVREG
LEA.L SPPC,A1 A1 loaded with addr SENSOR PP CTRL.
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.W (A0),(A1) store the result
RSTREG
FNRET 1 WTCTRL return
ENTRY WTCTL0 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTCTL0(integer*1 VAR)
WTCTL0 EQU *
SAVREG
LEA.L SPPC0,A1 A1 loaded with addr SENSOR PP CTRL.0
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A0),(A1) store the result
RSTREG
FNRET 1 WTCTL0 return
ENTRY WTCTL1 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTCTL1(integer*1 VAR)
WTCTL1 EQU *
SAVREG
LEA.L SPPC1,A1 A1 loaded with addr SENSOR PP CTRL.1
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A0),(A1) store the result
RSTREG
FNRET 1 WTCTL1 return
*
ENTRY RDPPA INTEGER*2 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDPPA(integer*2 VAR)
RDPPA EQU *
SAVREG
LEA.L SPPA,A1 A1 loaded with addr SENSOR PP A PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.W (A1),(A0) store the result
RSTREG
FNRET 1 RDPPA return
ENTRY FRDPPA
FRDPPA EQU *
PEA SCRLWRD
JSR RDPPA
MOVE.L (A7)+,D0
FNRET 1 FRDPPA return
ENTRY RDPPA0 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDPPA0(integer*1 VAR)
RDPPA0 EQU *
SAVREG
LEA.L SPPA0,A1 A1 loaded with addr SENSOR PP A0 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A1),(A0) store the result
RSTREG
FNRET 1 RDPPA0 return
ENTRY FRPPA0
FRPPA0 EQU *
PEA SCRLWRD
JSR RDPPA0
MOVE.L (A7)+,D0
FNRET 1 FRPPA0 return
*
ENTRY RDPPA1 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDPPA1(integer*1 VAR)
RDPPA1 EQU *
SAVREG
LEA.L SPPA1,A1 A1 loaded with addr SENSOR PP A1 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A1),(A0) store the result
RSTREG
FNRET 1 RDPPA1 return
ENTRY FRPPA1
FRPPA1 EQU *
PEA SCRLWRD
JSR RDPPA1
MOVE.L (A7)+,D0
FNRET 1 FRPPA1 return
ENTRY RDPPB INTEGER*2 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDPPB(integer*2 VAR)
RDPPB EQU *
SAVREG
LEA.L SPPB,A1 A1 loaded with addr SENSOR PP B PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.W (A1),(A0) store the result
RSTREG
FNRET 1 RDPPB return
ENTRY FRDPPB
FRDPPB EQU *
PEA SCRLWRD
JSR RDPPB
MOVE.L (A7)+,D0
FNRET 1 FRDPPB return
*
ENTRY RDPPB0 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDPPB0(integer*1 VAR)
RDPPB0 EQU *
SAVREG
LEA.L SPPB0,A1 A1 loaded with addr SENSOR PP B0 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A1),(A0) store the result
RSTREG
FNRET 1 RDPPB0 return
ENTRY FRPPB0
FRPPB0 EQU *
PEA SCRLWRD
JSR RDPPB0
MOVE.L (A7)+,D0
FNRET 1 FRPPB0 return
*
ENTRY RDPPB1 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL RDPPB1(integer*1 VAR)
RDPPB1 EQU *
SAVREG
LEA.L SPPB1,A1 A1 loaded with addr SENSOR PP B1 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A1),(A0) store the result
RSTREG
FNRET 1 RDPPB1 return
ENTRY FRPPB1
FRPPB1 EQU *
PEA SCRLWRD
JSR RDPPB1
MOVE.L (A7)+,D0
FNRET 1 FRPPB1 return
*
ENTRY WTPPA INTEGER*2 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTPPA(integer*2 VAR)
WTPPA EQU *
SAVREG
LEA.L SPPA,A1 A1 loaded with addr SENSOR PP A PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.W (A0),(A1) store the result
RSTREG
FNRET 1 WTPPA return
ENTRY WTPPA0 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTPPA0(integer*1 VAR)
WTPPA0 EQU *
SAVREG
LEA.L SPPA0,A1 A1 loaded with addr SENSOR PP A0 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A0),(A1) store the result
RSTREG
FNRET 1 WTPPA0 return
ENTRY WTPPA1 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTPPA1(integer*1 VAR)
WTPPA1 EQU *
SAVREG
LEA.L SPPA1,A1 A1 loaded with addr SENSOR PP A1 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A0),(A1) store the result
RSTREG
FNRET 1 WTPPA1 return
ENTRY WTPPB INTEGER*2 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTPPB(integer*2 VAR)
WTPPB EQU *
SAVREG
LEA.L SPPB,A1 A1 loaded with addr SENSOR PP B PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.W (A0),(A1) store the result
RSTREG
FNRET 1 WTPPB return
ENTRY WTPPB0 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTPPB0(integer*1 VAR)
WTPPB0 EQU *
SAVREG
LEA.L SPPB0,A1 A1 loaded with addr SENSOR PP B0 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A0),(A1) store the result
RSTREG
FNRET 1 WTPPB0 return
ENTRY WTPPB1 INTEGER*1 VARIABLE
* FORTRAN CALLING SEQUENCE: CALL WTPPB1(integer*1 VAR)
WTPPB1 EQU *
SAVREG
LEA.L SPPB1,A1 A1 loaded with addr SENSOR PP B1 PORT
MOVEA.L 4(A5),A0 A0 loaded with address of first op
MOVEQ #0,D0 zero out D0
MOVE.B (A0),(A1) store the result
RSTREG
FNRET 1 WTPPB1 return
*
*
IGETHS EQU *
MOVEA.L 8(A7),A0
MOVEA.L (A0),A0
BRA.S INGETHS
GETHS EQU *
MOVEA.L 8(A7),A0
XDEF GETHS,IGETHS
INGETHS EQU *
MOVEA.L 4(A7),A1
MOVE.L (A1),D1
SUBQ.L #1,D1
LSL.L #2,D1
PERILOUSGARD
LEA.L SENPPBASE,A1
FOR.L D2 = #0 TO D1 BY #4
DO.S
MOVE.W 4(A1),D0
SWAP D0
MOVE.W 4(A1),D0
MOVE.L D0,0(A0,D2.L)
ENDF
FNRET 2
*
*
IGTRHS EQU *
MOVEA.L 8(A7),A0
MOVEA.L (A0),A0
BRA.S INGETRHS
GETRHS EQU *
MOVEA.L 8(A7),A0
XDEF GETRHS,IGTRHS
INGETRHS EQU *
MOVEA.L 4(A7),A1
MOVE.L (A1),D1
SUBQ.L #1,D1
LSL.L #2,D1
PERILOUSGARD
LEA.L SENPPBASE,A1
FOR.L D2 = #0 TO D1 BY #4
DO.S
MOVE.W 4(A1),D0
SWAP D0
MOVE.W 4(A1),D0
MOVE.L D0,0(A0,D2.L)
MOVE.B D2,D0
ANDI.B #$3F,D0
BNE.S RNOTDO
MOVE.W (A1),D0
RNOTDO EQU *
ENDF
FNRET 2
*
*
IGTWHS EQU *
MOVEA.L 8(A7),A0
MOVEA.L (A0),A0
BRA.S INGETWHS
GETWHS EQU *
MOVEA.L 8(A7),A0
XDEF GETWHS,IGTWHS
INGETWHS EQU *
MOVEA.L 4(A7),A1
MOVE.L (A1),D1
SUBQ.L #1,D1
LSL.L #2,D1
PERILOUSGARD
LEA.L SENPPBASE,A1
FOR.L D2 = #0 TO D1 BY #4
DO.S
MOVE.W 4(A1),D0
SWAP D0
MOVE.W 4(A1),D0
MOVE.L D0,0(A0,D2.L)
MOVE.B D2,D0
ANDI.B #$3F,D0
BNE.S WNOTDO
MOVE.W #0,2(A1)
WNOTDO EQU *
ENDF
FNRET 2
*
*
IGTBHS EQU *
MOVEA.L 8(A7),A0
MOVEA.L (A0),A0
BRA.S INGETBHS
GETBHS EQU *
MOVEA.L 8(A7),A0
XDEF GETBHS,IGTBHS
INGETBHS EQU *
MOVEA.L 4(A7),A1
MOVE.L (A1),D1
SUBQ.L #1,D1
LSL.L #2,D1
PERILOUSGARD
LEA.L SENPPBASE,A1
FOR.L D2 = #0 TO D1 BY #4
DO.S
MOVE.W 4(A1),D0
SWAP D0
MOVE.W 4(A1),D0
MOVE.L D0,0(A0,D2.L)
MOVE.B D2,D0
ANDI.B #$3F,D0
BNE.S BNOTDO
MOVE.W (A1),D0
MOVE.W #0,2(A1)
BNOTDO EQU *
ENDF
FNRET 2
*
STATMSK DC.L $0FFFF
PARMSK EQU *
MOVEA.L 4(A7),A0
MOVE.L (A0),D0
BRA.S MASKPAR
MSKPAR EQU *
XDEF MSKPAR,PARMSK,MSKPON,MSKOFF,MSKPOF,MSKP01,MSKTON,MSKT01,MSKQON
MOVEA.L 4(A7),A0
MOVE.L (A0),D0
ANDI.L #1,D0
BEQ.S MASKPAR
MOVEI.L #$0000FFFF,D0
MASKPAR EQU *
MOVE.L D0,STATMSK
FNRET 1
MSKPON EQU *
MOVE.L #$0FFFF,D0
MOVE.L D0,STATMSK
RTS
MSKPOF EQU *
MSKOFF EQU *
XOR.L D0,D0
MOVE.L D0,STATMSK
RTS
MSKP01 EQU *
MOVEQ.L #$1,D0
MOVE.L D0,STATMSK
RTS
MSKT01 EQU *
MOVEQ.L #$1,D0
AND.L STATMSK(PC),D0
MOVE.L D0,STATMSK
RTS
MSKTON EQU *
MOVE.L #$0FFFF,D0
AND.L STATMSK(PC),D0
MOVE.L D0,STATMSK
RTS
MSKQON EQU *
MOVE.L STATMSK(PC),D0
CMPI.W #0,D0
BEQ.S MSKQON99
MOVE.L #$0FFFF,D0
MOVE.L D0,STATMSK
MSKQON99: RTS
*
*
R2DTST EQU *
MOVEI.L #$7006,D0
BRA.S INTSTEQU
R2LTST EQU *
MOVEI.L #$7106,D0
BRA.S INTSTEQU
TSTSYN EQU *
MOVEI.L #$0100,D0
BRA.S INTSTEQU
TSTEQU EQU *
XDEF TSTEQU,TSTSYN,R2DTST,R2LTST,TSTEXG,ST1TST,ST2TST
XOR.L D0,D0
INTSTEQU OR.W STATREA(PC),D0
OR.W STATRD2(PC),D0
ANDI.W #$71DF,D0
MOVE.W D0,STATREA
ST2TSTQ MOVE.W D0,STATRD2
RTS
TSTEXG EQU *
XOR.L D0,D0
MOVE.W STATREA(PC),D0
MOVE.W STATRD2(PC),STATREA
MOVE.W D0,STATRD2
RTS
ST2TST EQU *
MOVEA.L 4(A7),A0
MOVE.L (A0),D0
MOVEA.L (A7)+,A0
MOVE.L A0,(A7)
ANDI.W #$71DF,D0
BRA.S ST2TSTQ
ST1TST EQU *
MOVEA.L 4(A7),A0
MOVE.L (A0),D0
MOVEA.L (A7)+,A0
MOVE.L A0,(A7)
ANDI.W #$71DF,D0
MOVE.W D0,STATREA
RTS
*
STATRD2 DC.W $07002
STATREA DC.W $07006 ;$7006 = start 2D scan/$7002 = start 1D scan
XDEF STATREA,STATRD2
TSTREA EQU *
MOVEA.L 4(A7),A0
MOVE.L (A0),D0
MOVEA.L (A7)+,A0
MOVE.L A0,(A7)
BRA.S REA0PAR
REATST EQU *
XDEF REATST,TSTREA,TSTR1D,TSTR2D,TSTR1L,TSTR2L,TSTSTP,TSTNUL
MOVEA.L 4(A7),A0
MOVE.L (A0),D0
MOVEA.L (A7)+,A0
MOVE.L A0,(A7)
ANDI.L #1,D0
BEQ.S REA1PAR
TSTR2D EQU *
REA2PAR EQU *
MOVEI.W #$7006,D0
BRA.S REA0PAR
TSTR1D EQU *
REA1PAR EQU *
MOVEI.W #$7002,D0
REA0PAR EQU *
ANDI.W #$71DF,D0
MOVE.W D0,STATREA
ANDI.W #$71DB,D0
MOVE.W D0,STATRD2
RTS
TSTNUL EQU *
XOR.L D0,D0
BRA.S REA0PAR
TSTSTP EQU *
MOVEI.W #$7000,D0
BRA.S REA0PAR
TSTR1L EQU *
MOVEI.W #$7102,D0
BRA.S REA0PAR
TSTR2L EQU *
MOVEI.W #$7106,D0
BRA.S REA0PAR
*
STACOUNT DS.W 1
STAPAR EQU *
XDEF STAPAR
MOVE.W #3,STACOUNT
PUSH.L D3
STAREPEAT EQU *
PERILOUSGARD
LEA.L -2300(A7),A0
MOVE.L #700,D1
CMP.W #3,STACOUNT
BNE.S STARETRY
MOVE.L #164,D1
STARETRY EQU *
LEA.L SENPPBASE,A1
FOR.L D2 = #4 TO D1 BY #4
DO.S
MOVE.W 4(A1),D0
SWAP D0
MOVE.W 4(A1),D0
ANDI.L #STAMSKL,D0
MOVE.L D0,0(A0,D2.L)
MOVE.B D2,D0
ANDI.B #$3F,D0
BNE.S SBNOTDO
MOVE.W (A1),D0
MOVE.W #0,2(A1)
MOVE.B D2,D0
ANDI.B #$7F,D0
BNE.S SBNOTDO
MOVE.W STATRD2(PC),2(A1) ;start 1D (or stop) scanning
MOVE.B D2,D0
ANDI.B #$FF,D0
BNE.S SBNOTDO
MOVE.W STATREA(PC),2(A1) ;start 2D (or 1D or stop) scanning
SBNOTDO EQU *
ENDF
MOVE.L D1,D3
ANDI.L #$0FFFFFC,D3
MOVE.L #1500,D1
LEA.L SENPPBASE,A1
FOR.L D2 = D3 TO D1 BY #2
DO.S
MOVE.W 4(A1),D0
ANDI.W #STBMSK,D0
MOVE.W D0,0(A0,D2.L)
MOVE.B D2,D0
ANDI.B #$3F,D0
BNE.S SBN0TD0
MOVE.W (A1),D0
MOVE.W #0,2(A1)
SBN0TD0 EQU *
ENDF
DOLOROUSGARD
SUBQ.L #6,D1
CMPI.W #3,STACOUNT
BNE.S HAVEPOWER
FOR.L D2 = #6 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
CMPI.W #NOCONN,D0
BNE.S HAVECONN
ENDF
MOVEQ.L #4,D0
AND.L STATMSK(PC),D0
POP.L D3
RTS
HAVECONN EQU *
FOR.L D2 = #6 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
ANDI.W #STBMSK,D0
MOVE.W D0,0(A0,D2.L)
CMPI.W #READY,D0
BNE.S HAVEPOWER
ENDF
MOVEQ.L #2,D0
AND.L STATMSK(PC),D0
POP.L D3
RTS
HAVEPOWER EQU *
FOR.L D2 = #6 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
ANDI.W #STBMSK,D0
MOVE.W D0,0(A0,D2.L)
CMPI.W #BTHPEND,D0
BEQ.S BOTHPEND
CMPI.W #REAPEND,D0
BEQ.S READPEND
ENDF
SUBI.W #1,STACOUNT
BGE.L STAREPEAT
MOVEQ.L #7,D0
AND.L STATMSK(PC),D0
POP.L D3
RTS
READPEND EQU *
BOTHPEND EQU *
ANDI.L #$0FFFFFC,D2
MOVE.L D2,D3
FOR.L D2 = D3 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
CMPI.W #WRIPEND,D0
BEQ.S RUNNING
CMPI.W #READY,D0
BEQ.S RUNNING
ENDF
MOVE D3,D2
ANDI.L #$0FFFFFC,D2
MOVEQ.L #0,D3
FOR.L D2 = D2 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
CMPI.W #REAPEND,D0
BNE.S NOTIDEL
ADDQ.B #1,D3
CMPI.W #73,D3
BEQ.S IDLEING
NOTIDEL EQU *
ENDF
SUBI.W #1,STACOUNT
BGE.L STAREPEAT
IDLEING EQU *
MOVEQ.L #1,D0
AND.L STATMSK(PC),D0
POP.L D3
RTS
RUNNING MOVEQ.L #0,D0
POP.L D3
RTS
*
STQCOUNT DS.W 1
STQPAR EQU *
XDEF STQPAR
MOVE.W #1,STQCOUNT
PUSH.L D3
STQREPEAT EQU *
JSR STAPAR(PC)
PUSH.W D0
OLDTESTS ANDI.B #1,D0
CMPI.B #1,D0
BEQ.S MORETESTS
POP.W D0
POP.L D3
AND.L STATMSK(PC),D0
RTS
MORETESTS EQU *
POP.W D0
LEA.L -1200(A7),A0
MOVE.L #1024,D1
PERILOUSGARD
LEA.L SENPPBASE,A1
MOVE.W STATREA(PC),2(A1)
FOR.L D2 = #0 TO D1 BY #4
DO.S
MOVE.W 4(A1),D0
SWAP D0
MOVE.W 4(A1),D0
ANDI.L #STBMSKL,D0
MOVE.L D0,0(A0,D2.L)
MOVE.B D2,D0
ANDI.B #$7F,D0
BNE.S QBNOTDO
MOVE.W (A1),D0
QBNOTDO EQU *
ENDF
DOLOROUSGARD
FOR.L D2 = #32 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
CMPI.W #REAPEND,D0
BEQ.S NEXTTEST
CMPI.W #BTHPEND,D0
BEQ.S NEXTTEST
ENDF
SUBI.W #1,STQCOUNT
BGE.L STQREPEAT
POP.L D3
MOVEQ.L #2,D0
AND.L STATMSK(PC),D0
RTS
NEXTTEST EQU *
FOR.L D2 = D2 TO D1 BY #2
DO.S
MOVE.W 0(A0,D2.L),D0
CMPI.W #READY,D0
BEQ.L RUNNING
CMPI.W #WRIPEND,D0
BEQ.L RUNNING
ENDF
SUBI.W #1,STQCOUNT
BGE.L STQREPEAT
POP.L D3
MOVEQ.L #3,D0
AND.L STATMSK(PC),D0
RTS
*
*
BASE DS.L 2
SCRLWRD DS.L 1
Q1STORAGE
END

S-ar putea să vă placă și