; QRNxt@}`̉]
; A 16 Ɋi[ 16 ~ 16 hbg̔̐}`C
; v 90 x] vO ROTATE łB
; }`̉]̎s}PɎB
; ̂ƂCPhbgPrbg \C
; ͂OC͂Pi[ĂB
;---------------------------
;̕\ɍ킹邽߁u\v-->u\X^C̑Iv
;-->ü̕\X^Cvůە\v
;IAݒύXƂւ悭ł悤ɂȂ܂B
;----------------------
; (1) }`\ 16 ̐擪AhX GR1 ɐݒ肳āC
;     vOnB
;----------
;(2) ]ʂ̐}`i[̈̐擪AhX
;    GR2 ɐݒ肳āC vOnB
;----------
ROTATE  START
    RPUSH
    LAD GR1,ZUKEI
    LAD GR2,KAITENZK
;-----------
    LAD GR4,1
LOOP1 LD GR5,GR2
; GR5  ʂ̗̈̃AhX
    LD GR6,0,GR1
; GR6  ̐}`̐擪̓e
LOOP2 LD  GR7,0,GR5
; GR7  ʂ̗̈̂P̓e
;--------------------------------
  SLL GR6,1 ;ύXO̍s
;   SRL GR6,1 ;ύX̍s
;------------------------------------
    JOV    ON
    JZE NL
    JUMP   CONT
ON   OR GR7,GR4
CONT ST GR7,0,GR5
; Pʂ̗̈Ɋi[
    LAD GR5,1,GR5
  JUMP    LOOP2
NL  LAD GR1,1,GR1
    SLL GR4,1
  JNZ    LOOP1
  RPOP
  RET
ZUKEI DC #FFFC
    DC #FFFC
    DC #FFFC
    DC #0700
    DC #0700
    DC #0700
    DC #FFFC
    DC #FFFC
    DC #FFFC
    DC #071C
    DC #071C
    DC #071C
    DC #FFFF
    DC #FFFF
    DC #FFFF
    DC #0000
KAITENZK DS 16
  END
