Duplicate VOLID's

2010-08-28 Thread Richard Corak

There is my post of Thu, 20 Nov 2003 07:34:22 -0500

Richard Corak


Re: PGT004 MESSAGE

2010-06-17 Thread Richard Corak

No need forCP START DASD rdev PAGE

CP START DASD is nothing more than undrain.
If you haven't done DRAIN, don't bother with START.

Edits to Mike's sequence:

- Find an available DASD volume accessible to your z/VM system.
- Find (or decide on) a label volser for the soon-to-be paging volume
- Run CPFMTXA against that DASD, formatting the whole thing,
  assigning the label as decided above, and allocating
  - Cylinder zero as PERM, and
  - 1-END as PAGE.
- DETACH that device from the ID that formatted/allocated
- Update your SYSTEM CONFIG file on MAINT's CF1 disk using whatever
  procedures you already use.  E.g.
  - Find a free CP_OWNed 'SLOT', and change that to match the new page
DASD volser, and mark that as OWNED, e.g. if volser is VMPG01
and slot 11 is not already assigned
CP_Owned   Slot 11   VMPG01 OWN
- File SYSTEM CONFIG, run CPSYNTAX against the updated SYSTEM CONFIG
  file to check for errors.
- As long as there are no errors, bring the volume online to CP by
  entering:
  CP ATT rdev SYSTEM

Richard Corak


Override file/modify command

2010-05-20 Thread Richard Corak

Also might try   LOCATE CMDBK command

Richard Corak


Midnight message

2009-10-27 Thread Richard Corak

maybe SET VTOD would be more appropriate for testing?

Richard Corak 


Resizing TDSK on active system

2009-09-04 Thread Richard Corak

Actually, CP will read the allocation map when the device is
attached to SYSTEM, which could happen at IPL, or by command.

Richard Corak 


Adding Slots for CP volumes in the System Config

2009-02-11 Thread Richard Corak

No, you cannot define new slots on the fly.

255 slots consume about 4 contiguous pages of storage.


I believe that there are CP commands to DEFINE new CP_OWNED slots =
dynamically.  But I'm sitting on the couch typing on a Blackberry, so have =
not checked the CP Commands and Utilities manual.  I'm getting older and =
could be misremembering.


Richard Corak 


Paging

2009-02-11 Thread Richard Corak

Were there any EREP messages?  Any report of where the bad
spot on DASD might be?  It could be instructive to examine the
track in question, if it can be identified.

Richard Corak


Re: Make me abend, please

2008-11-09 Thread Richard Corak

Store into the new EXT pswg:

