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.