Cory Hamasaki's DC Y2K Weather Report V2, # 4
            "January 16, 1998 -  714 days to go."  WRP60

    (c) 1997, 1998 Cory Hamasaki - I grant permission to distribute and
reproduce this article as long as this entire document is reproduced in
its entirety including this notice.  I do not grant permission to
a commercial publisher to reprint this in print media.

As seen in
   USENET:comp.software.year-2000
   http://www.elmbronze.demon.co.uk/year2000/
   http://www.kiyoinc.com/HHResCo.html

Please fax or email copies of this to your geek pals, especially those
idiots who keep sending you lightbulb, blonde, or Bill Gates jokes,
and urban legends like the Arizona rocket car story.

If you have a Y2K webpage, feel free to host the Weather Reports.

Don't forget- April 2, 3 1998, Geek Out.

1. Kids, don't try this at home
2. ALC 7 - When are we?
3. Back to Hoboken
4. SPAM solution
5. Project Dumbass
6. CCCC
----- Kids, don't try this at home ----------

Do you have kids?  If so, do not, absolutely do not tell them about the woman 
who put her big toe in the bathtub water spout, her toe got stuck.  She heard 
about someone who did that and got stuck.  Similarly don't tell them about 
people who put beans in their noses.

Don't tell them about how someone decided to run a Y2K test on their Internet 
computer and got some files stuck.  Look here...

Lan Interface(s) Downed Successfully.
Browser ini found: D:\NETSCAPE\NETSCAPE.INI
TCP/IP INI file defaults updated.
mail domain: ibm.net
e-mail ID: kiyoinc
news server: news-s01.ny.us.ibm.net
gopher server: updates.gopher.ibm.net
smtp server: smtp-gw01.ny.us.ibm.net
pop server: pop03.ca.us.ibm.net
www server: http://www.ibm.net
Last recorded filechecks
 Program:Wed Jan 12 17:32:20 2000
 Phone:Wed Jan 12 17:32:20 2000
 Modem:Wed Jan 12 17:32:20 2000

So when my Internet software compares the new Program, Phone list, or Modem 
list,  Hmmmm IBM.net has a Phone list with a Jan 14, 1998 date available for
download but we already have Jan 12, 2000 installed.  We don't need to run the
automatic update.  I'm stuck!

-------- ALC 7  When are we? --------------

Jim has coded a little assembler program to test the store clock instruction 
and the storeclock convert MACRO.  Complete this lesson and you will have a 
useful little tool for your time machine.

STCK is an instruction with a two byte opcode.

STCKCONV is a macro, it generates a series of instructions.

The program stores the current clock value, converts the value, moves it to a 
display line, and issues a write to programmer macro.  WTO routecode eleven is
your private joblog.

The code between the STCK and the STCKP labels are program initialization 
instructions.

CSECT is an assembler directive, marks the beginning of the code segment (in 
Pee Cee Wee Nee terms.)

SAVE is a macro, it primarily generates a STM, opcode 90.

The BALR 12,0 means put the address of the next instruction, the ST, into
register 12 and the zero means, don't branch.

The using is an assembler directive.  In this case, the * means the address of
the next instruction, the ST, and the R12 tells the assembler to assemble the 
offsets relative to the opcode of the ST.  Darn, I'm doing a poor job of 
explaining this, you really need a white board to show this correctly.

The ST copies the contents of register 13 to the second fullword of 18 
fullwords at label SAVE.

The LA calculates the address of the label SAVE and puts that in register 13. 
This is save area chaining.  S/370 doesn't have a stack so register saving in 
program linking is accomplished via a linkedlist rather than a stack.

In MVS, Register 13 is the savearea pointer.  This is convention.

Jim forgot to Unpack his date and Ed is explaining that to him.

============================================================
Newsgroups: bit.listserv.ibm-main
From: edjaffe@netcom.com (Edward E. Jaffe)
Subject: Re: STCK and STCKCONV
Message-ID: <edjaffeEMost9.3IA@netcom.com>
References: <69dcr6$ffe@camel20.mindspring.com>
Date: Mon, 12 Jan 1998 19:58:21 GMT

