Roadkill 2018 I’m OK with that!

I started to write this post stating that this was a rather intense season for roadkill.  The remnant and fresh carcasses of squirrels, chipmunks, groundhogs, birds, foxes, skunks, porcupines, raccoons were seemingly littering the road more than I can recall starting near the end of August and even up until now in early October.  We hear about Hurricane seasons, but I just wasn’t sure if roadkill season was an appropriate phrase.  But I’ll leave it at that and assume there should be a roadkill season if there isn’t one already.

Skunks.  I prefer that any skunk that ends up roadkill, be at least 5 or more miles from my house.  Preferably 50.  I hear there are disposal sacks that can contain the odor of a squashed skunk.  That’s good, but who tested that?

Foxes, birds, porcupines, raccoons, deer.  Unless sick or almost dead anyway, I’d prefer not to see these animals dead in the road.  Just the other day, a small juvenile fox darted across the road in front of my car.  It had a pretty coat, looked in good shape, stopped briefly on the other side of the road, then disappeared into a culvert.  It made it safely across, and I’m ok with that.  Now the guy who has the chicken coop on that side might have different ideas about how things should turn out.

And that brings me to chipmunks and squirrels.

You see, I posted this past Spring about my small but very important Strawberry garden (see post).  I like fresh strawberries.  I like fresh strawberries with cream.  I like fresh strawberry shortcake.  Strawberry season is usually mid-June to early July, so it’s not that long, but I look forward to it nonetheless.  I just do.  Kind of like getting whoopie pies for my birthday in April.

And for a while I liked chipmunks.  I had commented to my wife, Lisa, on occasion, that we’ve been at our property since 1991 and had never had a resident chipmunk.  That was until the end of 2017 when I spotted the first one to stay.  So when Mr chipmunk again showed up in early 2018 after the snow melt, I was thinking “cool”.

I didn’t know chipmunks and squirrels ate strawberries.

That is, until I bragged about the strawberry garden and how I was so looking forward to it.  And when it came about that time to harvest a bowl or two, I opened the front door, took a step out, and froze.  Yonder on other side of garden, I spotted Mr Chipmunk looking right at me with a strawberry in its possession.  He tried to be very still.  But no way, I can spot a nice strawberry a mile away, and Mr Chipmunk had one solidly in his mouth.   I was rightly furious.  Soon though, the stupid Mr chipmunk dropped the strawberry and ran off.  What a waste, he didn’t even take it.  I walked over to the strawberry and saw it was about one third eaten.  I looked around and noticed most of the strawberries ready to be picked had already been gnawed on.  My wife said both Mr chipmunk and squirrels were at it.

So the strawberry harvest was nil this year, and my “chipmunk’s are cool” thoughts are more like “stay the heck out of my strawberry garden, I own a rifle”.  But I live too close to the road, so I’d probably have to resort to flinging some sharp stones.  I used to be good with a slingshot.

We used to have a few bunnies when the kids were young.  One bunny, Ginger got out of the cage and ran across the street.  It never made it back and was a roadkill statistic that year.  I buried her out in the woods.  I checked on it the next day and another animal had already dug it up and dragged it off.  I’m ok with that.

With such a heavy roadkill this year and an unlikely letup in traffic in front of my house, I think I’ll just sit back and let the road do it’s work, this year or next.  Mr chipmunk and Mr and Mrs squirrels will probably want to try the road running at some point.  It seems these Mr chipmunk and Mr and Mrs squirrels are the majority of those in the roadkill census anyway.  And I’m ok with that.

I will have to mine my strawberry field however.

 

Lightning Strikes