CP ST HL1BC 001   (that's Host Logoical 1BC)

causes prog 6

Richard Corak


Re: Question about TIMEZONE

2008-11-05 Thread Richard Corak

While waiting for Server Time Protocol from Santa,
investigate the DEFINE TIMEZONE command.

In general, CP reads SYSTEM CONFIG only at IPL.
TIMEZONE statements, CPOWNED lists, etc., are
processed only at IPL.  Generally, for dynamic
changes, there are separate commands.

Always remember the proper sequence:
- prepare the environment (like, format the
  DASD that is to become CPOWNED)
- prepare an updated SYSTEM CONFIG
- run CPSYNTAX
- place the updated SYSTEM CONFIG on the PARM disk(s)
- issue the dynamic commands (like DEFINE TIMEZONE,
  SET TIMEZONE, DEFINE CPOWNED, ATTACH, whatever)

Richard Corak


Re: Question about a user volume

2008-10-20 Thread Richard Corak

Not exactly.  Changing the contents of the CP_OWNED statement, including
deletion, affects only that statement.  But that's not as simple as it
might appear.

Spool files can span CP_OWNED volumes, so if CP needs to fetch the next
record for the spool file by going to the volume at slot 'n', and there
isn't a slot 'n', or it's a different volume so the needed record isn't
there, you lose the spool file.

Deleting the statement for slot 'n' doesn't automatically affect any
other CP_OWNED volume, but can affect all your spool files, and could
mean that you have no object directory.

Richard Corak


A word of caution, however.  Don't just delete that line in the CP-Owned
list in SYSTEM CONFIG, especially if there is a volume later in the list
that contains SPOOL space.  You would lose all the spool files in the
later volume.  Just change the volid in that slot in the CP-Owned list
to Reserved, rather than removing the slot.


Question

2008-10-01 Thread Richard Corak
Perhaps I could suggest that one not use as subject a content-free 
term like question.  I'm guessing that the overwhelming majority of 
threads start with a question.  We might all be better served with a 
subject line that does, in fact, mention the subject.


Richard Corak


Re: Eliminating DASD at IPL

2008-09-16 Thread Richard Corak

Scott,

The goal of SYSTEM CONFIG is to be empty.  That is, you don't
specify anything, and CP still runs.  Obviously impossible.
In reality you should be required to specify only what CP can't
figure out.  So, by default, every device is sensed to see what
it is; every device that can be brought online is brought online.
The hope is that the person who maintains SYSTEM CONFIG not be
bothered by mundane things like changes in device addresses.

ACCEPTED exists only to undo NOTACCEPTED.
ONLINE only to undo OFFLINE.
etc.

One could argue that this concept of do nothing could have been
applied to other things, like USER_VOLUME_INCLUDE.  But it wasn't.
C'est la vie.

Richard Corak


Re: mixed case messages

2008-05-20 Thread Richard Corak

Since one might have as many as  RDR files,
this EXEC could be inadequate to retrieve everything.
Consider a QUERY FILES first.  Even though the output
from QUERY RDR isn't 100 bytes, I use the extra size
for self-defense.



/*  R E X X  */
Address Command


 'PIPE CP QUERY FILES *',
'| SPECS W2' ,
'| VAR N'


'PIPE CP' 100*N 'Q RDR * ALL',
   '| drop 1',
   '| xlate 54-71 a-z a',
   '| locate 54-71 a',
   '| spec w2 1',
   '| stem files.'


Richard Corak 


HCP743E from DIAL command on Integrated 3270 Console

2007-12-22 Thread Richard Corak
The code you are proposing to modify was likely written before the 
Integrated 3270 Console existed.
The writers of the code did not prevent using the DIAL command. They 
just never allowed it. Some

future release of VM will probably include that capability.


I don't know why, but HCPDIA specifically looks for, and rejects, 
integrated 3270.


Richard Corak 


Re: IBM's Next Generation Mainframe Processor

2007-10-15 Thread Richard Corak

Size doesn't matter, but people like to talk about it.



I suppose we should knuckle down and define a new eHG (e-holy grail) that
is a function of CPU speed, disk access time, bus latency, memory latency,
number of peripherals, wind direction, amount of local disk storage,
number of tape drives, power consumption (kwh), mean age of programmers
who wrote the code you're running, and the number of cubic meters it all
occupies based on cabinet dimensions, the air-speed of an unladen
*African* swallow (in April, of course), and total length of cables.


Is this called a benchmark?

Richard Corak 


CP variables (was D/R Code)

2007-10-06 Thread Richard Corak
This idea needs work, but I was thinking about a CP REXX command, 
where the operand would be a single REXX statement.  If that 
statement set a variable, then that variable would be available to 
subsequent statements.


A variable would normally be local to the executing userid, even if 
the userid were SYSTEM, as during IPL.  Any local variable value 
could be exported for global usage; any global variable could be 
imported for local usage.


The arguments to CP REXX could be EXEC something.
Where something would be a REXX program that could come from
1) current CP accessed disks
2) user's own SPOOLed PUNCH file

So, I could have in SYSTEM CONFIG

REXX DR = 1
EXPORT DR

Tells the world thereafter that this IPL is real Disaster Recovery situation.

But if I can't update SYSTEM CONFIG before the IPL, the operator could issue
CP rexx dr=1  /* DR is now a local variable */
cp Export dr  /* DR is now also a global variable */
cp rexx drop dr   /* reclaim CP storage for the local variable */

Or maybe a single statement:CP REXX EXPORT DR = 1
but I don't like that.

and achieve the same thing.

Anybody could write a rexx exec to check for Disaster Recovery mode:

/* what's going on? */
cp import dr
if ( dr = 1 )
  then do
CP MSG OP We are in Disaster Recovery mode!
CP MSG OP I will now start the DR TCPIP

end
  else do
... something else
end

Another use could be by individual users.  One local usage could be 
tracing 2nd level.  Say my CPXLOADed command were loaded at 
x1234000.  Say I wrote a RREXX EXEC earlier and PUNCHed it to myself, 
with name DX CPREXX.  Then, I could


cp rexx b = '1234000'
cp rexx cp trace i range d2x(x2d(b)+x2d(1c0)) cmd rexx exec dx

