You are on page 1of 21

PAROMA IDNT 1,1 OPT CL,MC,MD,MEX,CEX * * MACRO DEFINITIONS * NOLIST NOFORMAT * INCLUDE MACROS2.INC INCLUDE MACROS.

INC LIST BASE DS.L 2 LINESYNCH EQU 4 Q1STORAGE DS.L 1 WHERELEDS DC.L LEDSAT XREF STESTON,PTESTON,ISITOK,READEXIT,TSTR1D,TSTR2D,TSTSTP,TSTNUL NOLIST * * * ENTRY PARI0D READ PAR - UPPER WORD IS HS, LOWER WORD IS DATA * ENTRY PARI1D READ PAR, TIME OUT AFTER 10mS * ENTRY PARIAD,PARI2D TIME OUT AFTER 100mS * * *********************** FRAME ASYNCHRONOUS PAR READING * frame SYNCRONIZATION is IGNORED, PAR is read til array is full ******************************************************** * THESE STUFF INTEGER*4 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY TAREID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY RAREID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit15(frame synch), bit14 (ext. event), bits13-0 data * high word is handshake status - bit 13,5 = running, bit 9,1 = prog. accepted * ENTRY TARNID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY RARNID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF INTEGER*2 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FAREID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IAREID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit15(frame synch), bit14 (ext. event), bits13-0 data * ENTRY FARNID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IARNID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF INTEGER*1 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FAREI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IAREI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bits7-0 data (INT*1 UNSIGNED!!) * ENTRY FARNI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IARNI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF 7 bit DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FAREI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IAREI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit7 = 0, bits6-0 data (INT*1 SIGNED, positive only) * ENTRY FARNI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IARNI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF 6 bit DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FAREI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IAREI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bits7-6 = 0, bits5-0 data (INT*1 SIGNED, positive only)

* ENTRY FARNI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IARNI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * *********************** FRAME SYNCHRONOUS PAR READING * frame SYNCHRONIZATION is MADE, PAR is read til ONE FULL FRAME IS READ ******************************************************** * THESE STUFF INTEGER*4 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY TSREID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY RSREID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit15(frame synch), bit14 (ext. event), bits13-0 data * high word is handshake status - bit 13,5 = running, bit 9,1 = prog. accepted * ENTRY TSRNID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY RSRNID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF INTEGER*2 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FSREID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISREID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit15(frame synch), bit14 (ext. event), bits13-0 data * ENTRY FSRNID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISRNID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF INTEGER*1 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FSREI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISREI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bits7-0 data (INT*1 UNSIGNED!!) * ENTRY FSRNI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISRNI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF 7 bit DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FSREI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISREI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit7 = 0, bits6-0 data (INT*1 SIGNED, positive only) * ENTRY FSRNI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISRNI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF 6 bit DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FSREI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISREI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bits7-6 = 0, bits5-0 data (INT*1 SIGNED, positive only) * ENTRY FSRNI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY ISRNI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * *********************** EXTERNAL EVENT SYNCHRONOUS PAR READING * EXTERNAL event SYNCHRONIZATION is MADE, PAR is read til ONE FULL FRAME IS READ ******************************************************** * THESE STUFF INTEGER*2 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FXREID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXREID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit15(frame synch), bit14 (ext. event), bits13-0 data * ENTRY FXRNID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXRNID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF INTEGER*1 DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FXREI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXREI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bits7-0 data (INT*1 UNSIGNED!!) * ENTRY FXRNI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXRNI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect]

