[comp.sys.handhelds] Viewing stack

hartsell@cs.utk.edu (Duke of Earl) (03/26/91)

Hello, 
I was wondering if someone out there could tell me where to locate 
a program that was posted he a few months ago. It allowed the viewing
of the first 10 items of the stack in in a small font. 
I had it working on my hp when but an accidental memory purge and purge of
hardcopy( I threw it away ).  Prevented me from putting it back on my hp.


Thanks  in  advance
-- 
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|             Earl W. Hartsell 'The Duke of Earl'          |
|                    hartsell@cs.utk.edu                   |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

asslk@acad2.alaska.edu. (Kingry Shane L) (03/26/91)

In article <1991Mar25.234257.15408@cs.utk.edu>, hartsell@cs.utk.edu (Duke of Earl) writes...
>Hello, 
>I was wondering if someone out there could tell me where to locate 
>a program that was posted he a few months ago. It allowed the viewing
>of the first 10 items of the stack in in a small font. 
>I had it working on my hp when but an accidental memory purge and purge of
>hardcopy( I threw it away ).  Prevented me from putting it back on my hp.
> 
> 
>Thanks  in  advance
>-- 
>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>|             Earl W. Hartsell 'The Duke of Earl'          |
>|                    hartsell@cs.utk.edu                   |
>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


I have seen it in a book put out by HP (I think) that was something like:
"Using your HP48SX"   Basically, it was a shortened condenced version of the
HP manuals.  If you can't find it, I coud up it.  Better yet, I'll do so when
I get back to my computer ( I am at the school's now)

			-SK

sburke@jarthur.Claremont.EDU (Scott Burke) (03/26/91)

Here's a chopped-down version of the 10-level stack viewer:

STKV:  # 59741d; 206 bytes
\<<
  DEPTH 5 < { KILL } IFT       @ don't do anything if < 5 levels used
  PICT RCL ERASE               @ recall user's PICT for later restoration
  1 DEPTH 2 - 10 MIN           @ loop up to 10 or the stack size if < 10
  FOR j
    PICT # 1d j # 6d * NEG # 63d + 2 \->LIST    @ form list of coordinates
    j ": " OVER 5 + PICK + + 1 \->GROB REPL     @ form font size 1 GROB line
  NEXT
  { } PVIEW PICT { # 0d # 0d } ROT REPL         @ display, then reset PICT
\>>


Before somebody harshes me for using KILL:  it saves 2.5 bytes and doesn't
leave anything on the stack.  No arguments, please.  The alternative is to
enclose all the code in a list with an IFT, or to use an IF/THEN, which we
all know takes more RAM than an IFT.  ;-)

Scott.
sburke@jarthur.claremont.edu

asslk@acad2.alaska.edu. (Kingry Shane L) (03/26/91)

Keywords:  
News-Software: VAX/VMS VNEWS 1.3-4   

In article <1991Mar26.033937.18677@ims.alaska.edu>, asslk@acad2.alaska.edu. (Kingry Shane L) writes...v
>In article <1991Mar25.234257.15408@cs.utk.edu>, hartsell@cs.utk.edu (Duke of Earl) writes...
>>Hello, 
>>I was wondering if someone out there could tell me where to locate 
>>a program that was posted he a few months ago. It allowed the viewing
>>of the first 10 items of the stack in in a small font. 
>>I had it working on my hp when but an accidental memory purge and purge of
>>hardcopy( I threw it away ).  Prevented me from putting it back on my hp.
>> 
>> 
>>Thanks  in  advance
>>-- 


-------------------------------------

Stack View Program: From "The HP Handbook", by James Donnelly, page 23

The following stack-view program STKV diplays up to 10 levels of
the stack simultaneously.  The display mode, plot parameters, stack
values, and graphics picture are preserved.  The system remains
halted until ATTN is pressed, after which the program resumes to
restore the origional PPAR and PICT.

---------------------------cut here-------------------------------
%%HP: T(3)A(D)F(.);
\<<
  IF DEPTH
  THEN PICT RCL
PPAR \-> pict ppar
    \<< PICT PURGE 1
32 XRNG 1 64 YRNG 1
DEPTH 1 - 10 MIN
DUP
      IF 8 >
      THEN 6 1
      ELSE 8 2
      END \-> rowht
tsize
      \<<
        FOR i PICT
1 i rowht * R\->C
RCLF STD i ": " +
SWAP STOF i 3 +
PICK \->STR + tsize
\->GROB GOR
        NEXT { }
PVIEW 'PPAR' PURGE
ppar
        IF 'PPAR'
SAME NOT
        THEN ppar
'PPAR' STO
        END pict
PICT STO
      \>>
    \>>
  END
\>>
--------------------------cut here----------------------------

waterman@engg.ucalgary.ca (jason waterman) (03/27/91)

Hi there,

Here are several stack view programs.  All of these were obatained from Wayne Scott's mail server.   I'm sure one of them will suit your needs.

-------------------------------------------------------------------------------
Article 2283 of comp.sys.handhelds:
From: n233dk@tamuts.tamu.edu (Rick Grevelle)
Newsgroups: comp.sys.handhelds
Subject: ATLD.3 (right justified)
Message-ID: <9978@helios.TAMU.EDU>
Date: 11 Nov 90 02:17:17 GMT
Sender: usenet@helios.TAMU.EDU
Organization: Texas A&M University
Lines: 50


This is a third version of the seven level alternate stack display routine. 
It more closely emulates the default format in that the stack margin is right
justified.  Perhaps eventually it will be able to duplicate the default format
exactly so that the multi-line option and stack review feature can be utilized.

As before, when used in conjuction with vectored ENTER the display remains in 
its seven level format.  A brief reiteration of how this is done is as follows:

i)   Append DROP to the first of ALTD using \->PRG.

