74 lines
2.9 KiB
Plaintext
74 lines
2.9 KiB
Plaintext
* Temperature conversion 10/09/2015
|
|
TEMPERAT CSECT
|
|
USING TEMPERAT,R15
|
|
LA R4,1 i=1
|
|
LA R5,TT @tt(1)
|
|
LA R6,IDE @ide(1)
|
|
LOOPI CH R4,=AL2((T-TT)/8) do i=1 to hbound(tt)
|
|
BH ELOOPI
|
|
ZAP T,0(8,R5) t=tt(i)
|
|
CVD R4,DW store to packed decimal
|
|
UNPK PG(1),DW+7(1) unpack
|
|
OI PG,X'F0' zap sign
|
|
MVI PG+1,C' '
|
|
MVC PG+2(12),0(R6) ide(i)
|
|
XPRNT PG,14 output i
|
|
MVC PG(12),=C'Kelvin: '
|
|
MVC ZN,EDMASKN load mask
|
|
EDMK ZN,T+5 t (PL3)
|
|
BCTR R1,0 sign location
|
|
MVC 0(1,R1),ZN+L'ZN-1 put sign
|
|
MVC PG+12(L'ZN-1),ZN value
|
|
MVC PG+19(2),=C' K' unit
|
|
XPRNT PG,21 output Kelvin
|
|
MVC PG(12),=C'Celsius: '
|
|
ZAP DW,T t
|
|
SP DW,=P'273.15' t-273.15
|
|
MVC ZN,EDMASKN load mask
|
|
EDMK ZN,DW+5 (PL3)
|
|
BCTR R1,0 sign location
|
|
MVC 0(1,R1),ZN+L'ZN-1 put sign
|
|
MVC PG+12(L'ZN-1),ZN value
|
|
MVC PG+19(2),=C' C' unit
|
|
XPRNT PG,21 output Celsius
|
|
MVC PG(12),=C'Fahrenheit: '
|
|
ZAP DW,T t
|
|
MP DW,=P'18' *18
|
|
DP DW,=PL3'10' /10
|
|
ZAP DW,DW(5)
|
|
SP DW,=P'459.67' t*1.8-459.67
|
|
MVC ZN,EDMASKN load mask
|
|
EDMK ZN,DW+5 (PL3)
|
|
BCTR R1,0 sign location
|
|
MVC 0(1,R1),ZN+L'ZN-1 put sign
|
|
MVC PG+12(L'ZN-1),ZN value
|
|
MVC PG+19(2),=C' F' unit
|
|
XPRNT PG,21 output Fahrenheit
|
|
MVC PG(12),=C'Rankine: '
|
|
ZAP DW,T t
|
|
MP DW,=P'18' *18
|
|
DP DW,=PL3'10' /10
|
|
ZAP DW,DW(5) t*1.8
|
|
MVC ZN,EDMASKN load mask
|
|
EDMK ZN,DW+5 (PL3)
|
|
BCTR R1,0 sign location
|
|
MVC 0(1,R1),ZN+L'ZN-1 put sign
|
|
MVC PG+12(L'ZN-1),ZN value
|
|
MVC PG+19(2),=C' R' unit
|
|
XPRNT PG,21 output Rankine
|
|
LA R4,1(R4) i=i+1
|
|
LA R5,8(R5) @tt(i)
|
|
LA R6,12(R6) @ide(i)
|
|
B LOOPI
|
|
ELOOPI XR R15,R15
|
|
BR R14
|
|
IDE DC CL12'absolute',CL12'ice melts',CL12'water boils'
|
|
TT DC PL8'0.00',PL8'273.15',PL8'373.15'
|
|
T DS PL8
|
|
PG DS CL24
|
|
ZN DS ZL8 5num
|
|
DW DS D PL8 15num
|
|
EDMASKN DC X'402021204B202060' CL8 5num
|
|
YREGS
|
|
END TEMPERAT
|