* * THESE STUFF 7 bit DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FXREI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXREI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bit7 = 0, bits6-0 data (INT*1 SIGNED, positive only) * ENTRY FXRNI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXRNI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * * THESE STUFF 6 bit DATA INTO ARRAY, WILL START PAR RUNNING IF NOT ALREADY * ENTRY FXREI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXREI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * NO PAR START, data = bits7-6 = 0, bits5-0 data (INT*1 SIGNED, positive only) * ENTRY FXRNI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH * ENTRY IXRNI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH [indirect] * ***********PAREIDS LIST NOPAGE XDEF PARI0D PARI0D EQU * LEA SENPPBASE,A0 REIDPAR0 RTS * XDEF PARI1D PARI1D EQU * LEA SENPPBASE,A0 REIDPAR1 RTS * XDEF PARIAD,PARI2D PARIAD EQU * PARI2D EQU * LEA SENPPBASE,A0 REIDPAR2 RTS * ********QQQQQQQQQQQQQQQQ XDEF FAREID,GITPAR FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH GITPAR EQU * MOVEA.L 4(A7),A0 MOVE.L (A0),D0 ADD.L D0,(A0) FAREID EQU * MOVE.L 8(A7),D0 BRA.S INTOFAREID ENTRY IAREID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IAREID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFAREID XDEF FARNID FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FARNID EQU * MOVE.L 8(A7),D0 BRA.S INTOFARNID XDEF IARNID FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IARNID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFARNID

XDEF FARZID FIRST FARZID EQU * MOVE.L 8(A7),D0 BRA.S INTOFARZID XDEF IARZID FIRST IARZID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFARZID INTOFAREID EQU * JSR STISTON BRA.S INT0FARNID INTOFARNID EQU * JSR ISITIK INT0FARNID EQU * INTOFARZID EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #2,D6 LEA.L SENPPBASE,A0 FREADFRAME EQU * FOR.L D5 = #0 TO D6 BY #2 DO.S REIDPAR0 0 MOVE.W D0,0(A3,D5.L) ENDF JMP.L REIDEXIT * ENTRY FSRNID FIRST FSRNID EQU * MOVE.L 8(A7),D0 BRA.S INTOFSRNID ENTRY ISRNID FIRST ISRNID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFSRNID XDEF FSRZID FIRST FSRZID EQU * MOVE.L 8(A7),D0 BRA.S INTOFSRZID XDEF ISRZID FIRST ISRZID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFSRZID ENTRY FSREID FIRST FSREID EQU * MOVE.L 8(A7),D0 BRA.S INTOFSREID ENTRY ISREID FIRST ISREID EQU * MOVEA.L 8(A7),A0

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

MOVE.L (A0),D0 INTOFSREID EQU * JSR STISTON BRA.S INT0FSRNID INTOFSRNID EQU * JSR ISITIK INT0FSRNID EQU * INTOFSRZID EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #2,D6 LEA.L SENPPBASE,A0 FSLOOPQQQQ EQU * WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOPQQQQ MOVE.B #CLED2ON,(A6) FSLOOPXQXQ EQU * FOR.L D5 = #0 TO D6 BY #2 DO.S REIDPAR0 0 MOVE.W D0,0(A3,D5.L) BTST #15,D0 BNE.S FSOUTQQQQ ENDF FSOUTQQQQ EQU * TST.L D5 BEQ.S FSLOOPXQXQ MOVE.L D5,(A4) JMP.L REIDEXIT * * ENTRY TARNID FIRST TARNID EQU * MOVE.L 8(A7),D0 BRA.S INTOTARNID ENTRY RARNID FIRST RARNID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOTARNID XDEF TARZID FIRST TARZID EQU * MOVE.L 8(A7),D0 BRA.S INTOTARZID XDEF RARZID FIRST RARZID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOTARZID ENTRY TAREID FIRST TAREID EQU * MOVE.L 8(A7),D0

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

BRA.S INTOTAREID ENTRY RAREID FIRST RAREID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INTOTAREID EQU * JSR STISTON BRA.S INT0TARNID INTOTARNID EQU * JSR ISITIK INT0TARNID EQU * INTOTARZID EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #4,D6 LEA.L SENPPBASE,A0 TREADFRAME EQU * FOR.L D5 = #0 TO D6 BY #4 DO.S REIDPAR0 0,32 MOVE.L D0,0(A3,D5.L) ENDF JMP.L REIDEXIT * ENTRY TSRNID FIRST TSRNID EQU * MOVE.L 8(A7),D0 BRA.S INTOTSRNID ENTRY RSRNID FIRST RSRNID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOTSRNID XDEF TSRZID FIRST TSRZID EQU * MOVE.L 8(A7),D0 BRA.S INTOTSRZID XDEF RSRZID FIRST RSRZID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOTSRZID ENTRY TSREID FIRST TSREID EQU * MOVE.L 8(A7),D0 BRA.S INTOTSREID ENTRY RSREID FIRST RSREID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INTOTSREID EQU * JSR STISTON BRA.S INT0TSRNID

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