On Tuesday late afternoon, September 5th, the northwest corner of Lisbon Falls, Maine was the next community to host the severe thunder and lightning show that was going on in the state at that time.  Ignoring previous experiences, I took time away from my computer to gaze out the various windows, doors, and even stood on the deck (it has a roof though).  The dark clouds rolled up fast and the wind pushed the rain like pellets.  A flash boom here, another over there. Flash Boom. Flash Boom. Rolling Boom.  Flash all around Boom.  These were intense bolts and simultaneous thunder claps, or more like bombs.  I watched.  What I should have done is unplugged some of the electronics in the house or even opened the main breaker for 20 minutes or so. But no.  I eventually went upstairs and sat at my desk facing my computer monitor.   At that moment another Flash Boom as I sat down.  But that wasn’t it, the strike was so close I could hear the sizzling of energy finding it’s way to earth.  Little did I know that the sound I heard was the entrance of some of that charge through the cable line.  Right through the cable modem, my router, and one wired Ethernet port on two separate computers.  My Dell 990 was one of those, and an IBM 520i server the other.  I saw the sizzling arc between the Ethernet line and cabinet ground via a reflection in the window located just 6 inches away from the back of the Dell computer.  Luckily the Ethernet port seemed to be the only casualty on that machine, so it is wireless for now.  The IBM server port also was toast, but at least it had an unused wired Ethernet port I could change over to.  The modem and the router were simply just history.  On Thursday, I went over to the cable company and picked up a free cable modem.  I had a fall back router of less capability, but that would have to do until I could buy a new router.  A few years back, I had moved my electrical service, but had yet to move the cable drop to the same location.  Bad on me, as the cable ground was, well, missing.  Had the earth ground been in place or I had moved the cable to the same corner as the new service with a better ground, then I wouldn’t be posting this to the world right now.  I guess I better get moving on that cable line.

CS269 – IBM 360 Assembler – Program 5

Well, just to continue with the brain dump from yesteryear, here is program number 5 for the USM CS269 Intro to IBM Assembly Language Class.  Unlike program 2 posted here, program #5 will run unmodified in the PC DOS version of ASSIST.  I bet you’re thinking “Why would I even want to do this?”  I’m probably think the same thing.  Putting it here though at least might give me the opportunity to throw out the paper version.

 t
00001 $JOB ASSIST IPF269 PHIL ST.JEAN
00002 *PROGRAM 5 DUE 3/19/81 CS269
00003 * THIS PROGRAM SIMULATES MULTIPLICATION AND DIVISION AS DESCRIBED
00004 * IN THE TEXT FOR CS269 SPR81 BY STRUBLE; ON PAGES
00005 * 70-71 AND 74-75.  THESE SIMULATIONS DEAL WITH
00006 * POSITIVE OPERANDS, AND IF ONE IS NEGATIVE, COMPLEMENT IT SO
00007 * THAT IT IS POSITIVE.
00008 * DIVISION IS ROUNDED ( IE INTEGER DIVISION )
00009 *
00010 * INPUT : AN ALGEBRAIC EXPRESSION WITH ONLY MULTIPLICATION AND
00011 *         DIVISION; NO PARENTHESIS.
00012 *
00013 * OUTPUT: THE EXPRESSION AND THE EVALUATED RESULT.
00014 *
00015 * REGISTERS: 1 - INDEX THROUGH CARD
00016 *            2,3 - REGISTERS FOR MULT. AND DIV.
00017 *            4 - LOOP COUNTER FOR SIMULATION OF MULT. AND DIV.
00018 *            5 - TEMP. TO TEST IF RIGHT BIT IS ZERO OR ONE
00019 *            8 - USED TO PUT THE DIVISOR IN CORRECT RELATION
00020 *            9 - STORES RESULT AFTER EACH OPERATION
00021 *           11 - COUNTS THE NUMBER OF NEGATIVES
00022 *
00100 PROG5    CSECT
00110          BALR  12,0
00120          USING *,12
00130 LOOP1    LA    11,0
00150          XREAD CARD,80
00160          BCR   4,14
00170          MVC   LINE+1(80),CARD
00180          LA    1,CARD
00190          XDECI 9,0(1)
00200          C     9,=F'0'
00210          BNL   LOOP2
00220          X     9,=X'FFFFFFFF'
00230          AL    9,=X'00000001'
00235          LA    11,1(11)
00240 LOOP2    MVC   OP(1),0(1)
00244          CLI   OP,C' '
00246          BE    DONE
00250          XDECI 3,1(1)
00260          C     3,=F'0'
00270          BNL   SKIP
00280          X     3,=X'FFFFFFFF'
00290          AL    3,=X'00000001'
00295          LA    11,1(11)
00300 SKIP     CLI   OP,C'/'
00310          BE    DIVIDE
00311          CLI   OP,C'*'
00312          BE    MULT
00313          XPRNT ERROR,18
00314          B     LOOP2
00320 *
00330 * MULTIPLICATION
00340 *
00350 MULT     LA    4,32
00360          LA    2,0
00370 LMULT1   LR    5,3
00380          N     5,=X'00000001'
00390          BC    8,LMULT2
00400          ALR   2,9
00410 LMULT2   SRDL  2,1
00420          BCT   4,LMULT1
00430          LR    9,3
00440          B     LOOP2
00450 *
00455 * DIVISION
00456 *
00460 DIVIDE   LA    2,0
00470          LA    4,32
00480          LR    8,3
00490          LR    3,9
00500 LDIV1    SLDL  2,1
00510          SLR   2,8
00520          CLR   2,8
00530          BNH   LDIV2
00540          ALR   2,8
00550          B     LDIV3
00560 LDIV2    AL    3,=X'00000001'
00570 LDIV3    BCT   4,LDIV1
00580          LR    9,3
00590          B     LOOP2
00600 *
00610 *
00620 DONE    N   11,=X'00000001'
00625         BC   8,NOCOMPL
00650          X     9,=X'FFFFFFFF'
00660          AL    9,=X'00000001'
00670 NOCOMPL  MVI   82(1),C'='
00680          XDECO 9,83(1)
00690          XPRNT LINE,81
00700          MVC   LINE+1(131),BLANK
00710          B     LOOP1
00715 *
00720 CARD     DS    CL80
00730 LINE     DC    CL1'0'
00740          DS    CL131
00750 BLANK    DC    131CL1' '
00755 OP       DS   1F
00756 ERROR    DC   CL18'0ILLEGAL OPERATION'
00760          END   PROG5
00770 $ENTRY
00780 4*3
00790 16/2
00800 2*3*4/10
00810 -5*4/-2
00820 -10/3
00830 84/2/3
.rdymsg on
R; T=0.01/0.12 18:53:08
.assist

