Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
* Fibonacci sequence 05/11/2014
|
||||
* integer (31 bits) = 10 decimals -> max fibo(46)
|
||||
FIBONACC CSECT
|
||||
USING FIBONACC,R12 base register
|
||||
SAVEAREA B STM-SAVEAREA(R15) skip savearea
|
||||
DC 17F'0' savearea
|
||||
DC CL8'FIBONACC' eyecatcher
|
||||
STM STM R14,R12,12(R13) save previous context
|
||||
ST R13,4(R15) link backward
|
||||
ST R15,8(R13) link forward
|
||||
LR R12,R15 set addressability
|
||||
* ----
|
||||
LA R1,0 f(n-2)=0
|
||||
LA R2,1 f(n-1)=1
|
||||
LA R4,2 n=2
|
||||
LA R6,1 step
|
||||
LH R7,NN limit
|
||||
LOOP EQU * for n=2 to nn
|
||||
LR R3,R2 f(n)=f(n-1)
|
||||
AR R3,R1 f(n)=f(n-1)+f(n-2)
|
||||
CVD R4,PW n convert binary to packed (PL8)
|
||||
UNPK ZW,PW packed (PL8) to zoned (ZL16)
|
||||
MVC CW,ZW zoned (ZL16) to char (CL16)
|
||||
OI CW+L'CW-1,X'F0' zap sign
|
||||
MVC WTOBUF+5(2),CW+14 output
|
||||
CVD R3,PW f(n) binary to packed decimal (PL8)
|
||||
MVC ZN,EM load mask
|
||||
ED ZN,PW packed dec (PL8) to char (CL20)
|
||||
MVC WTOBUF+9(14),ZN+6 output
|
||||
WTO MF=(E,WTOMSG) write buffer
|
||||
LR R1,R2 f(n-2)=f(n-1)
|
||||
LR R2,R3 f(n-1)=f(n)
|
||||
BXLE R4,R6,LOOP endfor n
|
||||
* ----
|
||||
LM R14,R12,12(R13) restore previous savearea pointer
|
||||
XR R15,R15 return code set to 0
|
||||
BR R14 return to caller
|
||||
* ---- DATA
|
||||
NN DC H'46' nn max n
|
||||
PW DS PL8 15num
|
||||
ZW DS ZL16
|
||||
CW DS CL16
|
||||
ZN DS CL20
|
||||
* ' b 0 0 0 , 0 0 0 , 0 0 0 , 0 0 0 , 0 0 0' 15num
|
||||
EM DC XL20'402020206B2020206B2020206B2020206B202120' mask
|
||||
WTOMSG DS 0F
|
||||
DC H'80',XL2'0000'
|
||||
* fibo(46)=1836311903
|
||||
WTOBUF DC CL80'fibo(12)=1234567890'
|
||||
REGEQU
|
||||
END FIBONACC
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
* Fibonacci sequence 31/07/2018
|
||||
* packed dec (PL8) = 15 decimals => max fibo(73)
|
||||
FIBOWTOP CSECT
|
||||
USING FIBOWTOP,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
|
||||
* ----
|
||||
ZAP FNM2,=P'0' f(0)=0
|
||||
ZAP FNM1,=P'1' f(1)=1
|
||||
LA R4,2 n=2
|
||||
LA R6,1 step
|
||||
LH R7,NN limit
|
||||
LOOP EQU * for n=2 to nn
|
||||
ZAP FN,FNM1 f(n)=f(n-2)
|
||||
AP FN,FNM2 f(n)=f(n-1)+f(n-2)
|
||||
CVD R4,PW n
|
||||
MVC ZN,EM load mask
|
||||
ED ZN,PW packed dec (PL8) to char (CL16)
|
||||
MVC WTOBUF+5(2),ZN+L'ZN-2 output
|
||||
MVC ZN,EM load mask
|
||||
ED ZN,FN packed dec (PL8) to char (CL16)
|
||||
MVC WTOBUF+9(L'ZN),ZN output
|
||||
WTO MF=(E,WTOMSG) write buffer
|
||||
ZAP FNM2,FNM1 f(n-2)=f(n-1)
|
||||
ZAP FNM1,FN f(n-1)=f(n)
|
||||
BXLE R4,R6,LOOP endfor n
|
||||
* ----
|
||||
L R13,4(0,R13) restore previous savearea pointer
|
||||
RETURN (14,12),RC=0 restore registers from calling sav
|
||||
* ---- DATA
|
||||
NN DC H'73' nn
|
||||
FNM2 DS PL8 f(n-2)
|
||||
FNM1 DS PL8 f(n-1)
|
||||
FN DS PL8 f(n)
|
||||
PW DS PL8 15num
|
||||
ZN DS CL20
|
||||
* ' b 0 0 0 , 0 0 0 , 0 0 0 , 0 0 0 , 0 0 0' 15num
|
||||
EM DC XL20'402020206B2020206B2020206B2020206B202120' mask
|
||||
WTOMSG DS 0F
|
||||
DC H'80',XL2'0000'
|
||||
* fibo(73)=806515533049393
|
||||
WTOBUF DC CL80'fibo(12)=123456789012345 '
|
||||
REGEQU
|
||||
END FIBOWTOP
|
||||
Loading…
Add table
Add a link
Reference in a new issue