INTOTSRNID EQU * JSR ISITIK INT0TSRNID EQU * INTOTSRZID EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #4,D6 LEA.L SENPPBASE,A0 TSLOOPQQQQ EQU * WAITPAR3 0 BTST #7,(A0) BNE.S TSLOOPQQQQ MOVE.B #CLED2ON,(A6) TSLOOPXQXQ EQU * FOR.L D5 = #0 TO D6 BY #4 DO.S REIDPAR0 0,32 MOVE.L D0,0(A3,D5.L) BTST #15,D0 BNE.S TSOUTQQQQ ENDF TSOUTQQQQ EQU * TST.L D5 BEQ.S TSLOOPXQXQ MOVE.L D5,(A4) JMP.L REIDEXIT * * ENTRY FXRNID FIRST FXRNID EQU * MOVE.L 8(A7),D0 BRA.S INTOFXRNID ENTRY IXRNID FIRST IXRNID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFXRNID XDEF FXRZID FIRST FXRZID EQU * MOVE.L 8(A7),D0 BRA.S INTOFXRZID XDEF IXRZID FIRST IXRZID EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INTOFXRZID ENTRY FXREID FIRST FXREID EQU * MOVE.L 8(A7),D0 BRA.S INTOFXREID ENTRY IXREID FIRST IXREID EQU * MOVEA.L 8(A7),A0

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

MOVE.L (A0),D0 INTOFXREID EQU * JSR STISTON BRA.S INT0FXRNID INTOFXRNID EQU * JSR ISITIK INT0FXRNID EQU * INTOFXRZID EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #2,D6 LEA.L SENPPBASE,A0 MOVE.L D6,D5 SYNCHRONIZE TO PAR CONTROLLER FRAMING FSLOOPXXXX EQU * PAR FRAME SYNCHRONIZATION LOOP WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOPXXXX FSL00PXXXX EQU * WAITPAR3 0 BTST #7,(A0) BEQ.S FSL00PXXXX MOVE.B #CLED2ON,(A6) * FIND FRAME LENGTH (IF LESS THAN BUFFER LENGTH) FOR.L D6 = #2 TO D5 BY #2 DO.S REIDPAR0 0 BTST #15,D0 BNE.S ESLOOPWW ENDF SUBQ.L #2,D6 ESLOOPWW ADDQ.L #2,D6 MOVE.L D6,(A4) MOVE.B #CLEDSON,(A6) MOVE.B #CLBDSON,(A6) ESLOOPXXXX EQU * EXTERNAL EVENT SYNCHRONIZATION LOOP REIDPAR0 0 BTST #15,D0 BNE.S ESLOOPXXXX MOVE.W D0,(A3) FOR.L D5 = #2 TO D6 BY #2 DO.S REIDPAR0 0 MOVE.W D0,0(A3,D5.L) BTST #14,D0 BNE.S ESOVERQQQQ ENDF JMP.S ESLOOPXXXX ESOVERQQQQ EQU * ADDQ.L #2,D5 MOVE.B #$0EC,(A6) * HAVE FOUND EXTERNAL EVENT -- READ BALANCE ON CURRENT FRAME FOR.L D4 = D5 TO D6 BY #2 DO.S

REIDPAR0 0 MOVE.W D0,0(A3,D4.L) ENDF * READ NEXT FRAME UP TO POINT WHERE EXTERNAL EVENT HAD BEEN FOUND ESOUTQQQQ EQU * REIDPAR0 0 BTST #15,D0 BNE.S ESOUTQQQQ MOVE.W D0,(A3) SUBQ.L #4,D5 FOR.L D4 = #2 TO D5 BY #2 DO.S REIDPAR0 0 MOVE.W D0,0(A3,D4.L) ENDF JMP.L REIDEXIT * * ENTRY FARNI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FARNI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FARNI8 ENTRY IARNI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IARNI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT8FARNI8 XDEF FARZI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FARZI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FARZI8 XDEF IARZI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IARZI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT8FARZI8 ENTRY FAREI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FAREI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FAREI8 ENTRY IAREI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IAREI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT8FAREI8 EQU * JSR STISTON BRA.S INT8FARZI8 INT8FARNI8 EQU * JSR ISITIK INT8FARZI8 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 SUBQ.L #1,D6 LEA.L SENPPBASE,A0

