Sign in Join
Wiki copytemporary

ZSeries/Part 4: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: ZSeries/Part 4

OldNewLine
1+*[[ZSeries|Go back to zSeries]]* — [[ZSeries/Part 3|Go Back to Part 3]] — [[ZSeries/Part 5|Go Forward to Part 5]]
2+
3+These observations were contributed by Paul "kerravon86" via the Hercules-390 mailing list, in response to the January/February 2012 thread in fpc-devel. Paul is responsible for the unofficial /380 Hercules patches and for the port of GCC to IBM OSes including MVS.
4+
5+They are posted here with minimal editing or comment lest they be lost.
6+
7+------------------------------------------------------------------------
8+
9+Anyway, here are some interesting topics:
10+
11+<http://lists.freepascal.org/pipermail/fpc-devel/2012-January/028050.html>
12+
13+"if for no other reason than to keep C from being the only choice for developing programs on mainframes"
14+
15+Language wars - cool!
16+
17+<http://lists.freepascal.org/pipermail/fpc-devel/2012-January/028052.html>
18+
19+Interesting that mainframes are relatively immune from hacking.
20+
21+<http://lists.freepascal.org/pipermail/fpc-devel/2012-January/028054.html> <http://lists.freepascal.org/pipermail/fpc-devel/2012-January/028192.html>
22+
23+I read the link about the S370 being "broken", and I don't agree. S370 works fine. The "issue" about functions that are more than 4K in size being slower is not an issue in practice, because even if that were true, most functions do not exceed 4K anyway. At least from my experience with the GCC code.
24+
25+And even if GCC 4 doesn't support the older S370, GCCMVS 3.2.3 does, so I don't see an issue.
26+
27+<http://lists.freepascal.org/pipermail/fpc-devel/2012-January/028055.html>
28+
29+I don't agree that using S370 instructions is like using 8086 instructions when you have an 80386 available. The fact is that S370 provides everything required to produce 31-bit executables that run ATL with more than 16 MiB of memory on z/OS, while still running as 24-bit on MVS 3.8j.
30+
31+You can't compare that to a 16-bit 8086 and a 32-bit 80386.
32+
33+<http://lists.freepascal.org/pipermail/fpc-devel/2012-January/028063.html>
34+
35+With regard to CSECTS - I strongly suggest that you look at GCCMVS-generated code and stick to that. Which includes blank CSECTS. If you try automatically naming CSECTS, then when you have a name clash, you will not get a linker error. The bigger CSECT will just replace the smaller CSECT silently (from memory).
36+
37+I would also recommend taking a look at the MVSSUPA code in PDPCLIB. I believe that that code should support Pascal completely unchanged.
38+
39+Another comment I have is that if you wish to use S390 instructions to make life easier, it would be good if you could stick to instructions that fall into the list below, since those instructions are available in S380, even though they're not in S370, so your Pascal programs will still run under MVS 3.8j.
40+
41+BFN. Paul.
42+
43+/* The following ESA/390 features can be retrofitted to S/370 and
44+
45+`  may be activated if desired by uncommenting the appropriate`\
46+`  define statements below and performing a complete rebuild */`
47+
48+1. define FEATURE_BASIC_FP_EXTENSIONS
49+2. define FEATURE_BINARY_FLOATING_POINT
50+3. define FEATURE_CHECKSUM_INSTRUCTION
51+4. define FEATURE_COMPARE_AND_MOVE_EXTENDED
52+5. define FEATURE_COMPRESSION
53+6. define FEATURE_EXTENDED_TRANSLATION
54+7. define FEATURE_EXTENDED_TRANSLATION_FACILITY_2
55+8. define FEATURE_HFP_EXTENSIONS
56+9. define FEATURE_HFP_MULTIPLY_ADD_SUBTRACT
57+10. define FEATURE_HFP_UNNORMALIZED_EXTENSION
58+11. define FEATURE_IMMEDIATE_AND_RELATIVE
59+12. define FEATURE_SQUARE_ROOT
60+13. define FEATURE_STRING_INSTRUCTION
61+
62+/* The following ESAME features can be retrofitted to S/370 and
63+
64+`  may be activated if desired by uncommenting the appropriate`\
65+`  define statements below and performing a complete rebuild */`
66+
67+1. define FEATURE_ESAME_N3_ESA390
68+2. define FEATURE_ETF2_ENHANCEMENT
69+3. define FEATURE_ETF3_ENHANCEMENT
70+4. define FEATURE_EXECUTE_EXTENSIONS_FACILITY
71+5. define FEATURE_EXTENDED_IMMEDIATE
72+6. define FEATURE_EXTENDED_TRANSLATION_FACILITY_3
73+7. define FEATURE_GENERAL_INSTRUCTIONS_EXTENSION_FACILITY
74+8. define FEATURE_LONG_DISPLACEMENT
75+9. define FEATURE_MESSAGE_SECURITY_ASSIST
76+10. define FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_1
77+11. define FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_2
78+12. define FEATURE_PARSING_ENHANCEMENT_FACILIT
79+
80+
81+*[[ZSeries|Go back to zSeries]]* — [[ZSeries/Part 3|Go Back to Part 3]] — [[ZSeries/Part 5|Go Forward to Part 5]]
82+
83+---
84+*From the Free Pascal wiki, page "ZSeries/Part 4", as it stood on 2015-10-28 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
85+Category: High-performance computing
86+Category: Mainframes

Back to history