Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,52 @@
|
|||
* Roman numerals Encode - 11/05/2020
|
||||
ROMAENC CSECT
|
||||
USING ROMAENC,R13 base register
|
||||
B 72(R15) skip savearea
|
||||
DC 17F'0' savearea
|
||||
SAVE (14,12) save previous context
|
||||
ST R13,4(R15) link backward
|
||||
ST R15,8(R13) link forward
|
||||
LR R13,R15 set addressability
|
||||
LA R6,1 i=1
|
||||
DO WHILE=(C,R6,LE,=A(8)) do i=1 to hbound(nums)
|
||||
LR R1,R6 i
|
||||
SLA R1,1 ~
|
||||
LH R8,NUMS-2(R1) n=nums(i)
|
||||
MVC PG,=CL80'.... :' clear buffer
|
||||
LA R9,PG @pg
|
||||
XDECO R8,XDEC edit n
|
||||
MVC 0(4,R9),XDEC+8 output n
|
||||
LA R9,7(R9) @pg+=7
|
||||
LA R7,1 j=1
|
||||
DO WHILE=(C,R7,LE,=A(13)) do j=1 to 13
|
||||
LR R1,R7 j
|
||||
SLA R1,1 ~
|
||||
LH R3,ARABIC-2(R1) aj=arabic(j)
|
||||
DO WHILE=(CR,R8,GE,R3) while n>=aj
|
||||
LR R1,R7 j
|
||||
SLA R1,1 ~
|
||||
LA R4,ROMAN-2(R1) roman(j)
|
||||
MVC 0(2,R9),0(R4) output roman(j)
|
||||
IF CLI,1(R9),NE,C' ' THEN if roman(j)[2]=' ' then
|
||||
LA R9,2(R9) @pg+=2
|
||||
ELSE , else
|
||||
LA R9,1(R9) @pg+=1
|
||||
ENDIF , endif
|
||||
SR R8,R3 n-=aj
|
||||
ENDDO , endwile
|
||||
LA R7,1(R7) j++
|
||||
ENDDO , enddo j
|
||||
XPRNT PG,L'PG print buffer
|
||||
LA R6,1(R6) i++
|
||||
ENDDO , enddo i
|
||||
L R13,4(0,R13) restore previous savearea pointer
|
||||
RETURN (14,12),RC=0 restore registers from calling save
|
||||
ARABIC DC H'1000',H'900',H'500',H'400',H'100',H'90'
|
||||
DC H'50',H'40',H'10',H'9',H'5',H'4',H'1'
|
||||
ROMAN DC CL2'M',CL2'CM',CL2'D',CL2'CD',CL2'C',CL2'XC'
|
||||
DC CL2'L',CL2'XL',CL2'X',CL2'IX',CL2'V',CL2'IV',CL2'I'
|
||||
NUMS DC H'14',H'16',H'21',H'888',H'1492',H'1999',H'2020',H'3999'
|
||||
PG DS CL80 buffer
|
||||
XDEC DS CL12 temp for xdeco
|
||||
REGEQU
|
||||
END ROMAENC
|
||||
Loading…
Add table
Add a link
Reference in a new issue