FOR.L D5 = #0 TO D6 BY #1 DO.S REI8PAR0 0 MOVE.B D0,0(A3,D5.L) ENDF JMP.L REIDEXIT * ENTRY FSRNI8 FIRST FSRNI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FSRNI8 ENTRY ISRNI8 FIRST ISRNI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT8FSRNI8 XDEF FSRZI8 FIRST FSRZI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FSRZI8 XDEF ISRZI8 FIRST ISRZI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT8FSRZI8 ENTRY FSREI8 FIRST FSREI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FSREI8 ENTRY ISREI8 FIRST ISREI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT8FSREI8 EQU * JSR STISTON BRA.S INT8FSRZI8 INT8FSRNI8 EQU * JSR ISITIK INT8FSRZI8 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 FSLOOP8QQQ EQU * REIDPAR0 0 BTST #15,D0 BEQ.S FSLOOP8QQQ MOVE.B #CLED2ON,(A6) FREA8FRAME EQU * FOR.L D5 = #0 TO D6 BY #1 DO.S REI8PAR0 0 MOVE.B D0,0(A3,D5.L) ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

BTST #15,D0 BNE.S FSOUT8QQQ ENDF FSOUT8QQQ EQU * TST.L D5 BEQ.S FREA8FRAME MOVE.L D5,(A4) JMP.L REIDEXIT * * ENTRY FXRNI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FXRNI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FXRNI8 ENTRY IXRNI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IXRNI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT8FXRNI8 XDEF FXRZI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FXRZI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FXRZI8 XDEF IXRZI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IXRZI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT8FXRZI8 ENTRY FXREI8 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FXREI8 EQU * MOVE.L 8(A7),D0 BRA.S INT8FXREI8 ENTRY IXREI8 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IXREI8 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT8FXREI8 EQU * JSR STISTON BRA.S INT8FXRZI8 INT8FXRNI8 EQU * JSR ISITIK INT8FXRZI8 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 MOVE.L D6,D5 SYNCHRONIZE TO PAR CONTROLLER FRAMING FSLOOP8XXX EQU * PAR FRAME SYNCHRONIZATION LOOP WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOP8XXX FSL00P8XXX EQU * WAITPAR3 0

BTST #7,(A0) BEQ.S FSL00P8XXX MOVE.B #CLED2ON,(A6) * FIND FRAME LENGTH (IF LESS THAN BUFFER LENGTH) FOR.L D6 = #0 TO D5 BY #1 DO.S WAITPAR3 0 BTST #7,(A0) BEQ.S ESLOOP8W ENDF SUBQ.L #1,D6 ESLOOP8W ADDQ.L #1,D6 MOVE.L D6,(A4) MOVE.B #CLEDSON,(A6) MOVE.B #CLBDSON,(A6) ESLOOP8XXX EQU * EXTERNAL EVENT SYNCHRONIZATION LOOP REI8PAR0 0 BTST #7,(A0) BNE.S ESLOOP8XXX MOVE.B D0,(A3) FOR.L D5 = #1 TO D6 BY #1 DO.S REI8PAR0 0 MOVE.B D0,0(A3,D5.L) BTST #6,(A0) BEQ.S ESOVER8QQQQ ENDF JMP.S ESLOOP8XXXX ESOVER8QQQ EQU * ADDQ.L #1,D5 MOVE.B #$0EC,(A6) * HAVE FOUND EXTERNAL EVENT -- REA8 BALANCE ON CURRENT FRAME FOR.L D4 = D5 TO D6 BY #1 DO.S REI8PAR0 0 MOVE.B D0,0(A3,D4.L) ENDF * REA8 NEXT FRAME UP TO POINT WHERE EXTERNAL EVENT HAD BEEN FOUND ESOUT8XXX EQU * REI8PAR0 0 BTST #7,(A0) BEQ.S ESOUT8XXX MOVE.B D0,(A3) SUBQ.L #2,D5 FOR.L D4 = #1 TO D5 BY #1 DO.S REI8PAR0 0 MOVE.B D0,0(A3,D4.L) ENDF JMP.L REIDEXIT * * ENTRY FARNI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FARNI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FARNI7 ENTRY IARNI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IARNI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0