James Anthony Williams (techsup@mindspring.com) wrote:
: I put together some quick code to test a Y2K date simulators dynamic
: handling of STCK instructions. In using the STCK (B205) and the
: STCKCONV I am not getting the desired results which is a simple WTO to
: the screen. The code is simple and non-reentrant. Here is the snippet
: of code.
:  STCK     CSECT
:           SAVE  (14,12),,STCK..&SYSDATC
:           BALR  R12,0               INIT BASE
:           USING *,R12               ADDRESS
:           ST    R13,SAVE+4          SAVE OLD SAVE
:           LA    R13,SAVE            COPY IN NEW SAVE
:  STCKP    DS 0H
:           STCK TODCLOCK
:           STCKCONV STCKVAL=TODCLOCK,CONVVAL=OUTVAL,TIMETYPE=DEC,     X
:                 DATETYPE=YYYYMMDD
:           MVC CONSOL+15(16),OUTVAL  WRITE TO CONSOLE
:  CONSOL   WTO 'STCKCONVXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',ROUTCDE=(2,11)
:  EXIT     DS 0H
:           L     R13,SAVE+4          RELOAD OLD SAVE
:           RETURN (14,12),RC=0
:           EJECT
:  TODCLOCK DS XL8       TOD CLOCK VALUE
:  OUTVAL   DS CL16      CONVERTED VALUE
:  SAVE     DS 18F
:           LTORG
:         END     
: Below is the output from the log.
:  -OPRJAW0I ASMACLG  C           00     6
:  -OPRJAW0I ASMACLG  L           00     1
:  +STCKCON     o   q      XXXXXXXXXXXXXX 
:  -OPRJAW0I ASMACLG  G           00      
:  IEF404I OPRJAW0I - ENDED - TIME=10.17.3
: Anybody got any ideas?

Yes.  Browse your job log in HEX mode.  You will see your result value in
hex (followed by 14 character Xs). You neglected to convert this data to
character for for display purposes. 

-- 
| Edward E. Jaffe                | Voice:       (310) 338-0400 x318    |
| Mgr, Research & Development    | Facsimile:   (310) 338-0801         |
| Phoenix Software International | Internet:    edjaffe@netcom.com     |
| 9841 Airport Blvd, Suite 700   | IBM Mail:    USS24J24 at IBMMAIL    |	
| Los Angeles, CA 90045          | Web page:    www.phnxsoftware.com   |

-----------------
In this next part, Steve explains the problem in more detail and offers some 
code that solves the problem.

In the instructions that follow, the data is moved from the second operand to 
the first.  For example:

          mvc   workdate(4),outval+8            extract year
                        <-----

This is in contrast to the example above:

:           ST    R13,SAVE+4          SAVE OLD SAVE
                     ---->

S/370 instructions move data from the second operand to the first except the 
register to memory movement is first operand to the second.

================================================================
From: scomstock@aol.com (S Comstock)
Newsgroups: bit.listserv.ibm-main
Subject: Re: STCK and STCKCONV
Date: 12 Jan 1998 20:09:52 GMT
Message-ID: <19980112200901.PAA12938@ladder01.news.aol.com>
References: <69dcr6$ffe@camel20.mindspring.com>

James Anthony Williams writes about having problems getting the date into a WTO
message.

James, two point come to mind:

1) the output from the STCKCONV as you've coded it is a
     16-byte area containing both date and time. The date is
      in the third word as eight packed decimal digits with no
      sign(!) as 0yyyyddd; you can either use an ED instruction
      or (less obvious) shift the date digits over left one digit,
      making sure you right fill with x'F', and then UNPK
      this into an 8 byte field, then move the unpacked result
      into your WTO message

2) the latest version of WTO lets you specify a halfword-prefixed
    string for your TEXT area, thus eliminating the need to MVC
    into your WTO macro expansion (a trick I have often used
    but which I always felt uncomfortable doing)

Putting these points with your code, you might have this instead
of the MVC into your WTO macro:

          mvc   workdate(4),outval+8            extract year
          mvo   workdate,workdate(4)          shift right one half-byte 