When execution hit 12341c0, my PUNCH file DX CPREXX would be executed 
as a CP REXX thing.  Exectly what DX CPREXX looked like and what it 
could do still needs to be defined, but I'm sure you see possibilities.


Richard Corak


system config file

2007-05-22 Thread Richard Corak
The SYSTEM CONFIG statements are intended to be parsed like REXX 
statements.  Things in quotes remain as-is, otherwise each token gets 
folded to uppercase.  In theory, you could specify


cpowned slot 99 'a B c'

and get a really bizarre volume label.  Whether CP could use such a 
specification is another question.


Richard Corak


Using ALL Module and XEDIT in an EXEC

2007-04-25 Thread Richard Corak

You need to visualize which program is doing what.

When you are entering commands interactively,
XEDIT is reading your input and looking for XEDIT
things:  XEDIT commands and macros (like ALL XEDIT).

When an EXEC runs, the EXEC interpreter is reading
the file and looking for EXEC things, like CMS modules.

What you need to do is to get the EXEC interpreter
to put the XEDIT input into a place where XEDIT
will read from.  A buffer is the answer.  Once you've
placed your XEDIT commands into a buffer, you then
invoke XEDIT and it will read the buffer and do XEDIT things.

  /* example */
  MAKEBUF
  buf = rc
  queue SET ZONE 12 13
  queue ALL /02/
  queue DEL *
  queue FILE
  XEDIT someFN someFT someFM
  DROPBUF buf

By the way, when a buffer is emptied, XEDIT will read from
the next, then the next, etc., and eventually from the
terminal.  If you don't have an XEDIT command that tells
XEDIT to finish (like FILE or QUIT or QQUIT), XEDIT will
exhaust the buffer(s) and read from the terminal, which
will be confusing if you're not expecting it.  This can
easily happen if you've changed the file then tried quit.
Quit won't quit if the file has changed, which means
XEDIT continues reading.

Also, you can use this MAKEBUF/queue/DROPBUF technique
for most any program that takes its input from the terminal.

Someone may give an example of mixing address command and
address xedit in the same EXEC, but I don't do that.  If
someone does give such an example, we'll all be richer.

Richard Corak


autolog profile exec logic

2007-01-26 Thread Richard Corak
CP QUERY IPLPARMS has nothing to do with the system name.  If your 
convention is FN maps to system name, that's OK for you.  But FN is 
not the system name.


CP QUERY GATEWAY may give some system name somehow.  Not familiar 
with all that GATEWAY implies.


CMS IDENTIFY says how CMS maps virtual CPU ID through SYSTEM NETID 
file.  This gives some system name, but maybe not the one you want.


CP QUERY USERID gives the system name as set by the contents of SYSTEM CONFIG.

How an application like TCP determines its version of system name may 
dictate how you determine system name.


Richard Corak


Logoff force pending

2007-01-07 Thread Richard Corak

All CPHX does is set a bit that some commands check.
If the command checks the bit and finds it on, then
the command decides to quit.

CPHX does not forcibly terminate anything.

Richard Corak


OK Pipers, a new challenge

2007-01-03 Thread Richard Corak


009 FILES PURGED


Where is this coming from?  Looks like CP output, not CMS.

Richard Corak


Re: The History of Computer Role-Playing Games...

2006-12-27 Thread Richard Corak

I and a colleague extended the PLI version of Adventure
to include a helium balloon and Davy Jones' Locker, among
other things.  For me, it was more fun writing the code
that it was playing the game.

I still have hardcopy of the source code and the
database.

Richard Corak


CMSCALL return code

2006-11-22 Thread Richard Corak

If your habit was to use L Rx,=X'...' you were probably lucky in the old
days the =X literal would not necessarily be word-aligned, causing
two fetches to load the register, or, in the days when alignment really
mattered... a program exception.


Not true.  Assemblers going back to F (anything before?) have always
ordered literals by alignment.  Any 8-byte-multiple literal will
be aligned on an 8-byte boundary, regardless of how defined.
Then all 4-byte-multiple literals not a multiple of 8, then all
2-byte-multiple not x4 or x8, then all 1-byte-multiple literals.

So, a literal =X'12345678' or =X'12,34,56,78', etc., will be 4-byte aligned.

Richard Corak 


CMS Make

2006-11-17 Thread Richard Corak

Manual scanning of the source is painful,


Actually, it's rather easy.  I have a 300 line REXX command that
reads a list of LISTING files, reads the LISTINGs, parses the
Macro and Copy Code Source Summary section, extracts the entries,
and builds dependencies (in my personal format).