BRA.S INT7FARNI7 XDEF FARZI7 FIRST FARZI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FARZI7 XDEF IARZI7 FIRST IARZI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT7FARZI7 ENTRY FAREI7 FIRST FAREI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FAREI7 ENTRY IAREI7 FIRST IAREI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT7FAREI7 EQU * JSR STISTON BRA.S INT7FARZI7 INT7FARNI7 EQU * JSR ISITIK INT7FARZI7 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 FREA7FRAME EQU * FOR.L D5 = #0 TO D6 BY #1 DO.S REI7PAR0 0 MOVE.B D0,0(A3,D5.L) ENDF JMP.L REIDEXIT * ENTRY FSRNI7 FIRST FSRNI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FSRNI7 ENTRY ISRNI7 FIRST ISRNI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT7FSRNI7 XDEF FSRZI7 FIRST FSRZI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FSRZI7 XDEF ISRZI7 FIRST ISRZI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

SRG HAS BUFFER ADDR, SECOND HAS LENGTH

BRA.S INT7FSRZI7 ENTRY FSREI7 FIRST FSREI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FSREI7 ENTRY ISREI7 FIRST ISREI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT7FSREI7 EQU * JSR STISTON BRA.S INT7FSRZI7 INT7FSRNI7 EQU * JSR ISITIK INT7FSRZI7 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 FSLOOP7QQQ EQU * WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOP7QQQ MOVE.B #CLED2ON,(A6) FSL7XQXQ EQU * FOR.L D5 = #0 TO D6 BY #1 DO.S REI7PAR0 0 MOVE.B D0,0(A3,D5.L) BTST #15,D0 BNE.S FSOUT7QQQ ENDF FSOUT7QQQ EQU * TST.L D5 BEQ.S FSL7XQXQ MOVE.L D5,(A4) JMP.L REIDEXIT * * ENTRY FXRNI7 FIRST FXRNI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FXRNI7 ENTRY IXRNI7 FIRST IXRNI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT7FXRNI7 XDEF FXRZI7 FIRST FXRZI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FXRZI7 XDEF IXRZI7 FIRST

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

SRG HAS BUFFER ADDR, SECOND HAS LENGTH

IXRZI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT7FXRZI7 ENTRY FXREI7 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FXREI7 EQU * MOVE.L 8(A7),D0 BRA.S INT7FXREI7 ENTRY IXREI7 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IXREI7 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT7FXREI7 EQU * JSR STISTON BRA.S INT7FXRZI7 INT7FXRNI7 EQU * JSR ISITIK INT7FXRZI7 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 MOVE.L D6,D5 SYNCHRONIZE TO PAR CONTROLLER FRAMING FSLOOP7XXX EQU * PAR FRAME SYNCHRONIZATION LOOP WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOP7XXX FSL00P7XXX EQU * WAITPAR3 0 BTST #7,(A0) BEQ.S FSL00P7XXX MOVE.B #CLED2ON,(A6) * FIND FRAME LENGTH (IF LESS THAN BUFFER LENGTH) FOR.L D6 = #0 TO D5 BY #1 DO.S WAITPAR3 0 BTST #7,(A0) BEQ.S ESLOOP7W ENDF SUBQ.L #1,D6 ESLOOP7W ADDQ.L #1,D6 MOVE.L D6,(A4) MOVE.B #CLEDSON,(A6) MOVE.B #CLBDSON,(A6) ESLOOP7XXX EQU * EXTERNAL EVENT SYNCHRONIZATION LOOP REI7PAR0 0 BTST #7,(A0) BEQ.S ESLOOP7XXX MOVE.B D0,(A3) FOR.L D5 = #1 TO D6 BY #1 DO.S REI7PAR0 0 MOVE.B D0,0(A3,D5.L)

