10   *=$600›20 ;›30 ; -------------------------------›40 ; A=USR(ML,ADR,# BYTES,DIRECTION)›50 ;›60 ; ROTATES DATA LEFT OR RIGHT›70 ;›80 ; -------------------------------›90 ;›0100 ADR   = $CB›0110 BYTES = $CD›0120 DIR   = $CE›0130  PLA             ; IGNORE›0140  PLA             ; GET HI BYTE OF ADDRESS›0150  STA ADR+1›0160  PLA            ; GET LO BYTE OF ADDRESS›0170  STA ADR›0180  PLA            ; IGNORE›0190  PLA            ; GET NUMBER OF BYTES›0200  STA BYTES›0210  PLA            ; IGNORE›0220  PLA            ; GET DIRECTION›0230  STA DIR›0240 ;›0250  LDY #0›0260 LOOP CLC›0270  LDA DIR›0280  BNE RIGHT      ; RIGHT IF A 1›0290 ;›0300 LEFT LDA (ADR),Y›0310  ASL A          ; SHIFT LEFT›0320  BCC STORE      ; NO CARRY BIT›0330  CLC›0340  ADC #1         ; SET BIT 0›0350  CLC›0360  BCC STORE›0370 RIGHT LDA (ADR),Y›0380  LSR A          ; SHIFT RIGHT›0390  BCC STORE      ; NO CARRY BIT›0400  CLC›0410  ADC #128       ; SET BIT 7›0420 STORE STA (ADR),Y›0430  INY›0440  CPY BYTES      ; DONE?›0450  BNE LOOP       ; NO›0460  RTS            ; YES- RETURN TO BASIC›