*                                                                     in 5-byte
field
          ed      work_out,workdate+1(4)       put into display format
          wto    text=(my_message),routcde=(2,11)

where the named items above are defined as

workdate       dc    xl5'000000000F'
                        ds    0h
my_message  ds  0cl18
                         dc  h'16'
                         dc  cl'STCKCONV '
work_out        dc  cl7' '

This ought to get you pretty close, anyway.

Good luck,

Steve Comstock
Telephone: 303-393-8716
email: SComstock@aol.com
256-B S. Monaco Parkway
Denver, CO 80224
USA
-------------------------------------
I'm sorry, as clean as S/370 assembly language is, it's still an assembly 
language.  You COBOL-heads and Pee Cee Wee Nees should be getting a sense for 
S/370 assembly language by now, there's still lots of stuff to cover but you
should be looking at the generated listings, dumps, and running some test
assemblies.  You can do it.  I hope these lessons will help a few people make 
the leap from COBOL-head and PCWN to bit-cranker, bare metal programmer. 
We'll need lots of you when Y2K starts to take down the civilized world.

If you're looking at a dump, don't worry that the formatted control blocks 
don't make a lot of sense.  90% of that is not useful unless you're debugging 
a system or IO problem.  The secret is to learn what to ignore and what to 
look for.

You denial-heads and non-programmers should finally understand that we're not 
kidding here.  Have you gotten a clue?

-------- Back to Hoboken and DC  --------
I'm heading back to Hoboken again.  What a treat to escape from DC for a few 
hours.  DC is doing so many nutty things, problems with the city morgue... 
again, the school principal who assaulted a reporter and two policemen was 
finally fired, the school system is in shambles... still.

--------- SPAM Solution ----------------

There are simple solutions to the SPAM problem.  The real problem is that we
humans are as dumb as Scott Adams claims.  Here's one solution.

Modify the Internet mail protocol to include a password. Servers or local mail
programs will reject mail if the password is not included in the mail header.
The mail bounce includes a trivial puzzle defined by the user.   For example,
my puzzle might be, "the day after Thursday, 6 letters".  

If you send me mail, and you don't know my mail password, the mail bounces 
back to you with "the day after Thursday, 6 letters".  Aha, you say, and type 
FRIDAY into your mail program.
 
The server or my mail program will allow me to define a new problem and new 
password at any time.  It also allows me to define userids or domains that 
don't need passwords.

This gives everyone a customizable mail firewall.  A firewall that can be as 
strong or weak as they want.  It puts the list sellers out of business because
as soon as a password is broken, it's easy to reconfigure the firewall, my new
problem might be, "three plus two, four letters".  My regular correspondants
would be included in my no password required list.

Here are some places to store the password, a new header field, the subject
line, the first line of the text.   Easy.  Will someone helpl me get this into
an RFC?

-------- Project Dumbass --------------

In addition to Project Damocles and the other noble efforts, let's start 
Project Dumbass.  If you see something especially egregious in the newsgroup 
or on the web, include the entire article, label it a Project Dumbass
submission, and include a TASTEFUL rebuttal.

If we have enough of these, hopefully someone will host them on a webpage.
That would be one funny website.

When the next denial-head shows up, we can direct them to Project
Dumbass.

No fair trolling for a slot on Project Dumbass,  you know who are.  Don't make
me mention names.

-------- Cory's closing clueless comments -

I hope everyone has been following the 3083 microcode and FAA funfest. 
Microcode is one level below S/370-390 machine code.  The microprogrammer 
drives the raw, naked hardware gates.   What a scream!  Don't you just want to
grab the FAA and give them a cream pie in the face.

So what have I forgotten?  I haven't worked on the webpage, I owe someone a 
bunch of back WRPs,  I'm exhausted and it's getting cold.  There's an icestorm
out there.
 
Check out http://www.ntplx.net/~rgearity any evening, 8-10PM EST.  Lots of
hot Y2K talk.  Last time I checked in, they were talking about food.  I didn't
see any nudity or explicit violence so you don't have to worry about that.

714 days to go.