BTST #6,(A0) BEQ.S ESOVER7QQQQ ENDF JMP.S ESLOOP7XXXX ESOVER7QQQ EQU * ADDQ.L #1,D5 MOVE.B #$0EC,(A6) * HAVE FOUND EXTERNAL EVENT -- REA7 BALANCE ON CURRENT FRAME FOR.L D4 = D5 TO D6 BY #1 DO.S REI7PAR0 0 MOVE.B D0,0(A3,D4.L) ENDF * REA7 NEXT FRAME UP TO POINT WHERE EXTERNAL EVENT HAD BEEN FOUND ESOUT7XXX EQU * REI7PAR0 0 BTST #7,(A0) BEQ.S ESOUT7XXXX MOVE.B D0,(A3) SUBQ.L #2,D5 FOR.L D4 = #1 TO D5 BY #1 DO.S REI7PAR0 0 MOVE.B D0,0(A3,D4.L) ENDF JMP.L REIDEXIT * * ENTRY FARNI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FARNI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FARNI6 ENTRY IARNI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IARNI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT6FARNI6 XDEF FARZI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FARZI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FARZI6 XDEF IARZI6 FIRST SRG HAS BUFFER ADDR, SECOND HAS LENGTH IARZI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT6FARZI6 ENTRY FAREI6 FIRST ARG IS BUFFER ADDR, SECOND HAS LENGTH FAREI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FAREI6 ENTRY IAREI6 FIRST ARG HAS BUFFER ADDR, SECOND HAS LENGTH IAREI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT6FAREI6 EQU * JSR STISTON BRA.S INT6FARZI6 INT6FARNI6 EQU * JSR ISITIK INT6FARZI6 EQU *

MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 FREA6FRAME EQU * FOR.L D5 = #0 TO D6 BY #1 DO.S REI6PAR0 0 MOVE.B D0,0(A3,D5.L) ENDF JMP.L REIDEXIT * ENTRY FSRNI6 FIRST FSRNI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FSRNI6 ENTRY ISRNI6 FIRST ISRNI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT6FSRNI6 XDEF FSRZI6 FIRST FSRZI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FSRZI6 XDEF ISRZI6 FIRST ISRZI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT6FSRZI6 ENTRY FSREI6 FIRST FSREI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FSREI6 ENTRY ISREI6 FIRST ISREI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT6FSREI6 EQU * JSR STISTON BRA.S INT6FSRZI6 INT6FSRNI6 EQU * JSR ISITIK INT6FSRZI6 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6) MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

SRG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

SUBQ.L #1,D6 LEA.L SENPPBASE,A0 FSLOOP6QQQ EQU * WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOP6QQQ MOVE.B #CLED2ON,(A6) FSL6XQXQ EQU * FOR.L D5 = #0 TO D6 BY #1 DO.S REI6PAR0 0 MOVE.B D0,0(A3,D5.L) BTST #15,D0 BNE.S FSOUT6QQQ ENDF FSOUT6QQQ EQU * TST.L D5 BEQ.S FSL6XQXQ MOVE.L D5,(A4) JMP.L REIDEXIT * * ENTRY FXRNI6 FIRST FXRNI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FXRNI6 ENTRY IXRNI6 FIRST IXRNI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT6FXRNI6 XDEF FXRZI6 FIRST FXRZI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FXRZI6 XDEF IXRZI6 FIRST IXRZI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 BRA.S INT6FXRZI6 ENTRY FXREI6 FIRST FXREI6 EQU * MOVE.L 8(A7),D0 BRA.S INT6FXREI6 ENTRY IXREI6 FIRST IXREI6 EQU * MOVEA.L 8(A7),A0 MOVE.L (A0),D0 INT6FXREI6 EQU * JSR STISTON BRA.S INT6FXRZI6 INT6FXRNI6 EQU * JSR ISITIK INT6FXRZI6 EQU * MOVEA.L 4(A7),A0 SAVREG PERILOUSGARD INTROFF MOVEA.L WHERELEDS(PC),A6 MOVE.B #CLED1ON,(A6)

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

SRG HAS BUFFER ADDR, SECOND HAS LENGTH

ARG IS BUFFER ADDR, SECOND HAS LENGTH

ARG HAS BUFFER ADDR, SECOND HAS LENGTH

