.TITLE BRKPRT .MCALL QIOW$S EXCLAM: .ASCII /!/ HOLD: .BYTE 0 LF: .BYTE 12 CR: .BYTE 15 BUFF: .BLKB 134. OVER: .BYTE 0 .EVEN BRKPRT:: MOV 2(R5),R0 ; GET ADDRESS OF STRING FOR WRITING MOV #BUFF,R4 ; START ADDRESS OF PRINT LINE MOVB LF,(R4)+ ; MOVE LINE FEED INTO BUFFER LOOP: MOVB (R0)+,HOLD ; GET NEXT CHARACTER BEQ ENDLOP ; JUMP IF ZERO CHARACTER CMPB HOLD,EXCLAM ; COMPARE TO SEE IF "!" BEQ ENDLOP ; JUMP IF IS MOVB HOLD,(R4)+ ; STORE INTO BUFFER CMP R4,#OVER ; SEE IF OVERFLOW REACHED BLT LOOP ; JUMP IF NOT REACHED ; ; WRITE OUT WITH BREAKTHROUGH ; ENDLOP: MOVB CR,(R4)+ ; MOVE CARRIAGE RTN TO END SUB #BUFF,R4 ; GET LENGTH OF OUTPUT QIOW$S #500,#5,#1,,,,<#BUFF,R4> RTS PC ;RETURN .END