100 CALL CLEAR
$MLC F 110 10 3000
300 INPUT "NUMBER OF ROLLS : ":N
310 CALL LINK("ROLL",N)
320 GOTO 300
$ROLL
    DIMTABLE E 208          ; definitions for 26 letters (26*8)
    BMOVEVTOC 1288 208 E    ; copy defs from VDP ram (1288 is address for A)
    GETPARAM 1 N            ; number of rolls
    NDO N N
        NDO I 8             ; eight bits roll
            $[
            MOV @E,R0       ; R0 = base address E
            LI R1,104       ; R1 = count in words (208 bytes)
            ;
            ; ..."here"...
            ;
            MOV *R0,R2      ; take two bytes ABCDEFGH abcdefgh
            MOV R2,R3       ; a copy of two bytes
            SLA R2,1        ; R2 = BCDEFGHa bcdefgh0 shift left
            ANDI R2,>FEFE   ; R2 = BCDEFGH0 bcdefgh0
            ANDI R3,>8080   ; R3 = A0000000 a0000000
            SRL R3,7        ; R3 = 0000000A 0000000a
            SOC R2,R3       ; R3 = BCDEFGHA bcdefgha
            MOV R3,*R0+     ; store circular result
            DEC R1          ; decrement count
            JNE -12         ; not zero, so jump "here"
            $]
            BMOVECTOV E 208 1288    ; new rolled defs in vdp
        NLOOP
    NLOOP
$$
$END