MOVEA.L D0,A3 MOVE.L (A0),D6 MOVEA.L A0,A4 SUBQ.L #1,D6 LEA.L SENPPBASE,A0 MOVE.L D6,D5 SYNCHRONIZE TO PAR CONTROLLER FRAMING FSLOOP6XXX EQU * PAR FRAME SYNCHRONIZATION LOOP WAITPAR3 0 BTST #7,(A0) BNE.S FSLOOP6XXX FSL00P6XXX EQU * WAITPAR3 0 BTST #7,(A0) BEQ.S FSL00P6XXX MOVE.B #CLED2ON,(A6) * FIND FRAME LENGTH (IF LESS THAN BUFFER LENGTH) FOR.L D6 = #1 TO D5 BY #1 DO.S WAITPAR3 0 BTST #7,(A0) BEQ.S ESLOOP6W ENDF SUBQ.L #1,D6 ESLOOP6W ADDQ.L #1,D6 MOVE.L D6,(A4) MOVE.B #CLEDSON,(A6) MOVE.B #CLBDSON,(A6) ESLOOP6XXX EQU * EXTERNAL EVENT SYNCHRONIZATION LOOP REI6PAR0 0 BTST #7,(A0) BEQ.S ESLOOP6XXX MOVE.B D0,(A3) FOR.L D5 = #1 TO D6 BY #1 DO.S REI6PAR0 0 MOVE.B D0,0(A3,D5.L) BTST #6,(A0) BEQ.S ESOVER6QQQQ ENDF JMP.S ESLOOP6XXXX ESOVER6QQQ EQU * ADDQ.L #1,D5 MOVE.B #$0EC,(A6) * HAVE FOUND EXTERNAL EVENT -- REA6 BALANCE ON CURRENT FRAME FOR.L D4 = D5 TO D6 BY #1 DO.S REI6PAR0 0 MOVE.B D0,0(A3,D4.L) ENDF * REA6 NEXT FRAME UP TO POINT WHERE EXTERNAL EVENT HAD BEEN FOUND ESOUT6XXX EQU * REI6PAR0 0 BTST #7,(A0) BEQ.S ESOUT6XXX MOVE.B D0,(A3) SUBQ.L #2,D5 FOR.L D4 = #1 TO D5 BY #1 DO.S REI6PAR0 0 MOVE.B D0,0(A3,D4.L)

ENDF REIDEXIT EQU * JMP.L READEXIT * INTRON * MOVE.B CABEEP,(A6) * TRAP #$B * RSTREG * FNRET 2 * * STAPARO EQU * XDEF STAPARO PERILOUSGARD LEA.L -800(A7),A0 MOVE.L #152,D1 LEA.L SENPPBASE,A1 FOR.L D2 = #0 TO D1 BY 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 BNOTDO MOVE.W (A1),D0 MOVE.W #0,2(A1) BNOTDO EQU * ENDF FOR.L D2 = #4 TO D1 BY DO.S MOVE.W 0(A0,D2.L),D0 CMPI.W #NOCONN,D0 BNE.S HAVECONN ENDF MOVEQ.L #4,D0 RTS HAVECONN EQU * FOR.L D2 = #4 TO D1 BY DO.S MOVE.W 0(A0,D2.L),D0 CMPI.W #READY,D0 BNE.S HAVEPOWER ENDF MOVEQ.L #2,D0 RTS HAVEPOWER EQU * FOR.L D2 = #4 TO D1 BY DO.S MOVE.W 0(A0,D2.L),D0 CMPI.W #BTHPEND,D0 BEQ.S BOTHPEND CMPI.W #REAPEND,D0 BEQ.S READPEND ENDF MOVEQ.L #7,D0 RTS BOTHPEND EQU * READPEND EQU *

#4

#2

#2

#2

FOR.L D2 = D2 TO D1 BY #2 DO.S MOVE.W 0(A0,D2.L),D0 CMPI.W #READY,D0 BEQ.S RUNNING CMPI.W #WRIPEND,D0 BEQ.S RUNNING ENDF MOVEQ.L #1,D0 RTS RUNNING MOVEQ.L #0,D0 RTS * * STISTON EQU * XDEF STISTON * XREF STESTON JMP STESTON * PTISTON EQU * XDEF PTISTON * XREF PTESTON JMP PTESTON * ISITIK EQU * XDEF ISITIK * XREF ISITOK JMP ISITOK END

You might also like