MainframeSupports
tip uge 26/2006:

Ugens tip holder sommerferie. Det næste tip udkommer mandag den 31. juli 2006.

Tip of the week is on holiday. The next tip will be published on monday the 31th of july 2006.

Indtil næste tip må du kære læser nøjes med en beskrivelse af, hvordan man ved hjælp af ISPF browseren finder datostemplet for et LOAD-modul i et PDSE LOAD-bibliotek. Helt tilbage i uge 12/1999 skrev jeg om, hvordan man finder datostemplet i et LOAD-modul i et ganske almindeligt PDS LOAD-bibliotek. Jeg var dengang ikke klar over, at LOAD-moduler i PDSE LOAD-biblioteker har et fuldstændigt andet format. Det blev jeg første gang klar over i 2001, men havde umiddelbart ikke behov for at finde datostemplet. Det fik jeg for nyligt, og da jeg ikke gider bruge AMBLIST, så gik jeg i gang med detektivarbejdet.

For det første kan man ved hjælp af IEBCOPY eller ISPF punkt 3.3 kopiere et LOAD-modul fra et PDSE til et PDS (og den anden vej). Under kopieringen forvandles LOAD-modulet til det format, som passer til LOAD-biblioteket. Du kan altså kopiere LOAD-modulet fra et PDSE over i et PDS og herefter benytte metoden angivet i det førnævnte tip. Det er selvfølgelig hurtigere og kræver meget mindre CPU at finde det direkte i LOAD-modulet i PDSE-biblioteket. Det gør du ved at udstede en FIND 5695 FIRST og herefter en HEX ON i en ISPF BROWSE session på det pågældende LOAD-modul. Resultatet af ovenstående kan se således ud:

   Menu  Utilities  Compilers  Help
 -------------------------------------------------------------------------------
 BROWSE    MY.PDSE.LOAD.LIBRARY(PDSELOAD)                     CHARS '5695' found
 Command ===>                                                  Scroll ===> CSR
..CEEMAIN....SIBMSCHXE                                                        .æ
00CCCDCCD0000ECCDECCEC444444444444444444444444444444444444444444444444444444440C
07355419508092924238750000000000000000000000000000000000000000000000000000000000
 ------------------------------------------------------------------------------
......mY.......ø....5695PMB01 .....!...±...¢..
0000009E000000060000FFFFDDCFF40020140318002B004444444444444444444444444444444444
000201480001000A0000569574201016061F151F0160000000000000000000000000000000000000
 ------------------------------------------------------------------------------
...

Nu kan der jo godt stå 5695 flere steder i et LOAD-modul, så derfor skal du finde ud af om du er kommet til det rette sted. Det er du med stor sandsynlighed, hvis der står x'6A00000000' lige før det fundne. Der står sandsynligvis også PMB01 lige efter, men da PMB01 er en IBM produktversions kode, så kan du risikere, at der står noget andet. I ovenstående eksempel finder du selve datostemplet 3 bytes til højre for tegnstrengen 5695PMB01. Det er ligesom i et PDS LOAD-modul i decimal format, men nu i en decimal(7), da man har taget århundredet med. Lige efter datostemplet følger et tidstempel i endnu en decimal(7) i formatet 0TTMMSS. Datostemplet er i formatet ååååJJJ, altå en Julian date.

Hvis du har implementeret min SAY kommando, så kan du oversætte en julian date til noget med dag, måned og år vha. kommandoen TSO SAY DATE(,ååJJJ,J) som i det konkrete eksempel skal skrives som TSO SAY DATE(,06114,J). Ja, så fik du lige et ekstra trick med, nemlig hvordan man på en simpel måde går fra dagnr til en dato. Det bruger jeg ret tit. God sommer.

Forrige danske tip        Last tip in english        Tip oversigten