***  NO   STATEMENTS FLAGGED -  NO   WARNINGS,  NO   ERRORS

4*3 =          12

16/2 =           8

2*3*4/10 =           2

-5*4/-2 =          10

-10/3 =          -3

84/2/3 =          14

*** EXECUTION:    2241 INSTRUCTIONS EXECUTED ***

*** AM004 - NORMAL USER TERMINATION BY RETURN ***
R; T=1.29/3.15 18:53:43
.logoff
CONNECT= 01:29:49 VIRTCPU= 000:30.30 TOTCPU= 001:53.24
LOGOFF AT 18:54:07 EDT THURSDAY 03/19/81

 CAPS ONLINE

CS269 – IBM360 Assembler Program #2

While cleaning my stuff, which my wife calls junk, I came across a box of computer printouts from my college days at USM, which I attended and eventually graduated from about 40 years ago.  If someone else needs to review a similar answer to program#2 for the CS269 class, then here it is!  Steve R. was the instructor 1981.  You’d think this must still be relevant today – just look at those beautiful opcodes/mnemonics.

* AUTHOR....:  PHILIP ST.JEAN
* CLASS.....:  CS269 - IBM360 ASSEMBLY LANGUAGE PROGRAMMING
* INSTRUCTOR:  STEVE RAND
* CAMPUS....:  UNIVERSITY OF SOUTHERN MAINE
*
*
* PROGRAM #2, DUE FEB. 10, 1981
*
* THIS PROGRAM CALCULATES THE MEAN OF SEVERAL LIST OF INTEGERS
* TO THE NEAREST INTEGER.  ALSO CALCULATED ARE THE SUM AND
* NUMBER OF ELEMENTS.
*
* INPUT: DATA INPUT IS FREE-FORMAT, A SLASH(/) IS FOUND AFTER
*        THE LAST VALUE ON A CARD.  ANOTHER SLASH DIRECTLY
*        AFTER THE FIRST SLASH ( AND THUS //), INDICATES
*        END OF THE LIST TO BE AVERAGED.  AND ''END'' INDICATES
*        THE END OF ALL SUCH LISTS.  IF THERE ARE OTHER SPECIAL
*        SYMBOLS OTHER THAN THESE, THE PROGRAM WILL END AND AN
*        ERROR MESSAGE IS PRINTED OUT(IF THE SYMBOL IS WITHIN A
*        LIST, THAT LIST AND SUBSEQUENT LISTS WILL NOT BE
*        AVERAGED - THE PROGRAM WILL END.)
*
*          INPUT FOR THIS PROGRAM:
*             1   2   3   4   5//
*            -3  1      16/
*           20       24  -1 10  5 -3      8//
*                3/
*                   4/
*                   5/
*                   6/
*                0//
*                10//
*              END
*
* OUTPUT:OUTPUT CONSISTS OF THE NUMBER OF VALUES IN THE LIST
*        THE SUM OF THE LIST, AND THE MEAN OF THE LIST -  ALL
*        IN A TABLE-LIKE OUTPUT.( OR ANY ERROR MESSAGES AS
*        STATED IN THE INPUT SECTION.
*
PROG2    CSECT
         BALR  12,0
	 USING *,12
	 XPRNT TITLE,61
LOOP1    LA    10,0
         LA    7,0
LOOP2    XREAD CARD,80
         LA    1,CARD
LOOP3    XDECI 4,0(1)
         BO    NONUM
	 AR    7,4
	 LA   10,1(10)
	 B    LOOP3
*
* THE NEXT FEW STATEMENTS WILL DETERMINE WHETHER A SINGLE
* SLASH, A DOUBLE SLASH, AN END, OR SOME OTHER CHARACTER.
* IF IT IS / THEN READ THE NEXT CARD AND PROCESS IT;IF IT
* IS // THE END THE PROCESSING OF THE CURRENT LIST AND FIND
* THE MEAN AND THEN PRINT THE NUMBER OF VALUES,SUM AND MEAN
* OF THAT LIST.  IF IT IS SOMETHING OTHER THAN THESE TWO, GO
* TO THE STATEMENT LABELED END.
*
NONUM    CLI   O(1),C'/'
         BNE   END
	 LA    1,1(1)
	 CLI   0(1),C'/'
	 BNE   LOOP2
	 C     10,=F'0'
	 BE    LOOP2
	 XDECO 10,LINE+1
	 XDECO 7,LINE+16
*
* FIND THE MEAN -- IF IT IS POSITIVE, ROUND UP TO THE NEAREST
* INTEGER; IF IT IS NEGATIVE, CONVERT IT TO POSITIVE AND USE
* THE SAME STEPS AS IF IT WERE A POSITIVE SUM - SIGNAL THAT
* THAT THIS IS SO FOR LATER RECONVERSION- AND ROUND DOWN TO
* THE NEAREST INTEGER.
*
         A     7,=F'0'
	 BNM   SKIP
	 MVI   SIGNAL,C'N'
SKIP     LA    6,0
         DR    6,10
	 LA    8,0
	 LR    9,6
	 M     8,=F'2'
	 SR    10,9
	 BP    NOADD
	 A     7,=F'1'
NOADD    CLI   SIGNAL,C'N'
         BNE   POSITIV
	 LNR   7,7
POSITIV  XDECO 7,LINE+31
*
*
         XPRNT LINE,80
	 B     LOOP1
*
* IF THE CHARACTERS ARE 'END' THEN END NORMALLY; ELSE PRINT AN
* ERROR MESSAGE THAT SAYS THAT IT IS AN ILLEGAL CHARACTER
* AND COULD COME FROM A MISTYPED NUMBER IN THE DATA, AND
* INDICATE THAT THE PROGRAM IS ENDING ANYWAY.
*
END      CLC   0(3,1),=C'END'
         BER   14
	 XPRNT ERROR,128
	 BR    14
*
SIGNAL   DC    CL1'*'
CARD     DS    CL81
         DC    CL1'*'
LINE     DC    CL1'0'
         DC    132CL1' '
TITLE    DC    CL61'-    # OF ELEMENTS       SUM:          MEAN:     ,O*
               F THE LIST'
ERROR    DC    CL128'-''END'' WAS NOT USED TO TERMINATE DATA; PROGRAM E*
               NDING(PROBABLE CAUSE-ILLEGAL SYMBOL WITHIN BOUNDARIES OF*
			    LIST; SEE DATA CARDS)'
	END   PROG2
$ENTRY
             1   2   3   4   5//
            -3  1      16/
           20       24  -1 10  5 -3      8//
                3/
                   4/
                   5/
                   6/
                0//
                10//
              END

BTW, this program would run under the ASSIST 4.0/A of 04/25/75 version on the IBM 370/3031 mainframe.  At some point after the IBM PC was introduced in August of 1981, someone ported a version of ASSIST to the IBM DOS environment.  This program will run there with some slight modifications – the line with BER 14 will need to be replaced by the equivalent BCR 8, 14 instruction.  The DOS version is finicky/sensitive with tabs and lines with labels and lines without labels, and that impacts the section where line continuation is used and might have to be adjusted accordingly.

The Instructor graded these program homework assignments from 0 to 4.  This one got a 4.  Oh, some programs counted double, so 0 to 8.  Don’t ever think about getting a 5 or a 9 respectively, as he just doesn’t do that, not even if you invented the Internet, like I did in the 1970s while in high school.  I did not inhale, until after calculus.

Well that was quite the flashback memory of the day.  To think I have more junk, I mean stuff, to go through.

Update:  Click here to view the PDF scan of the actual completed computer listing – yes that’s real paper, recycled as it was.  File is about 6MB.

Damn the Torpedoes!

Beaked Hazelnuts (photo by Cezarie St.Jean)

Picked a small batch of these hidden gems a wee bit earlier than normal after what happened this year to our strawberry patch, but that’s another story.  We’ll let them dry as they are until the husks are brown and before we extract the nut.  Hopefully they will mostly be free of insect pests, such as weevil larvae – not that some of us have probably eaten a few of those wiggly things on purpose or not. These beaked hazelnuts grow wild here in Maine and the nuts are simply delicious. Years ago it wouldn’t have been uncommon for many a youngster to smack a burlap bag of these on the hard ground to enable getting to the nut easier.  You don’t really want to handle the husk with bare hands mind you – the hairs on the husk can be quite irritating, especially to the fingertips.  Oh, and I’m also talking about the real burlap, not that plastic fake burlap.

Anyway, in the grand scheme of time, these will soon be eaten;  and so “Damn the Torpedoes, full steam ahead”:  pare the husks, crack the shells open, sit back, and enjoy one of nature’s most tasty  morsels.  The hazelnut.  Aah!

Hello World! MS-DOS and Oracle VirtualBox.

A typical “Hello World!” assembler program for MS-DOS 6.22.  Simple and nothing magical going on here.

.model small        ; One data segment and one code segment
.stack
.data
     msgText db "Hello World!","$"
.code
.STARTUP
   main1 proc
     mov ax, @data
     mov ds, ax      ; DS now at Data segment
     lea dx, msgText ; DS:DX now has location of msgTEXT
     mov ah, 09      ; 09=Display string at DS:DX to STDOUT
     int 21h         ; Display the string on DOS interrupt

     mov ax, 4c00h   ; 4C=Exit Program function
     int 21h         ; Exit program on this DOS interrupt
   main1 endp
end

Don’t have MS-DOS anymore?  You can setup Oracle’s VirtualBox application and create an MS-DOS virtual environment on any modern computer.  I’ve done this with Linux and Windows variants.   Seen below is Windows 10 running a DOS virtual machine, aka VM, within the Oracle VirtualBox product.  The above source code is located in the DOS VM directory c:\test.  This example here uses the Borland assembler and linker, tasm/tlink, that I previously installed in this DOS VM.  Finally running the executable code, hello.exe, the expected results are seen.

Hello World running in DOS 6.22 VM on Oracle’s VirtualBox.

 

Orange Blossom Special

To be more precise this is Orange Blossom Water, and it is something special alright!  Downright special, as in YUCK.  I tried this and it is just wrong to my senses.  I tried to give some to our dog and she has been missing now for 3 days.  Note to wife – do not buy this even if the label is pretty.  One of our sons, who eats and drinks most everything, keeled over during a taste of this.  Maybe you’ll find it suitable, but for me, no way not gonna happen.  Just saying.

I’ve got a Rocket on my Oil Tank!

Rocket sensor/transmitter on oil tank in cellar.

It might sound crazy, but I’ve got a rocket on my oil tank.  I know what your thinking – that it’s dangerous.  It isn’t.  Here’s why.  The rocket is the “OEM ROCKET” and is the ultrasonic oil tank sensor that I installed many years ago, maybe 15, to replace the old manual float that had decided to get caught up on the inside of the tank somehow.  Here’s a picture of the rocket I’m talking about.  It sends a periodic radio transmission to a receiver up in kitchen which displays the amount of oil in the tank.  I don’t

Rocket receiver/display upstairs in kitchen.

have to go down in the cellar to check the level.  The display shows roughly 1/4 full.  I don’t have automatic delivery, but for those who do, you might not care about something like this because those fuel oil delivery programs should do a good job keeping your tank from running out.  They use degree day calculations and stuff like that.  Since I don’t use automatic oil delivery and I pick different oil vendors depending on price, so this little unit helps me when to make the decision to order oil.  Some oil dealers have subscription programs based on this unit by adding a separate receiver/modem so that it can send your information to them, and then you can look at your current and historical information.  I’m not paying no stinking oil company any more than I have to, and I don’t like my data going to any more people than need be.  I hacked the transmission long ago with a PIC microcontroller – after all it’s not rocket science!  Even without the hack, this is a handy piece of equipment in its own right – it will beep and flash a red LED when the oil level gets too low.  And before that there’s a flashing “oil nozzle” icon to indicate “time to call for oil”.

 

If I was a Staggerwing

A staggerwing painted red.  And that would be a Mark Knoffler and Emmylou Harris duet kicking around my head.  Actually it’s coming from my PC speakers.  I’m thinking I so need to get myself a staggerwing version of this spark plug – a gift from my wife’s brother Danny about 15 years ago.  He welded any metal, any size, any how, any way, even when no one else would or could.  Rest in Peace Danny, April 8 1964 – September 24, 2010.

On the barley field ready for flight.

 

 

The Olivetti P603 sparked a Future Career?

The first computer that I recall seeing in person was an Olivetti P603 at my Dad’s office.  I was about 12, early senventies.  Seen here is a stock photo from Olivetti.  My dad’s version didn’t have the drawer storage cabinet seen on the left that I recall.  An electric typewriter console occupied the central operator position.  On the right was a calculator type console which also served as the programming unit.  On this same programming unit was a calculator size paper printer and also a magnetic strip reader/writer.  Not seen in this stock photo, but below the desk level and to the right of the operator was a tape cabinet unit.  One would place a tape cartridge into the unit positioning it onto the keyed motor spindle and then operate a hand lever to engage the tape into the electronics of the tape unit.  Each tape contained it’s own read/write head.  The tape itself was a single length endless loop configuration as pictured here.  The tape cartridge dimensions were about 7″ by 6″ by 2″.  The usable tape is visible in through the smoke gray plastic with the exception of a length that ran from this oval area to the read/write head seen at the top through the “dimpled” portion.  The tape ran through a few capstans and a tensioner around the perimeter.  The tape itself had 4 tracks.  I have since forgotten the density of the tape, but I don’t believe each track was more than 4k roughly, for a total of approximately 16k.  For a bit of fun, one could take the cartridge by itself, hand-rotate the keyed receptor on the back, and watch the tape “slowly” move through its path.  As a 12 year old, I thought it was magic that the tape didn’t end up in knots.  So what could you do with this whole thing?  Well, it could be used as a typewriter.  You could also use it for it’s calculator though I never saw it used that way myself.  Then with the magnetic cards (about 2.5″ by 8 or so inches, double sided) and/or with the tape unit, one could read/write/run programs.  The programs could output onto the typewriter.  There was no screen.  And before I forget, it weighed a “ton”.  In 1979 he still had this boat anchor running parts of his office.  And that year, being a computer science major and believing I could do anything with a computer, I wrote a structural heat-loss program for him on this unit.  It was worse than coding in APL.  Well, not really.  Just to wrap up the nostalgia a bit, in summary, if one used enough of the calculator paper, one could wind it back up tightly and then pull it from its center, making a real neat paper sword for that child still in oneself –  fun and no worries.