Richard Corak


CMS make

2006-11-14 Thread Richard Corak

What services exist to build dependencies for things
like COPY files or MACROs, including inner MACROs
within inner MACROs?

The idea behind 'make' has always been a good one,
but I never liked maintaining dependencies manually.

Richard Corak


Suppressing PER messages

2006-11-02 Thread Richard Corak

'PER DIAG 58 PRINTER CMD DUMP 0.20;BASE3'


Could you try 'PER DIAG 58 PRINTER CMD SPOOL CONS NOTERM #DUMP 
0.20;BASE3 #SPOOL CONS TERM'


If entered from the command line, the escape would be necessary.
The quote character is the TERM ESCAPE, the hash character is the 
TERM LINEND char.


Richard Corak 


Rumors of the next z/VM?

2006-09-27 Thread Richard Corak

A poorly conceived design is, itself, a bug. If you don't accept that, =
consider Windoze. Also, I would consider an artificial constraint where =
none is needed to be a flaw; hence,a bug. I can remember when many BAD =
(broken as designed) things were dismissed as WAD (Working As Designed), =
which is another way of saying, That's simply the design of CP. I =
thought we were beyond that.=20


I hardly think that in the 64-bit world some new CP thingie
was designed to be restricted to the 31-bit world.  CP was
designed when all that existed was 31-bit addressing.  Claiming
that design is now broken 'cause it hasn't been changed fast
enough to be 64-bit everywhere is just not reasonable. IMO.

Richard Corak 


Re: PUR RDR ALL not working for a user

2006-08-23 Thread Richard Corak

Then, too, there is TERM MODE CP.  If set, then the PUR EXEC would not be
executed.  Neither would any other CMS command.
This setting would be quite rare for most users.
Richard Corak



Since you determined the user has a PUR EXEC, they could also use CP PUR
 to not run their exec.

Depending on the user, sometimes I like to emphasize/teach the
difference between CMS and CP commands.

i.e. PURGE is not a CMS command, but it works in this case because SET
IMPCP is ON. If you SET IMPCP OFF, then PURGE will not work, the user
will have to use CP PURge... PUR will continue to run the PUR EXEC. (Use
IMPEX to control that) (Note PURGE is also an XEDIT command so must
be prefixed by CP  if issued from within XEDIT to purge rdr files)


How can we quickly determine the number of output blocks a file will need on a CMS disk?

2006-06-20 Thread Richard Corak

mapped = blocksize/4 /* # of blks mapped by a single ptr blk */

Recall that for RECFM F a pointer to the next level block requires
4 bytes, but for RECFM V 12 bytes are needed (4 bytes for block
number, 4 bytes for last record for that block, 4 bytes for the
offset into that block).  So, I think this divide by 4 is too
simplistic.

Recall that RECFM V records require 2 additional bytes for the
length of the data in the record.  So a record that contains
100 bytes of data is 102 bytes long.

Richard Corak 


Re: IOCP for MP2003-204

2006-06-16 Thread Richard Corak

CP reads the hardware configuration by Store-SubChannel-ID.  That
ID must map to a device number.  Using SubChannel-ID, CP can
issue I/O to get device information like device type.  Using device
type, CP can decide what to do with the device.  DASD: read its label.
Terminal: write the logon logo.  Etc.

But it all starts with the hardware being properly defined.  IOCDS.
Gotta have it.

Richard Corak


It's been quite a while since I worked at that level but I didn't (don't)
think that CP is going to be able to sense anything that isn't defined in
the active IOCDS. It seems to me that was why I used to have to give a tape
to the CE to load a basic IOCDS that would be enough to start with.

I hope I'm wrong.
Jim


Virtual memory implementation in S/370 (a.f.c x-post)

2006-05-12 Thread Richard Corak

 The recent thread about virtual memory sparked a (kind of)
 idle question: why did the implementation in the S/370
 have a two-level scheme (segment and page)? My original
 thought was that it facilitated definition of discontiguous
 parts of an address space.

Well, mostly it is because smaller systems don't have enough
real memory to hold a one level page table.

The segment/page system allows page tables to be paged out,
with the invalid bit in the segment table.

VAX uses a two level system where page tables are paged.
There is kernel space, which isn't paged and holds the first
level tables referencing pagable second level tables.

z/Archtecture has three levels.


Actually,
  Region First Table
  Region Second Table
  Region Third Table
  Segment Table
  Page Table

Richard Corak