.TITLE UNPACK .ENABL LC ; ; CALL UNPACK( IVEC, IXP, IYP, IPEN ) -- This subroutine ; unpacks an integer into a pen move. ; ; IVEC Packed pen move. ; IXP, X and Y integer coordinates ; IYP ; IPEN Pen status. ; ; Word: 0PXXXXXXXYYYYYYY (0+1+7+7) ; .PSECT UNPACK ; UNPACK::MOV @2(R5),R0 ;GET IVEC MOV #2,@10(R5) ;SET PEN UP ASL R0 ;PEN UP? TST R0 ;TEST PEN BGE 1$ ;BRANCH IF TRUE INC @10(R5) ;SET PEN DOWN ; 1$: MOVB R0,R1 ;GET IYP ASR R1 ;SHIFT BACK INTO PLACE MOV R1,@6(R5) ;STORE AS IYP ; ASL R0 ;SHIFT OFF HIGH BIT ASH #-9.,R0 ;SHIFT BACK INTO PLACE MOV R0,@4(R5) ;STORE AS IXP RTS PC ;RETURN .END