;QOPWNRONxt̎
; C
;ݖQD̒TƐlǗe[u쐬
MAIN START
  LAD GR1,STR
  LAD GR2,TABLE
  CALL GETWD
  RET
STR DC '  1234 5678   90 1  23 45678  9876 .'
TABLE DS 10
  END
;-------------
GETWD START
  RPUSH
  LD GR6,GR1 ; ̐擪AhX
  LD GR7,GR2 ; Ǘe[u̐擪AhX
  LD GR3,=-1 ; ̏ԃtȌ
  LAD GR6,-1,GR6
LP LAD GR6,1,GR6 ;
  LD GR4,0,GR6 ; P̎o
  CPL GR4,='.'
  JZE FIN
  CPL GR4,=' '
  JNZ NUM
  CALL SETWD
  JUMP LP
NUM LD GR3,GR3 ; ̏H
  JZE LP
  LD GR3,=0    ; ̐̏Jn
  LD GR1,GR6   ; ̐擪AhXޔ
  JUMP LP
FIN CALL SETWD
  LD GR2,=-1
  ST GR2,0,GR7 ;l̏Ii[
  RPOP
  RET
  END
;------
SETWD START
  LD GR3,GR3
  JNZ FIN2 ; c@C
  LD GR2,GR6
  SUBL GR2,GR1
  CALL DTOB   ; 𐔒lɕϊ
  ST GR0,0,GR7
  LD GR3,=-1  ; ̏Ԃ
  LAD GR7,1,GR7 ; d   G
FIN2 RET
  END
;-----------------------------
DTOB START
  RPUSH
  ADDL GR2,GR1
  LAD GR0,0     ; ߂l̏
LP CPL GR1,GR2  ; ϊIH
  JZE FIN
  LD GR4,0,GR1  ; ꕶ̎o
  SUBL GR4,='0' ; ꌅ𐔒lɕϊ
  SLL GR0,1     ; GR0 PO{GR4Z
; PVtgĂQ{ƂȂB
  LD GR5,GR0    :ꎞIGR5Ɋi[
  SLL GR5,2     ;  a  I
;Q{AS{̂łW{ƂȂB
  ADDL GR0,GR5
;Q{̒lGR0ƂW{̒lGR5ZGR0͂PO{ƂȂB
  ADDL GR0,GR4
  LAD GR1,1,GR1
  JUMP LP
FIN RPOP
  RET
  END