ii)  Store the result in <beta>ENTER (# 409DFh SYSEVAL).

iii) Set flags -62 and -63.

Rick Grevelle


CALTD (BYTES: #5539h 243.5)

%%HP: T(1)A(R)F(.);
\<<
 # 1073CE0403F02D9Dh
 # 8803CE40314C0722h
 # 24402D9D619AD031h
 # 686A07221055DF03h
 # 3DE0072210403F1h
 # 33918A0733412429h
 # 9D619930312B393Dh
 # 221159EB0318802Dh
 # 72210403F1686A07h
 # 314C1242903DE00h
 # 40339E624BA04035h
 # 2B393D33918A0733h
 # 312B031h 1 12
   START # 5193h
 SYSEVAL
   NEXT # 4003h
 SYSEVAL # 62B9Ch
 SYSEVAL 
\>>


ALTD

%%HP: T(1)A(R)F(.);
"D9D20F3040EC37012270C41304EC3088130DA916D9D2044230FD55012270A686
1F3040122700ED309242143370A81933D393B213039916D9D2088130BE951122
70A6861F3040122700ED3092421C413053040AB426E933043370A81933D393B2
130B2130C6D8"


Article 1266 of comp.sys.handhelds:
From: Jake-S@cup.portal.com (Jake G Schwartz)
Newsgroups: comp.sys.handhelds
Subject: HP48SX Stack View Utility - up to 10 levels
Message-ID: <27510@cup.portal.com>
Date: 3 Mar 90 20:31:42 GMT
References: <719@telesoft.com>
Organization: The Portal System (TM)
Lines: 67


                     An HP48SX Stack Display Utility
                          For Up To Ten Levels

     The HP48SX calculator LCD display contains 64 by 131 pixels and is pro-
moted as being an 8-line display.  However, in very few instances do eight 
lines of information actually appear at any one time. (The Matrix Writer
application mode is one of the exceptions.)  In general, we see two status
lines, four stack lines plus a single menu key line, totalling seven. 
Occasionally, it would be useful to be able to utilize the entire display to
show the stack when there are greater than four levels of depth; and the
extensive graphics capability of the HP48 allows us to do just that.

     In graphics mode, we may write text from objects in the stack at any
specified coordinates in the graphics picture and in any of three text
sizes.  Size 3 corresponds to the large 5 by 9 characters which are used in
the normal stack display; size 2 is the familiar 5 by 7 size of the
characters found in the HP28 display and also used to show HP48 error
messages and prompts at the top of the LCD; and size 1 represents the 3 by 5
characters which appear in the line-1 menu labels.  For stacks of 8 levels
or less, stack values in the graphics display may be nicely displayed using
the size-2 characters.  If the stack contains 9 levels or more, size-1
characters will allow up to 10 rows of the stack to be shown at once.

     The following stack-view program STKV allows viewing up to ten levels
of the stack simultaneously in the graphics picture.  The original display
mode, plot parameters, RPN stack values and graphics picture are all
preserved.  To run the program, press the STKV key in the VAR menu.  After a
few seconds the stack is displayed up to 10 levels. The system remains
halted until ATTN is pressed, after which the program resumes to restore the
original PPAR and PICT.  Each line of the stack is labelled with its level
number followed by a colon.  These level identifiers are generated inside
the main loop via the CHR function, which converts a character number to the
corresponding string character.  The value 48 becomes a zero, 49 a one, etc. 
As a result, the line 10 identifier (generated by doing 58 CHR in the loop)
turns out to be a colon, but is left alone to save precious execution time.

                                            Jake Schwartz

Program listing:
----------------

STKV     351 bytes, checksum #D7C2h

<< PICT RCL PPAR -> pict ppar            ; Save original PICT and PPAR 
   << PICT PURGE                         ; Purge original graphics picture
      1 32 XRNG 1 64 YRNG                ; Set new X and Y ranges for stack
      1 DEPTH 1 - 10 MIN DUP             ; Determine current stack height
      IF 8 >                             ; If greater than 8,text row height
      THEN 6 1                           ;  is 6 and text size is 1  
      ELSE 8 2                           ; Otherwise, text row height is 8
      END -> rowht tsize                 ;  and text size is 2        
      << FOR I PICT 1 I rowht *          ; Loop for the no. of stack levels:
         R->C I 48 + CHR                 ;   Build stack level identifier
         ":" +                           ;   Attach a colon to identifier
         tsize ->GROB GOR                ;   Add identifier to picture
         PICT rowht 2 / I rowht * R->C   ;   Compute coordinates,
         I 2 + PICK                      ;   Get stack value,
         tsize ->GROB GOR                ;   And add to picture
         NEXT                            ; End loop
         { } PVIEW                       ; Turn on GRAPHICS, halt until ATTN
         ppar 'PPAR' STO pict PICT STO   ; Restore original PPAR and picture
      >>
   >>
>>

   


Article 1299 of comp.sys.handhelds:
From: Jake-S@cup.portal.com (Jake G Schwartz)
Newsgroups: comp.sys.handhelds
Subject: Improved HP48SX Stack View Routine
Message-ID: <27587@cup.portal.com>
Date: 6 Mar 90 03:10:23 GMT
Organization: The Portal System (TM)
Lines: 55


           An Improved HP48SX Stack View Routine 

     Jim Donnelly made some significant improvements to the STKV routine,
not the least of which was elimination of manipulation of the PPAR variable
by using pixel coordinates instead of user coordinates. Also, the generation 
of stack labels is now done using the ->STR command instead of CHR. I thank
Jim for these suggestions.



STKV  275 bytes, checksum #4C38h

<< PICT RCL -> pict
  << PICT PURGE
     1 DEPTH 1 - 10 MIN DUP
     IF 8 >
     THEN #6 1
     ELSE #8 2 
     END -> rowht tsize
     << FOR I PICT #0 65 I rowht * - 2 ->LIST
          I ->STR ": " +
          I 3 + PICK ->STR +
          tsize ->GROB GOR
        NEXT { } PVIEW
        pict PICT STO
     >> 
  >> 
>>


  For those with a Serial Cable, the following is the directly downloadable
version of the routine. Simply strip away the rest of this file and set your
machine to ASCII transfer, translate code 3, and RECEIVE away:


%%HP: T(3)A(D)F(.);
\<< PICT RCL \-> pict
\<< PICT PURGE
1 DEPTH 1 - 10 MIN DUP
IF 8 >
THEN #6 1
ELSE #8 2
END \-> rowht tsize
\<< FOR I PICT #0 65 I rowht * - 2 \->LIST
        I \->STR ": " +
        I 3 + PICK \->STR +
        tsize \->GROB GOR
    NEXT { } PVIEW
    pict PICT STO
\>> \>> \>>


---------------------------------------------------------
Jake Schwartz  


From Jake-S@cup.portal.com Mon Apr 30 18:59:05 1990
From: Jake-S@cup.portal.com (Jake G Schwartz)
Newsgroups: comp.sys.handhelds
Subject: HP48 6-Level Stack Display
Date: 28 Apr 90 01:05:08 GMT
Organization: The Portal System (TM)


     An HP48 Six-Level Stack Display Using Vectored Enter
    ------------------------------------------------------

     The HP48SX vectored ENTER capability is useful when modifications
must be done immediately before or after a command line is processed.
Previous examples mentioned on Usenet include (1) the automatic conversion
of real numbers to binary integers (using <alpha>ENTER to add the # symbol
in front) and (2) simulating the TRACE mode for the HP82240 printer (by
having <beta>ENTER perform a PR1 or PRSTK after each keystroke which per-
forms an automatic ENTER).
     Here is a use for <beta>ENTER which overwrites the display status 
area with the values of stack levels 5 and 6 following each parsing of the 
command line.  (Having stack level one multi-line mode turned OFF guarantees
that all six levels will always be displayed.)  Enter the program below
and store it as <beta>ENTER (where <beta> is the right shifted B) in the
HOME directory; set flags -62 (USER mode) and -63; and at the end of each
keystroke which parses the command line the program will automatically
display the values of stack levels 5 and 6.

                                          Jake Schwartz
                                          135 Saxby Terr
                                          Cherry Hill NJ 08003
                                          609-751-1310   home
                                          609-866-6268   work


<beta>ENTER:
------------

%%HP: T(3)A(D)F(.);
\<< DROP                   @ drops the command line converted to string
"6:                   "    @ initial 21-character string for line 6
  IF DEPTH 7 \>=           @ if stack level 6 exists
  THEN 7 PICK \->STR       @    get it and convert to a string
  ELSE ""                  @    otherwise use a null string
  END 23 OVER SIZE         @ get size of object string
- 3 MAX SWAP REPL 1        @ position it right-justified in display string
DISP                       @ display in line one of LCD
"5:                   "    @ -- repeat
  IF DEPTH 6 \>=           @    the same
  THEN 6 PICK \->STR       @    process
  ELSE ""                  @    for
  END 23 OVER SIZE         @    stack
- 3 MAX SWAP REPL 2        @    level 5 --
DISP 1 FREEZE              @ and freeze the status area of the LCD
\>>

------------------------------------------------------------------------------
Hope this helps!

Jason Waterman
The University of Calgary
Calgary, Alberta, Canada
Email: waterman@engg.ucalgary.ca
------------------------------------------------------------------------------