;QOPWNRONxt̎iCŁj
;Visi҂ɂ\[XR[hC
;ݖ3. Vtg߂gZ
MAIN START
  LAD GR1,STR
  CALL MULT
  ST GR0,ANS
  RET
STR DC ' 332  58  .'
ANS DS 1
  END
;-------------
MULT START
  RPUSH
  LAD GR2,CTBL
  CALL GETWD
  LD GR4,0,GR2 ; GR4 <-- 搔
  LD GR5,1,GR2 ; GR5 <--   搔
  LD GR0,=0    ; GR0 <-- Zʂ
  LD GR5,GR5
LP JZE FIN ; e I@搔[ȂΏI
  LD GR3,GR5
  AND GR3,=#0001 ;@搔̍ŉʃrbg̃`FbN
  JZE NEXT
  ADDL GR0,GR4
NEXT SLL GR4,1 ;@搔Prbg_Vtg
  SRL GR5,1 ; f@I
  JUMP LP
FIN RPOP
  RET
CTBL DS 3 ; GTWDpǗe[u
  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{̒lGR5Z
; GR0͂PO{ƂȂB
  ADDL GR0,GR4
  LAD GR1,1,GR1
  JUMP LP
FIN RPOP
  RET
  END
;----------------------
