[comp.sys.handhelds] <None>

John.Matthews@comp.vuw.ac.nz (John Matthews) (08/20/90)

RE: Article 1981 of comp.sys.handhelds:
Subject: Machine Code Version of Hexify
From: alonzo@microsoft.UUCP (Alonzo GARIEPY)
Date: 14 Aug 90 19:23:25 GMT
Reply-To: alonzo@microsoft.UUCP (Alonzo GARIEPY)
Organization: Microsoft Corp., Redmond WA

>I am posting this for Rick Grevelle, who doesn't have direct access
>to net news. 

>The following is a machine code version of HEXIFY.  It takes a string
>of hexadecimal digits and converts them into an object.

>This routine can be used as a replacement for the HEXIFY in my HP28S
>Processor Notes, or in conjunction with Rick's improved version of same.
>This posting is only for those who have some understanding of the 
>information in the notes.

>The code will also work on the HP48, with the minor modifications noted
>in the comments (changing the value of two object prologs and CHEXIFY if
>necessary).

>alonzo

>--------------------------------------------------------
>From: Rick Grevelle <uunet!tamuts.tamu.edu!n242df>
>Newsgroups: comp.sys.handhelds
>Subject: Machine Code Version of Hexify

>#00000: #143        		move.a	@d1,a	
>#00003: #132        		swap.a	a,d0 	
>#00006: #100        		move.w	a,r0 	
>#00009: #146        		move.a	@d0,c
>#0000c: #06         		push.a	c    	
>#0000e: #dd         		swap.a	b,c  	
>#00010: #10a        		move.w	c,r2 	
>#00013: #164        		add.a	#5,d0 	
>#00016: #142        		move.a	@d0,a	
>#00019: #d6         		move.a	a,c  	
>#0001b: #136        		swap.a	c,d0 	
>#0001e: #164        		add.a	#5,d0 	
>#00021: #c2         		add.a	a,c   	
>#00023: #da         		move.a	c,a  	
>#00025: #136        		swap.a	c,d0 	
>#00028: #819f2      		srb.a	c     	
>#0002d: #06         		push.a	c    	
>#0002f: #137        		swap.a	c,d1 	
>#00032: #109        		move.w	c,r1 	
>#00035: #34e4a20    		move.p5	#02a4e,c	; HP48: #02a2c
>#0003c: #8a527      		brne.a	b,c,abort	
>#00041: #1c5        		sub.a	#6,d1 	
>#00044: #4c6        		brcs	abort  	
>#00047: #133        		swap.a	a,d1 	
>#0004a: #dc         		swap.a	a,b  	
>#0004c:             	loop:	            	
>#0004c: #1c0        		sub.a	#1,d1 	
>#0004f: #181        		sub.a	#2,d0 	
>#00052: #14a        		move.b	@d0,a	
>#00055: #3114       		move.p2	#41,c	
>#00059: #9eed1      		brle.b	c,a,alpha	
>#0005e: #3103       		move.p2	#30,c	
>#00062: #b6a        		sub.b	c,a   	
>#00065: #4b4        		brcs	abort  	
>#00068: #3190       		move.p2	#09,c	
>#0006c: #9e624      		brlt.b	c,a,abort	
>#00071: #1510       		move.p	a,@d1	
>#00075: #6910       		jump.3	next
>#00079:             	alpha:	            	
>#00079: #b6a        		sub.b	c,a   	
>#0007c: #3150       		move.p2	#05,c	
>#00080: #9e6e2      		brlt.b	c,a,abort	
>#00085: #30a        		move.p1	#a,c	
>#00088: #a0a        		add.p	c,a   	
>#0008b: #1510       		move.p	a,@d1	
>#0008f: 		next:
>#0008f: #cd         		dec.a	b     	
>#00091: #5ab        		brcc	loop   	
>#00094:             	result:	            	
>#00094: #1c4        		sub.a	#5,d1 	
>#00097: #07         		pop.a	c     	
>#00099: #145        		move.a	c,@d1	
>#0009c: #1c4        		sub.a	#5,d1 	
>#0009f: #07         		pop.a	c     	
>#000a1: #145        		move.a	c,@d1	
>#000a4: #111        		move.w	r1,a 	
>#000a7: #133        		swap.a	a,d1 	
>#000aa: #141        		move.a	a,@d1	
>#000ad: #6900       		jump.3	exit 	
>#000b1:             	abort:	            	
>#000b1: #111        		move.w	r1,a 	
>#000b4: #133        		swap.a	a,d1 	
>#000b7:             	exit:	            	
>#000b7: #112        		move.w	r2,a 	
>#000ba: #dc         		swap.a	a,b  	
>#000bc: #110        		move.w	r0,a 	
>#000bf: #132        		swap.a	a,d0 	
>#000c2: #142        		move.a	@d0,a	
>#000c5: #164        		add.a	#5,d0 	
>#000c8: #808c       		jump.a	@a   	

-----
There is a bug in the above program, which causes it not to to behave
quite like Alonzo's Hexify program.
Bug: It does not handle Odd length strings.  In Alonzo's Hexify, the
Step size of 2, combined with the string SUB function, pads the string
out to the correct (even) length. Even length strings work fine, odd
strings corrupt the contained programs. Here is a slight fix to the
CHexify program to correct this.


>>NOTE: I've included a program, CHEXIFY, which will create a 
>>      version of HEXIFY that alleviates	the above caveats.  

>>The following program works only on the HP 28S.  It creates a program on 
>>the stack, which can then be stored in 'HEXIFY' and used to create any
>>further machine code programs.

Only the sub program and following offset (and the checksum) have been changed,
the rest is Ricks.

CHEXIFY[C343]
<<
    <<  DUP SIZE
        IF 2 MOD
        THEN "0"
        ELSE ""
        END + A
     >> 12
  # DD60641001231341h
  # 616316D241461A01h
  # 1602F918631AD2C4h
  # 25A802A4E4390173h
  # 10C1CD3316C45C17h 
  # 131DEE94113A4118h
  # 26E909134B4A6B30h
  # 0513A6B019601514h
  # C0151A0AA032E6E9h
  # 04C1541704C1BA5Dh
  # 0961413311115417h
  # 1011CD2113311110h
  # C80846124123h
48  STWS  #0h  OR  64  STWS
1  12  START
  # 3B82h  SYSEVAL
      NEXT 
  # 7195h  SYSEVAL
  # 44A4h  SYSEVAL
  # 7F77h  SYSEVAL
  # 3F41h  SYSEVAL
  # 3EEBh  SYSEVAL
                       >>


>If you would rather have HEXIFY produce a CODE object every time instead of
>requiring an object address argument then make these three changes:
>	
>	Note: the addresses that appear before a colon, below, are for
>              reference, and will change with these modifications.  They
>	      are not used except by the code itself.
>
>i)   Delete the instruction
>	#0000c: #06         		push.a	c    	
>
>ii)  Replace the instruction 
>	#0009f: #07         		pop.a	c     	
>     with 
>	#0009f: #3469C20 		move.p5  #02c96,c	; HP48: #02dcc
>
>iii) Adjust the following branch addresses by 5 nibbles
>
>	#0003c: #8a527      		brne.a	b,c,abort	
>	#00044: #4c6        		brcs	abort  	
>	#00065: #4b4        		brcs	abort  	
>	#0006c: #9e624      		brlt.b	c,a,abort	
>	#00080: #9e6e2      		brlt.b	c,a,abort	
>     to
>	#0003c: #8a577      		brne.a	b,c,abort	
>	#00044: #417        		brcs	abort  	
>	#00065: #405        		brcs	abort  	
>	#0006c: #9e674      		brlt.b	c,a,abort	
>	#00080: #9e633      		brlt.b	c,a,abort	
>
>These changes have to be reflected in the data of the CHEXIFY program.
>You can figure out where to make the modifications.
>
>Caveats
>-------
>i)    If level 1 does not contain a string the program simply aborts.
>
>ii)   Each character is checked only as it is processed by the code
>      loop.  If at any point the routine encounters invalid code, it 
>      aborts, leaving the unfinished result on the stack. 
>
>iii)  Never use this routine on a copy of a string called to the stack
>      that's stored in a variable without first making the stack copy
>      unique. (i.e.  "" + )
>
>iv)   Once the initial checking is complete, any errors will leave the
>      string only partially converted.
>
>Rick Grevelle
>uunet!tamuts.tamu.edu!n242df



John Matthews
tribble@comp.vuw.ac.nz
Victoria University of Wellington, New Zealand
(That's in the Southern Hemisphere)

HASTINGS@cc.utah.edu (08/28/90)

\exit

I find myself needing more ram.

gcw20877@uxa.cso.uiuc.edu (George Wang) (11/15/90)

In article <1990Nov14.184318.175@iowasp.physics.uiowa.edu> mjducey@rodan.acs.syr.edu (Matthew J. Ducey) writes:
>Subject:SPICE
>Message-ID: <1990Nov14.204158.23799@rodan.acs.syr.edu>
>Organization: Syracuse University, Syracuse, NY
>References: <1990Nov13.153331.16545@ugle.unit.no> <kbE7C1u00WBM83dksI@andrew.cmu.edu>
>Date: Wed, 14 Nov 90 20:41:58 GMT
>
>Don't know if this was asked before so deal with it.
>
>Does SPICE exist on the HP 48 level? I heard from a friend that there
>will be a card for the HP from an aftermaket company, true? 

Yes, and that company's name is SPARCOM and the cards are due
to be out any day now... You can get them from Educalc... Those
cards look really nasty.... They look like they'll handle
everything you could want from EE courses!

George


--
George Wang
University of Illinois at Urbana Champaign
(217) 332-4019
INTERNET: gcw20877@uxa.cso.uiuc.edu
UUCP: gargoyle!igloo!gwang

bson@rice-chex.ai.mit.edu (Jan Brittenson) (11/16/90)

In article <0471181703FF001A65@gacvx2.gac.edu>
   CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU writes:

 > my chip assembler and disassembler (which were very primitive!!!) were
 > very very slow and not too useful, and I gave up.

Oh, c'mon, don't give up!

Included here are two routines I wrote for the very same purpose.

   The first, GETINT, gets a 16-bit integer from a string object, byte
addressed, with an offset of #200h.

	GETINT
		2: chip-program.string
		1: address.short
	-->
		1: chip-opcode.short

   The second, CHID, takes a 16-bit integer and a 12-bit address, and
returns a string object containing the CHIP instruction.

	CHID
		2: chip-opcode.short
		1: address.short
	-->
		1: mnemonic.string

If the address is nonzero, it will be precede the mnemonic.

   Now for the caveat. CHID suffers from the same problem as CHIP-48:
it cannot (always) be called from a program. I haven't found out why,
but my guess is that allocating a string shifts local variables/loop
variables/return addresses, or something. I haven't had time to figure
out exactly what goes wrong and when, but would be quite happy if
someone did.

Both programs are ASAP style.

O  /
 \/
 /\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
O  \

;;+
;; GETINT - Get 16-bit integer from CHIP program string
;;
;; s.str byteaddr.short  -->  int.short
;;
;; bson@ai.mit.edu, Nov 4, 1990
;;
;;-

getshort=#6641
shortpush_a_rplret=#18d07
save_regs=#679b
restore_regs=#67d2
error_bad_arg_value=#18ca7

	data.b	'H'
	data.b	'P'
	data.b	'H'
	data.b	'P'
	data.b	'4'
	data.b	'8'
	data.b	'-'
	data.b	'D'
	data.a	#2dcc
begin:	data.a	end-begin

getint:
	call.a	getshort	; A=short arg
	swap.a	c,d1
	push.a	c
	swap.a	c,d1
	move.p5	#200,c

	sub.a	c,a		; Address less than #200
	brcs	error

	move.a	@d1,c		; C=string
	move.a	c,d1
	add.a	5,d1
	move.a	@d1,c		; Get length
	sub.a	5,c
	srb.a	c		; C=#chars
	dec.a	c
	brle.a	c,a,error	; Signal error if string too short

	add.a	5,d1		; D1 = string base
	swap.a	c,d1
	add.a	a,a
	add.a	a,c
	swap.a	c,d1		; D1 = data address

	clr.a	a
	move.b	@d1,a		; Get high byte
	sln.a	a
	sln.a	a
	add.a	2,d1
	move.b	@d1,a		; Get low byte

	pop.a	c
	move.a	c,d1		; Restore TOS
	add.a	5,d1
	inc.a	d
	call.a	save_regs
	jump.a	shortpush_a_rplret


; Signal error

error:
	pop.a	c
	move.a	c,d1		; Restore TOS
	add.a	5,d1
	inc.a	d
	jump.a	error_bad_arg_value
end:

O  /
 \/
 /\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
O  \

;;+
;; CHID -- Disassemble CHIP-48 instruction
;;
;;
;; bson@ai.mit.edu, Nov 4, 1990
;;
;;-

error_inv_def=#1104b
save_regs=#679b
restore_regs=#67d2
stralloc=#5b79
pushobj_a_rplret=#6ec9
getshort=#6641

	data.b	'H'
	data.b	'P'
	data.b	'H'
	data.b	'P'
	data.b	'4'
	data.b	'8'
	data.b	'-'
	data.b	'D'
	data.a	#2dcc
begin:	data.a	end-begin

chdi:
	call.3	ref
ref:
	call.a	getshort
	move.w	a,r3		; R3 = address

	call.a	getshort
	move.w	a,r2		; R2 = opcode
	call.a	save_regs

	move.p5	opcode_table,a
	pop.a	c
	add.a	c,a
	move.a	a,d0

; Look through table.

	move.w	r2,a
try_next:
	clr.a	b
	move.b	@d0,c
	move.b	c,b		; B=length
	brz.b	b,no_match	; End of table
	add.a	2,d0
	move.a	@d0,c		; C=mask
	and.a	a,c
	move.a	c,d		; D=opcode & mask
	add.a	5,d0
	move.a	@d0,c		; C=value
	breq.a	d,c,match	; Go decode if match
	swap.a	a,d0
	add.a	b,a		; Skip remainder
	swap.a	a,d0
	brcc	try_next	; Go for next

; We should never end up here. Signal suitable error.

no_match:
	clr.w	a
	move.w	a,r0
	move.w	a,r1
	move.w	a,r2
	move.w	a,r3
	call.a	restore_regs
	jump.a	error_inv_def	; "Invalid definition"

; A match has been made. Set things up for expansion.

match:
	add.a	5,d0
	clr.a	c
	move.b	@d0,c		; C.a=alloc size, chars
	add.a	2,d0
	swap.a	d0,a
	move.w	a,r1		; R1=def start
	swap.w	a,r3
	move.w	a,r3
	brz.a	a,noaddr	; No adjustment for addr field
	add.a	5,c		; Add 5 chars for addr field
noaddr:
	clrb	#a,st
	call.a	stralloc	; Allocate string
	swap.a	a,d0
	move.a	a,d1		; D1=string data addr
	swap.w	a,r1		; R1=string data addr, A=def addr
	move.a	a,d0		; D0=def addr

; Expand string from @d0 to @d1, count bytes in B.
; R2 contains the opcode.

	clr.a	b		; No bytes accumulated yet

; If addr is nonzero, prefix with space-addr-space

	swap.w	a,r3
	brz.a	a,expchar	; No addr - just opcode
	clr.a	c
	call.3	exp_space	; Space
	move.1	2,p		; Nibbles 0-2
	call.3	exp_hex_a
	clr.a	c
	call.3	exp_space

; Expand def

expchar:
	clr.a	c
	move.b	@d0,c
	add.a	2,d0
	move.a	c,d		; D=def char
	brz.b	d,expdone	; Terminate at NUL

	move.1	0,p
	move.p2	1,c
	breq.b	d,c,exp_nib_dec	; ^A=nib 0
	inc.b	c
	inc.1	p
	breq.b	d,c,exp_nib_dec	; ^B=nib 1
	inc.b	c
	inc.1	p
	breq.b	d,c,exp_nib_dec	; ^C=nib 2
	inc.b	c
	breq.b	d,c,exp_nib0_p	; ^D=nib 0-2
	inc.b	c
	dec.1	p
	breq.b	d,c,exp_nib0_p	; ^E=nib 0-1
	inc.b	c
	inc.1	p
	inc.1	p
	breq.b	d,c,exp_nib0_p	; ^F=nib 0-3

; Default - simply add D.b

selfins:
	move.b	d,c
	call.3	exp_c		; Add C.b to buffer
	brnz.a	b,expchar	; Next char

; Expand R2.p, in decimal

exp_nib_dec:
	move.w	r2,c		; C=opcode
	call.3	exp_nib_c	; Add C.p to output buffer
	brnz.a	b,expchar

; Expand R2.wp, in hex

exp_nib0_p:
	move.w	r2,a
	call.3	exp_hex_a	; Expand a.wp
	brnz.a	b,expchar	; Expand next char of def

; Expansion done

expdone:
	swap.w	a,r1
	move.a	a,d0		; D0 = string addr
	sub.a	5,d0
	move.a	b,c
	add.a	c,c		; Chars to nibbles
	add.a	5,c		; Add 5 for length word
	move.a	c,@d0		; Set length
	sub.a	5,d0
	swap.a	a,d0
	move.w	a,r0
	move.1	0,p
	call.a	restore_regs
	swap.w	r0,a
	clrb	#a,st
	clr.w	c
	move.w	c,r0
	move.w	c,r1
	move.w	c,r2
	move.w	c,r3
	jump.a	pushobj_a_rplret


; Add space to output buffer

exp_space:
	move.p2	' ',c

; Add C.b to output buffer

exp_c:
	move.b	c,@d1
	add.a	2,d1
	inc.a	b
	ret

; Add C.p to output buffer, in decimal

exp_nib_c:
	breq.1	p,0,exp_nib_shfx
exp_nib_shf:			; Shift so we have the nibble in A.1
	srn.a	c
	dec.1	p
	brne.1	p,0,exp_nib_shf
exp_nib_shfx:
	clr.a	a
	move.p1	#f,a
	and.a	a,c		; Mask low nibble
	move.p1	10,a
	brlt.a	c,a,exp_digit	; < 10
	push.a	c
	move.p2	'1',c		; Prefix with '1'
	call.3	exp_c
	pop.a	c
	sub.a	a,c		; Reduce digit by 10
exp_digit:
	move.p2	'0',a
	add.b	a,c
	brnz.a	c,exp_c		; Add C.b and return

; Expand A.wp, in hex

exp_hex_a:
	clr.a	c
	add.a	p+1,c
	move.a	c,d		; D=#nibbles
	add.a	c,b		; Update char counter
expshf:
	rrn.w	a		; Rot A right P+1 nibbles
	dec.a	d
	brnz.a	d,expshf
expshfx:
	move.a	c,d		; D=#nibbles
	move.1	0,p

exp_next_hex:
	clr.a	a
	rln.w	a		; Move highest nibble into C.1
	clr.a	c
	move.p1	#a,c
	brgt.a	c,a,exp_hexdig
	move.p1	7,c
	add.b	c,a
exp_hexdig:
	move.p2	'0',c
	add.b	c,a
	move.b	a,@d1		; Add to string
	add.a	2,d1
	dec.a	d
	brnz.b	d,exp_next_hex
	ret

; Opcode definitions

dummy:
opcode_table=dummy-ref

	data.b	19
	data.a	#ffff
	data.a	#e0
	data.b	6
	data.b	#43
	data.b	#4c
	data.b	#4c
	data.b	#43
	data.b	#44
	data.b	0

	data.b	21
	data.a	#ffff
	data.a	#ee
	data.b	7
	data.b	#52
	data.b	#45
	data.b	#54
	data.b	#55
	data.b	#52
	data.b	#4e
	data.b	0

	data.b	23
	data.a	#f000
	data.a	#0
	data.b	11
	data.b	#4d
	data.b	#43
	data.b	#41
	data.b	#4c
	data.b	#4c
	data.b	#20
	data.b	#4
	data.b	0

	data.b	21
	data.a	#f000
	data.a	#1000
	data.b	10
	data.b	#4a
	data.b	#55
	data.b	#4d
	data.b	#50
	data.b	#20
	data.b	#4
	data.b	0

	data.b	21
	data.a	#f000
	data.a	#2000
	data.b	10
	data.b	#43
	data.b	#41
	data.b	#4c
	data.b	#4c
	data.b	#20
	data.b	#4
	data.b	0

	data.b	33
	data.a	#f000
	data.a	#3000
	data.b	16
	data.b	#53
	data.b	#4b
	data.b	#49
	data.b	#50
	data.b	#20
	data.b	#49
	data.b	#46
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	#3d
	data.b	#5
	data.b	0

	data.b	33
	data.a	#f000
	data.a	#4000
	data.b	16
	data.b	#53
	data.b	#4b
	data.b	#49
	data.b	#50
	data.b	#20
	data.b	#49
	data.b	#46
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	#8b
	data.b	#5
	data.b	0

	data.b	35
	data.a	#f00f
	data.a	#5000
	data.b	17
	data.b	#53
	data.b	#4b
	data.b	#49
	data.b	#50
	data.b	#20
	data.b	#49
	data.b	#46
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	#3d
	data.b	#56
	data.b	#2
	data.b	0

	data.b	17
	data.a	#f000
	data.a	#6000
	data.b	8
	data.b	#56
	data.b	#3
	data.b	#8e
	data.b	#5
	data.b	0

	data.b	19
	data.a	#f000
	data.a	#7000
	data.b	9
	data.b	#56
	data.b	#3
	data.b	#2b
	data.b	#8e
	data.b	#5
	data.b	0

	data.b	19
	data.a	#f00f
	data.a	#8000
	data.b	9
	data.b	#56
	data.b	#3
	data.b	#8e
	data.b	#56
	data.b	#2
	data.b	0

	data.b	21
	data.a	#f00f
	data.a	#8001
	data.b	10
	data.b	#56
	data.b	#3
	data.b	#7c
	data.b	#8e
	data.b	#56
	data.b	#2
	data.b	0

	data.b	21
	data.a	#f00f
	data.a	#8002
	data.b	10
	data.b	#56
	data.b	#3
	data.b	#26
	data.b	#8e
	data.b	#56
	data.b	#2
	data.b	0

	data.b	21
	data.a	#f00f
	data.a	#8003
	data.b	10
	data.b	#56
	data.b	#3
	data.b	#5e
	data.b	#8e
	data.b	#56
	data.b	#2
	data.b	0

	data.b	21
	data.a	#f00f
	data.a	#8004
	data.b	10
	data.b	#56
	data.b	#3
	data.b	#2b
	data.b	#8e
	data.b	#56
	data.b	#2
	data.b	0

	data.b	21
	data.a	#f00f
	data.a	#8005
	data.b	10
	data.b	#56
	data.b	#3
	data.b	#2d
	data.b	#8e
	data.b	#56
	data.b	#2
	data.b	0

	data.b	19
	data.a	#f00f
	data.a	#8006
	data.b	8
	data.b	#56
	data.b	#3
	data.b	#bb
	data.b	#8e
	data.b	#31
	data.b	0

	data.b	23
	data.a	#f00f
	data.a	#8007
	data.b	11
	data.b	#56
	data.b	#3
	data.b	#2d
	data.b	#8e
	data.b	#2d
	data.b	#56
	data.b	#2
	data.b	0

	data.b	19
	data.a	#f00f
	data.a	#800e
	data.b	8
	data.b	#56
	data.b	#3
	data.b	#ab
	data.b	#8e
	data.b	#31
	data.b	0

	data.b	35
	data.a	#f00f
	data.a	#9000
	data.b	17
	data.b	#53
	data.b	#4b
	data.b	#49
	data.b	#50
	data.b	#20
	data.b	#49
	data.b	#46
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	#8b
	data.b	#56
	data.b	#2
	data.b	0

	data.b	15
	data.a	#f000
	data.a	#a000
	data.b	7
	data.b	#49
	data.b	#8e
	data.b	#4
	data.b	0

	data.b	27
	data.a	#f000
	data.a	#b000
	data.b	13
	data.b	#4a
	data.b	#55
	data.b	#4d
	data.b	#50
	data.b	#20
	data.b	#4
	data.b	#2b
	data.b	#56
	data.b	#30
	data.b	0

	data.b	27
	data.a	#f000
	data.a	#c000
	data.b	14
	data.b	#56
	data.b	#3
	data.b	#8e
	data.b	#52
	data.b	#41
	data.b	#4e
	data.b	#44
	data.b	#26
	data.b	#5
	data.b	0

	data.b	35
	data.a	#f000
	data.a	#d000
	data.b	18
	data.b	#53
	data.b	#48
	data.b	#4f
	data.b	#57
	data.b	#20
	data.b	#1
	data.b	#28
	data.b	#56
	data.b	#3
	data.b	#2c
	data.b	#56
	data.b	#2
	data.b	#29
	data.b	0

	data.b	37
	data.a	#f0ff
	data.a	#e09e
	data.b	17
	data.b	#53
	data.b	#4b
	data.b	#49
	data.b	#50
	data.b	#20
	data.b	#49
	data.b	#46
	data.b	#20
	data.b	#4b
	data.b	#45
	data.b	#59
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	0

	data.b	39
	data.a	#f0ff
	data.a	#e0a1
	data.b	18
	data.b	#53
	data.b	#4b
	data.b	#49
	data.b	#50
	data.b	#20
	data.b	#49
	data.b	#46
	data.b	#20
	data.b	#21
	data.b	#4b
	data.b	#45
	data.b	#59
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	0

	data.b	25
	data.a	#f0ff
	data.a	#f007
	data.b	11
	data.b	#56
	data.b	#3
	data.b	#8e
	data.b	#44
	data.b	#45
	data.b	#4c
	data.b	#41
	data.b	#59
	data.b	0

	data.b	23
	data.a	#f0ff
	data.a	#f00a
	data.b	10
	data.b	#57
	data.b	#41
	data.b	#49
	data.b	#54
	data.b	#20
	data.b	#56
	data.b	#3
	data.b	0

	data.b	25
	data.a	#f0ff
	data.a	#f015
	data.b	11
	data.b	#44
	data.b	#45
	data.b	#4c
	data.b	#41
	data.b	#59
	data.b	#8e
	data.b	#56
	data.b	#3
	data.b	0

	data.b	25
	data.a	#f0ff
	data.a	#f018
	data.b	11
	data.b	#53
	data.b	#4f
	data.b	#55
	data.b	#4e
	data.b	#44
	data.b	#8e
	data.b	#56
	data.b	#3
	data.b	0

	data.b	19
	data.a	#f0ff
	data.a	#f01e
	data.b	8
	data.b	#49
	data.b	#2b
	data.b	#8e
	data.b	#56
	data.b	#3
	data.b	0

	data.b	33
	data.a	#f0ff
	data.a	#f029
	data.b	15
	data.b	#49
	data.b	#8e
	data.b	#53
	data.b	#50
	data.b	#52
	data.b	#49
	data.b	#54
	data.b	#45
	data.b	#28
	data.b	#56
	data.b	#3
	data.b	#29
	data.b	0

	data.b	33
	data.a	#f0ff
	data.a	#f033
	data.b	15
	data.b	#4d
	data.b	#28
	data.b	#49
	data.b	#29
	data.b	#8e
	data.b	#42
	data.b	#43
	data.b	#44
	data.b	#28
	data.b	#56
	data.b	#3
	data.b	#29
	data.b	0

	data.b	29
	data.a	#f0ff
	data.a	#f055
	data.b	13
	data.b	#4d
	data.b	#28
	data.b	#49
	data.b	#29
	data.b	#8e
	data.b	#56
	data.b	#30
	data.b	#1f
	data.b	#56
	data.b	#3
	data.b	0

	data.b	29
	data.a	#f0ff
	data.a	#f065
	data.b	13
	data.b	#56
	data.b	#30
	data.b	#1f
	data.b	#56
	data.b	#3
	data.b	#8e
	data.b	#4d
	data.b	#28
	data.b	#49
	data.b	#29
	data.b	0

	data.b	21
	data.a	#0
	data.a	#0
	data.b	11
	data.b	#44
	data.b	#41
	data.b	#54
	data.b	#41
	data.b	#20
	data.b	#6
	data.b	0

	data.b	0
end:

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (11/16/90)

   Hi everyone,
   I first want to say to the newsgroup--
      I'm sorry but I do not know if my message produces a replyable
      address! Let me know if it doesn't and if I really then have to
      send all my messages to the postmaster I will.
   Secondly to the guy who wrote BLINKY--
      Excellent.
   Thirdly--
      A while ago I tried to write an asteroids game in CHIP48. I got as far
      as a rotating ship that moved about in amongst 4 asteroids, but my
      chip assembler and disassembler (which were very primitive!!!) were
      very very slow and not too useful, and I gave up. I have a few
      questions.....

          i) I find moving the sprite to the left is quite difficult
             since there is no equivalent instruction to Vx=Vx-KK only
             Vx=Vx+KK. Am I missing something fundamental? Does anyone have
             a nice little routine or algorhythm (spelling?) to explain
             a simple way to do it.
        ii)  Can the string that contains the game be any length, or is
             it REALLY limited to 4K.
       iii)  Finally, I have not got and have never been able to find
             the thing called an 'unzipper' so all the stuff in vega.hut.fi
             is unaccessible (spelling again???) by me. I would like the
             unzipper or an unzipped turbo pascal chip compiler, thanks.
        iv)  Finally Finally, here are a couple of small routines, based
             on Alonzo Gariepy's HEXIFY routine (full credit to him), that
             take a string on level one and either converts it from a string
             of CHIP commands to a string of bytes and vica-versa.

->CHIP              String_of_commands -- String_of_bytes
CHK [3655d]
<<
   "" SWAP 1 OVER SIZE
        FOR j
           "#" OVER j j 1 + SUB +
           "h" + OBJ-> B->R CHR
           ROT SWAP + SWAP
        2 STEP
      DROP
>>

CHIP->         String_of_bytes -- String_of_commands
CHK [18750d]
<<
   HEX
   "" SWAP 1 OVER SIZE
       FOR j
         DUP j j SUB NUM R->B
         ->STR DUP SIZE 1 - 3
         SWAP SUB
            IF DUP SIZE 1 == THEN
               "0" SWAP +
            END
          ROT SWAP + SWAP
        NEXT
     DROP
>>

    Sorry I didn't download them but I'm not sitting at the right machine
    anyway they are not very long, and I sometimes feel very guilty
    (you know with the work ethic and everything) about not having
    to type in the programs people post, but I also feel very thankful.
    Anything big I send I promise to download....

    Finally Finally Finally, I tried to get the file hp48sx.wks from
    vega.hut.fi but it also appeared to be in a funny format (even
    though it didn't have a .zip extension, any clues ?



         Thanks

                Conrad

mjducey@rodan.acs.syr.edu (Matthew J. Ducey) (11/17/90)

Subject:SPICE
Message-ID: <1990Nov14.204158.23799@rodan.acs.syr.edu>
Organization: Syracuse University, Syracuse, NY
References: <1990Nov13.153331.16545@ugle.unit.no> <kbE7C1u00WBM83dksI@andrew.cmu.edu>
Date: Wed, 14 Nov 90 20:41:58 GMT

Don't know if this was asked before so deal with it.

Does SPICE exist on the HP 48 level? I heard from a friend that there
will be a card for the HP from an aftermaket company, true? 

-- 
 But I still like my ST...                            GEnie     M.DUCEY
 SOCEUR (A)                                         Bitnet    mjducey@suvm
 "But Sgt. Airborne, look how high we are!"       mjducey@rodan.acs.syr.edu
                       Anyone have/use TALK type 4.2?

jrl%images1.waterloo.ncr.com@RELAY.CS.NET (11/17/90)

In article <0471181703FF001A65@gacvx2.gac.edu> you write:
..
>          i) I find moving the sprite to the left is quite difficult
>             since there is no equivalent instruction to Vx=Vx-KK only
>             Vx=Vx+KK. Am I missing something fundamental? Does anyone have
>             a nice little routine or algorhythm (spelling?) to explain
>             a simple way to do it.
..

I haven't played with CHIP so I don't know whether this will apply,
but...

I'm thinking of Vx as position, not velocity. Is that correct?

If it's position then a move of KK to the left on a display can also be
taken as a move to the right by an amount that is KK unit smaller than
the width of the screen.  With that in mind Vx=Vx-kk can be taken as
Vx=Vx+(width-kk).

-- 
john.Latala@Waterloo.NCR.COM

gt7200a@prism.gatech.edu (11/21/90)

UNSUBSCRIBE HANDHELDS Robert Cheng

TNA32@CCVAX.IASTATE.EDU (FRINGE) (11/26/90)

unsubscribe handhelds Mike Pittelkow

U756@UNB.CA (U756000) (11/27/90)

SUBSCRIBE  HANDHELDS  GEOGE YOUSSEF

U756@UNB.CA (U756000) (11/28/90)

SUBSCRIBE   HANDHELDS  GEORGE YOUSSEF

mat431010110@stat.appstate.edu (11/29/90)

I own a 28s now, and am considering getting a 48sx around the beginning of the
year, but I have one question before I buy - is symbolic integration on the 48
essentially the same as on the 28, or can it integrate more than just
polynomials.  Also, is there an ftp site that has info about different rom
versions on the 48 from A to E.

TRRBRJL@UQTR.UQuebec.CA (Jean-Luc Brousseau) (12/02/90)

HELP

barefoot@ecn.purdue.edu (Jeffrey D Barefoot) (12/07/90)

SIGNOFF HANDHELDS

ds@dodger.ATT.COM (Doug Sturim) (12/07/90)

UNSUBSCRIBE  HANDHELDS

V078JXAG@ubvmsc.cc.buffalo.edu (REALLY TODD NOW) (12/07/90)

UNSUBSCRIBE HANDHELDS Todd Carrozzi

slwt7@cc.usu.edu (12/09/90)

Does anyone have the documentation to the symbolic matrix solving
program?  If so could you E-mail it to me.  It would be greatly appreciated
because I have to solve a lot of symbolic matices and I have the program
i just don't know how to use it!

Thanks,

Brian Wallis
Department of Engineering
Utah State

U5513172@NMSUVM1.BITNET (TOM BACA 523-6307) (12/14/90)

Hello all,
 
     I notice every once in a while some mention of "downloading programs"
on this NET.  I have had my 48SX for about a month and am going to either
buy the IBM interface cable or attempt to fashion one myself in the very
near future.  Unfortunately, I have no idea where to look for downloadable
programs.  Any help or suggestions would be greatly appreciated.
 
Thanks!
 
Thomas Baca
New Mexico State University

@vms3.macc.wisc.edu:KAUFMAN@LUCI.DecNet (KAUFMAN) (12/16/90)

I'm looking for information on the subject of double-precision arithmetic on
the HP-28S. In Eric Toonen's list of SYSEVAL numbers, some mention of
double-precision numbers was made, and now my curiosity is piqued. Does the 28S
have double precision capability, and if so, what operations are supported. I
realize one would need to write ML routines to do the dirty work, and that the
display surely cannot handle them, but does anyone have any info on this?

							TheSeeker

TRRBRJL@UQTR.UQuebec.CA (Jean-Luc Brousseau) (12/30/90)

Could you please sign me off that damn list!!!
I don't understand how I you can send me 30 messages a day and when I asked
  to sign off (unsubscribe) the mailserver tell me he don't know my address.
Please SIGN ME OFF!!!

CW%APG.PH.UCL.AC.UK@pucc.princeton.edu (01/07/91)

 Hi again,

     Over my Christmas Holidays (thats vacation for the Americans :-) ) I
  poked around alot inside my 48SX internals with a very sharp stick
  (The memory scanner (WOW very useful)) and lo and behold I come back
  to work and read the bulletins and theres all the sort of stuff I've
  been looking into, explained nicely for me and many of my questions
  answered. Derek deserves a slap on the back (nicely of course).

  I wish now to add a few amateur bits to everything else.

  (all this was done on a version D !!)

   If you store an array in the top of memory (i.e. the first
   variable in the home directory) and look at it in the memory scanner
   you see this.....


        8e920     Header for array
        .....     5 nybbles for length (inc. these nybbles)
        33920     header for type of object in array (in this case real)****
        .....     5 nybbles for number of rows
        .....     5 nybbles for number of columns


        And this is followed by the actual data in the array (without
    the usual header (i.e. you just get the number in the case of a real)

       eg

     [ 1 2 3 ] looks like

         8e920
         44000
         33920
         10000
         30000
         0000000000000010
         0000000000000020
         0000000000000030

     (I hope that comes out right when transmitted).

     Anyway why am I saying all this? Well if you put 55920 instead of
     33920 and look at the object on the stack you get Array of Long Real
     Of course the data following this header is not in the form of long
     reals but it could be! You can actually put any prolog header in place
     of the 33920 and get the following


               Array of Long Real
               Array of String
               Array of Long Complex
               Array of Code
               Array of Character
               Array of Array          !!!!!!!!!
               Array of Linked array


       etc....etc....etc

      You only need to organize the data after the whole array header
      into the specified form and voila nice new data types.

      Unfortunately not so simple :-( . Any attempt to extract
      an element from an array that is not real seems to results in a complex
      number being extracted (if you can actually do anything with the
      array atall). So I let this information out for further
      investigation........( I've tried uing lower level RPL calls
      but they all seem to assume that the array will contain numbers.)

       Wouldn't it be useful to have arrays of strings or dare I say
       Algebraic arrays (which you can of course get on the stack by
       putting 8ba20 instead of 33920 in the header)?


      one final question. what does the code at #5331h do ? It seems to
      be quite important!


         Conrad


      Disclaimer: Do not repeat any of the above actions ever! Never
                  do it. I warned you.

LHARRIS@CLEMSON.BITNET (01/07/91)

unsubscribe

WERNTZ@FORDMURH.BITNET (Ted Werntz) (01/13/91)

send/list handhelds

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (01/22/91)

    Howdy,

      Just a quicky, but has anybody made any progress in the
    area of software interrupts, or are all the interrupts hard-wired
    in? Also could anybody explain briefly how user input is converted
    into numbers on the stack? Does anybody know?


             conrad

   P.S.  When I said numbers on the stack, I actually meant any object...

   P.P.s. This refers to the HP48SX.

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (01/22/91)

     Hi everybody,
       This message contains three bits ,i) an apology ii) an explanation
     iii) a couple of routines and iv) a thankyou, sorry this massage
     contains four bits,i) an apology ii) an explanation iii) a couple of
     routines and iv) a thankyou oh and v), ah damn it, start again, this
     massage contains five bits, i) an apology ii) an explanation iii) a couple
     of routines,iv) a thankyou and v) an apology for being so silly at the
     beginning of this posting.

     i) I'm sorry I can not put a subject header on my posting because
        of the software we are using at my end (its hard enough to actually
        post this). So for the man who wants to know what this is for (I
        actually think its a very reasonable request) this posting is
        for

               HP48SX (the routines were written on a version D machine
                       please let me know if they fail on other versions).

     ii) It appears that (sorry more waffle) for a while now I have been
         posting my messages to the wrong place, and not everybody (infact
         not many people atall I think) have been receiving my messages.
         I am therefore posting again my two most recent routines. I
         apologise to anyone receiving these once more, but I'd like
         them to get onto c.s.h.... Thankyou to Dan Boehlke for informing
         me of my misdirection and sending back my mail so I can
         reduce the amount of retyping. It actually means that I have
         tidied up the presentation a bit. (that the thankyou otu of the way
         so no part iv) !!)

     iii) In the latest  edition of DATAFILE (the journal of the Handheld
          and Portable Computer Club) there was an excellent article
          by Stephen J. Thomas, which inspired me to write these routines for
          the HP48.
          The begin and end program markers (<< and >>) are not infact
          necessary on a completed program that does not need to be edited.
          They act as markers to tell the calculator not to execute
          commands as they are entered but rather save them until
          the whole lot within the markers is used as a program.


          e.g. If you have an empty stack and press + you get
                + error: too few arguaments. However if you press
               'left-shift' <<>> + ENTER you get the program << + >>
               on the first level of the stack. The <<>> have prevented
               the + from being executed immediately. The important thing
               is that the fact that the + is in a program is not
               due to it being surrounded by the <<>> but that the object
               has a prolog header 02d9dh which means it is a program (type
               8). If you use ->ASC on << + >> you get

               "D9D20E163276BA193632B21304710"

               Which if unthreaded becomes,

               02D9D      PROGRAM BEGIN (This makes it type 8)
               2361E      <<
               1AB67      +
               23639      >>
               0312B      END MARKER (In this case end program)
               0147       Checksum

               Amazingly enough this is equivalent to

               02D9D      PROGRAM BEGIN
               1AB67      +
               0312B      END
               FFB5       Checksum

               Differing only in the fact that you can not edit it
             (without those markers when you finish the edit the calculator
              will try to execute the commands immediately) and it takes
              5 less bytes. Oh and also on the stack you would no longer
              see the <<>>. Try

              "D9D2076BA1B21305BFF"  ASC->

              you get

              1:              +

              If you do TYPE you get 8 which shows it is considered
              a program. (Note if you do $ +  OBJ-> the + on the
              stack returns type 18 which means it is considered
              as a built in command)

        What this all means is that once a program is finished
        you can remove the <<>> around it and save five bytes. I know
        this is not alot but used in conjuction with Joseph Horn's
        PACK routine, it just adds that little extra saving. One day
        you might be desparate for memory and stripping all the <<>>'s
        from your programs just might save the day.... Any way
        I now give a routine, one called STRIP and , aah I give
        two routines (;-)) one called STRIP which removes the <<>>'s
        from around any program in level 1 of the stack. And one called
        DRESS which puts the <<>>'s back on a program object in level 1:
        just incase you want to edit it later. STRIP is very small small
        (17.5 bytes) but unstrip is a bit bigger (49), can anybody make it
        smaller ( I found it was difficult to get the << >> separately on the
        stack).


       PROGRAM: STRIP
       ACTION: 1: Program with <<>> delimiters -> 1: Program without
                                                     <<>> delimiters

       eg

       \<< SIN +  \>>     STRIP

     will produce

           SIN +


     ROUTINE:

         <<
               #54afh SYSEVAL               @Explode composite object
               #3e4eh SYSEVAL               @Subtract two from SB at level 1
               #60f9bh SYSEVAL              @Drop level 2 object
               #5445h SYSEVAL               @Build program
               #60f9bh SYSEVAL              @Drop level 2 object
         >>

      Check: 5230h

      In this form it is editible but takes up 87.5 bytes.

         Type in the above routine and store it in a variable called
      STRIP. The do 'STRIP' RCL PACK STRIP 'STRIP' STO. STRIP will now
      look like (pack is Joseph Horns routine)

                    External External
                    External <2d9dh>
                    External External




PROGRAM: UNSTRIP
ACTION: Program without <<>> delims -> Program with <<>> delims

        e.g.   1:         SIN +
       becomes
               1:      << SIN + >>


    <<
         #54afh SYSEVAL
         #3e2dh SYSEVAL
         <<   >>                          @empty program delimiters in
                                           side program.
         #54afh SYSEVAL
         #3244h SYSEVAL
         #3223h SYSEVAL
         #611feh SYSEVAL
         #3defh SYSEVAL
         #339eh SYSEVAL
         #3223h SYSEVAL
         #5445h SYSEVAL
     >>


     This does the reverse of the stripper i.e.

          an unstripped program such as

          SIN COS +

          becomes

          << SIN COS + >>

    snd you can then edit this normally and then strip it again.

    in this form it takes 189 bytes and has checksum #9a56h (seeing as
theres
    a lot of sysevals it seems sensible to give this). If you use
    J.K.Horns Pack routine and my strip routine it reduces to 54 bytes
    and #7200h as its checksum.

         WARNING: THESE ROUTINES DO NO ERROR CHECKING
                  THEY BEHAVE ERRATICALLY WHEN ANYTHING
                  OTHER THAN A PROGRAM IS ON LEVEL 1 OF THE
                  STACK.

         DISCLAIMER: Anything that happens as a result of these
                     routines is not my responsibility.


 iv) Another thankyou. Thankyou to the people who have so bravely
     laid down the memory of their calculators in the search for the lost
     entry point.

  v) Sorry for being so silly at the beginning of this posting.

      Regards and enjoy and explore

      Conrad winchester.

akcs.joehorn@hpcvbbs.UUCP (Joseph K. Horn) (01/23/91)

Conrad: Don't apologize. Anything that makes me laugh that hard is worth
the long-distance phone bill!

Everybody: Conrad implies that my PACK routine (posted eariler) can cause
disaster if run on anything other than a program object.  I doubt it.  It
seems to leave all objects quite unaltered, unless they are composite
objects containing 1 to 5-digit long binary integers immediately followed
by SYSEVALs, in which case those (and those only) get PACKed.  So don't
worry about pressing it by mistake and tanking your RAM.   [-jkh-]

ds@dodger.ATT.COM (Doug Sturim) (01/24/91)

UNSUBSCRIBE  HANDHELDS Doug Sturim

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (01/24/91)

***48SX***48SX***48SX***48SX***48SX***48SX***48SX***48SX***48SX***48SX***
Everybody: When I said that the routines were not too safe I meant that
my routines (STRIP and DRESS) do no error checking, and will cause problems
if given the wrong arguaments. The routine PACK by Joseph Horn seems to be
very robust and safe. Sorry Joseph.

   Conrad

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/02/91)

HP48sx***HP48sx***HP48sx***HP48sx***HP48sx

     Try 3_V multiplied by 5_A you get 15_V*A right!
     Then type [orange/yellowy arrow] W and you get 15_W!!!!

      Conrad

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/02/91)

HP48sx*******

    Has anybody noticed how the weight of the calculator increases the
    more you fill up the memory? Does anybody know what the weight of
    a full memory address is? I'm a bit worried that if I buy a 128K
    RAM card and fill it with programs I won't be able to lift it
    anymore. Has anybody had experience of this?


     Conrad

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/04/91)

HP48SX********

   Hi,

      a little bit of info for all U.K. users......

     I just spoke to Jo Richardson of calculator support, and
     found that upgrades of any version from A-D to E will be done.
     Version E's are not yet available in Engalnd but if you write
     to Jo (address follows) with your name, address, telephone number
     and serial number of you HP48sx then when they are available she
     will let you know, and you can send in your calculator for an upgrade.

     To those who argue about such things: I am upgrading because the
     upgrade is avaialable and it is free, and why not ???? (I expect
     at least three million answers to this rhetorical question, you
     know the sort of thing

      In posting blah blah, Conrad writes....

      >why not ????

      I'll tell you why not..........blah blah..... shouldn't get
      an upgrade.......I've had a bad day........I love my calculator
      how could i possibly change it for another.........Th currency in
      Greece means that a static shock to my forehead could produce an
      unalterable change to the configuration of my brain cells and besides
      H.P. are wonderful and the sun shines out of their.......


                              :-)
       )  (there you are Gary I closed it!

        Enough of this early morning banter, I almost forgot to
     post the address


             Jo Richardson
              Calculator Services,
               H.P.Ltd
                Eskdale Rd
                 Winnersh triangle
                  Wokingham
                   RG11 5DZ.

          Conrad.


      P.S. Could somebody please let me know if this gets to c.s.h. as
           I really can't tell. I only need reassuring this once.

akcs.dnickel@hpcvbbs.UUCP (Derek S. Nickel) (02/05/91)

Conrad,

This is known as Information Overload.  As the amount of free RAM
approches zero, the weight of the '48 approches infinity.  My suggestion
is that you get rid of the RAM card before its too late!  I have a free
disposal service that can handle this problem.  Just send me your RAM
card and Everything Will Be OK...  Trust Me.

        Derek S. Nickel

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/06/91)

HP48sx****************


     Help Please.....

     I have ftp'd Star-1.04.1.tar.Z from trix.ai.mit.edi, struggled with
     learning about tar and uncompress, had to have my memory allocation
     increases by many orders of magnitude by being very nice to the people
     that run the unix system I am using, because the uncompresse file is
     very large. BUT STILL WHEN star-1.04.1.tar REACHES A SIZE OF 8.511264
     MegaBytes I GET THE ERROR MESSAGE 'corrupt input'.

       Help. Any suggestions. Is the copy at trix.ai.mit.edu corrupt?

       Is there something that somebody who knows absolutely nothing about
       UNIX, C, compress etc..... might not know to do when uncompressing
       the file? Please let me know.

bson@fruit-and-fibre.ai.mit.edu (Jan Brittenson) (02/06/91)

   I apologize for bothering everyone with this, but twice I tried
e-mail - twice it bounced.


In a posting of [5 Feb 91 16:21:31 GMT]
   CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU writes:

 > I managed to uncompress star-1.04.1.tar.Z . My original transfer was
 > not in binary mode and this caused problems!!!  Now I have it on my PC
 > but I can't compile it.

Unpack it using tar (in a separate directory, on your Unix system):


	   tar xvf star-1.04.1.tar


   Then transfer the files in the directory to your PC, using floppies
or whatever. You don't have to compile it on the PC - use STAR.EXE as
provided. If you *do* want to use (or look at) the files included, you
have to replace all occurences of LF with CR LF.

You can also read (or print, from your Unix system) the README file.

Good luck!

						-- Jan Brittenson
						   bson@ai.mit.edu

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/08/91)

HP48sx**********


       Hello,

   I am reminded of, I think it is, Jan Brittenson's signature,

       "Engage brain before engaging mouth"

   or words to a very similar effect. Thankyou for helping with
   my star1.04 problem. It turns out I had not set binary mode
   for the initial ftp across the Atlantic. I now have a version
   of star1.04 working on my PC, and I think its very sexy!! Now I
   have to learn to use it properly and do something useful with
   it. Thanks to the people that produced and distributes it and those
   who helped with my problem.
       I wish to express my  thoughts about all this ROM copying business.
   As usual there are two sides to every coin (I've certainly never seen
   a coin with one side). The copiers generally like things to be RAM based
   and to be able to make backups, a perfectly valid point of view, and
   to anti-copiers are scared of piracy, also a very valid point of view
   (I don't think that everybody who copies a ROM wants to pirate it but#
   I certainly think that in this wonderful world of ours, there will be one or
   two somewhere who will use it in that way!), and piracy was a serious threat
   to home computing a while back. What we have to realise is that this
 calculator
   has only been around for just over a year, and I don't think a machine that
   has been capable of copying and downloading a ROM card has ever existed
   before, or at least not been owned by so many clever delving enthusiasts.
   In the home computing market (an area I worked in for a while when I was
   a teenager) I can remember software piracy being considered a very serious
   threat when it first started becoming prevelant, and a lot of different
   protection devices being deployed, NONE OF WHICH were 100% successful.
   However quite a few years on the software market is flourishing even though
   I see software piracy all over the place. I have no idea how much money
   is being lost to pirates but I know that whenever I have been supplied
   with a copy of a program it is because I did not have it and could not afford
   it and even though I wanted it I would not have bought it. I DO BUY software
   but not every peice of software that has ever been written or even that I
   have on my PC ! I am not trying to justify piracy in any way but I am
   trying to put across the point that piracy is a problem that will exist
   whather or not certain copying programs are available or not and it will
   not be stopped. It seems that the computer software manufacturers have
   learnt to cope with piracy (please correct if I'm wrong on this point) and
   have a healthy business going, and in this new area of ROM and RAM cards#
   new methods and possibly ideologies are going to have to be worked out.

    I think one of the better inventions of this whole thing is the
     hard-to-photocopy tables of numbers that come with software these days!

     Anyway I've lost my flow now, thankyou for listening



      Conrad

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/12/91)

HP48sx*****Quicky....

    To the person who asked about archiving libraries....
     I detach them, copy them into the HOME directory and purge them
     from what ever port they are in. Then when you do an archive
     they are stored as normal variables and end up as part of the
     save set (sorry VMS term for the archinve file on your PC??).
     Then when you do a restore you just tore them in the port you
     want and reattach them, as if you had just downloaded them!!

    Conrad

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/12/91)

   HP48sx****************+J.D's TOOLKIT*********************HP48sx


     Hi,
     This posting contains a few little routines, and ideas. The
     routines actually use Jim Donelly's toolkit. They could be
     written without using it but that was not my intention when
     I set about writing them. I have no idea how much larger they would
     be (or perhaps smaller) if written using standard RPL. I have no
     idea how many users have the toolkit but please let me know if
     they are useful and whether people actually will want stuff
     written using the tool library ( I personally am beginning
     to find meta-objects very useful ). Also This posting is to
     inspire people to do more of the same. It contains ideas
     and is by no means complete, and the routines may seem a
     little pointless.

       The first two routines create a variable called 'PATHS' in
    the current directory. 'PATHS' is a list of all the possible downwards
    paths from that directory. Two routines are required because the actual
    business is done by a recursive procedure called DOWN that searches
    downwards logging the paths!! DOWN looks like this.....

%%HP: T(3)A(D)F(.);

\<<
    15 TVARS OBJ\->                   @ Get the directories.
    IF DUP THEN                       @ Going downwards bit......
      1 OVER                          @
      START                           @
        MDT EVAL PATH MAH DOWN        @ Here is where the path is 'logged'
      NEXT                            @
    END                               @
    IF DUP THEN                       @ Coming back up again.......
      1 OVER START                    @
        MDT MAH2                      @ This saves all the paths that have been
      NEXT                            @ logged.
    END                               @
    DROP UPDIR                        @
\>>

    The logic of this is rather complex but if you do

         0 DOWN          @ The 0 is necessary

    then you are left with a meta-object, containing all the possible
    downward paths from where you, are on the stack, plus anything else that
    was there beforehand (I would never use CLEAR or things that alter
    settings without changing them back again in a routine :-) ). The 0
    is the empty meta-object that gets filled with the paths. Its quite nice
    to watch this routine in debug mode, it really gives the return
    stack a good bashing if you have a lot of directories. The only problem is
    that you are left one directory up from where you started (so much for
    my holier than thou attitude!) due to the recursive (how many times
    can I use that word without sounding corny?) nature of the routine.
    A second routine is used to keep the directory hopping in check. I
    call this MakePath since it makes the variable PATHS in the current
    directory and keeps you in the current directory. It also supplies the
    zero arguament and adds the path { HOME } to PATHS (a useful path to
    include in the list). It looks like this,

%%HP: T(3)A(D)F(.);
\<<
    PATH
    0 DOWN
    { HOME } MAH \->LIST
    'PATHS' STO
\>>

    Thus executing MakePath leaves the variable PATHS in the current directory
    , and it contains all the possible downwards paths.

    Of what use are such things?? Well I supply a couple of routines:-

    GO is quite useful.
    If you MakePath in the home directory and nowhere else
    then executing GO (it doesn't matter which directory you are in)
    will give you a list of all the directories you have using the title browser
    You can then move about using the arrow keys and decide where you want to go
    Press ENTER and you are magically transported to that directory!! Or if you
    press attn it simply puts you back where you were.

                            Try it its fun.

    This saves a lot of UP's and downs.

    GO looks like this


%%HP: T(3)A(D)F(.);
\<<
    PATHS OBJ\-> MZ2
    1 OVER
    START
      MDT DUP SIZE GET MAH2
    NEXT
    DROP
    \->LIST { } { 1 1 "Where to?" } TBR
    IF 1 ==
      THEN PATHS SWAP GET EVAL DROP
     ELSE
      DROP2
    END
\>>

        Heres another routine. This is extremely rough and basic, but deserves
     a mention. I call it mem. It leaves a rundown of the memory used by
     each directory. To look at a lot at once I put the rundown in the small
     font and store it all in PICT. To use it type

         mem GRAPH

     It looks like this.


%%HP: T(3)A(D)F(.);
\<<
    ERASE
    PATHS OBJ\->
    1 OVER
    START
      MDT DUP DUP SIZE 1 - SPLIT EVAL
      OBJ\-> DROP BYTES SWAP DROP SWAP 1
      SPLIT DROP \->STR DUP SIZE 3 - 3 SWAP SUB
      \->TAG 1 \->GROB OVER
      # 7d * # 1d SWAP 2
      \->LIST PICT RCL SWAP
      ROT GOR PICT STO
    NEXT
    DROP
\>>

       This routine is NOT well written and will probably not work if
    you have a lot of directories, but it can be nice.

    Anyway I throw these routines and ideas to the net to do with what
    it will. If anybody finds other uses for variables such as PATHS
    let us know. Experiment to your hearts content.




      Conard

sreese@slate.Mines.Colorado.EDU (L. Scott Reese) (02/12/91)

>From: U46837@UICVM.uic.edu
>Subject: CONNECTORS
>Message-Id: <1845C780200006C0@gacvx2.gac.edu>
>Status: R
Lines: 23

>To Franklin Wang and others troubled with connectors, get a DIGI-KEY
>catalog.  Just dial 1-800-DIG-IKEY and ask for one.  They supply all
>kinds of connectors including a "4-conductor, single row inline with
>0.1" on center distance between pins" model, just what you would need
>on the HP48 end of the wire I/O cable.  I don't have the specific part
>number on me, but I will order the part and report on it's successfulness
>in use.  DIGI-KEY also stocks RS-232 & many other connectors, chips,
>components, and tons of other stuff.
>                                       EUG <u46837@uicvm>



3M also has the same type of connector available in their catalog.  I
was able to get a catalog from a distributor for DuPont!  I also
was told by a tech rep at DuPont that their "Mini-Tech Pik-Pak" might
contain a connector that would work.  I haven't been able to find this
sample pack so I can't verify this.  Anybody heard of the "pik-pac"? 
The DuPont distributors have been unable to keep any in stock.

Scott  sreese@slate.mines.colorado.edu

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/12/91)

HP48sx*****************************************************************HP48sx


   oooooOOOOOOPS,

       I missed out an important command in the version of Makepaths
    I posted. At the end it should evaluate the PATH that was got at the
    beginning so that you return to where you were. It should look like this




         \<< PATH
             0 DOWN
             { HOME } MAH \->LIST
             'PATHS' STO
             EVAL
         \>>

        Sorry
                          Conrad

frechett@spot.Colorado.EDU (-=Runaway Daemon=-) (02/13/91)

In article <9102120503.AA47999@slate.Mines.Colorado.EDU> sreese@slate.Mines.Colorado.EDU (L. Scott Reese) writes:
=+>From: U46837@UICVM.uic.edu
=+>Subject: CONNECTORS
=+>Message-Id: <1845C780200006C0@gacvx2.gac.edu>
=+>Status: R
=+Lines: 23
=+
=+>To Franklin Wang and others troubled with connectors, get a DIGI-KEY
=+>catalog.  Just dial 1-800-DIG-IKEY and ask for one.  They supply all
=+>kinds of connectors including a "4-conductor, single row inline with
=+>0.1" on center distance between pins" model, just what you would need
=+>on the HP48 end of the wire I/O cable.  I don't have the specific part
=+>number on me, but I will order the part and report on it's successfulness
=+>in use.  DIGI-KEY also stocks RS-232 & many other connectors, chips,
=+>components, and tons of other stuff.
=+>                                       EUG <u46837@uicvm>
=+
=+
=+
=+3M also has the same type of connector available in their catalog.  I
=+was able to get a catalog from a distributor for DuPont!  I also
=+was told by a tech rep at DuPont that their "Mini-Tech Pik-Pak" might
=+contain a connector that would work.  I haven't been able to find this
=+sample pack so I can't verify this.  Anybody heard of the "pik-pac"? 
=+The DuPont distributors have been unable to keep any in stock.
=+
=+Scott  sreese@slate.mines.colorado.edu

Yes, indeed 3M Dupont and a host of other people have single row 
4 pin .1 inch spaced connectors.  Unfortunately that is simple the 
WRONG size.  The hp uses 2mm or .079 inch spacing just to confuse 
people.  
Joel Kolsted did manage to find some of the proper size connectors for
Fujitsu.  BUT as he stressed, and I didn't believe till I got a few from
him, they are worthless.  They are so increadibly small and flimsy that 
they are not worth a damn thing.  I would encourage anyone looking 
for them to keep after Dupont and try to get the double row 4 pin 
2mm connectors. That is 4 pins top and bottom. They don't fall apart 
when you try to stick the pins into them (like the Fujitsu) because
you don't have to stick the pins in.  You just solder the wires on.  
I have built many many cables from a couple double row 25 pin wide
connectors that someone gave me that I hacked up into sections of 
4 each.    

So, ignore anything regarding .1 inch connectors.  If you can get them
on they will have damaged your calculator.

	ian

--
-=Runaway Daemon=-

bgribble@jarthur.Claremont.EDU (Bill Gribble) (02/13/91)

In article <1991Feb12.164452.19588@csn.org> frechett@spot.Colorado.EDU (-=Runaway Daemon=-) writes:

>So, ignore anything regarding .1 inch connectors.  If you can get them
>on they will have damaged your calculator.

A bit of personal experience: I've owned three hp48's from version A to E,
  used .1" connectors on every one of them, and have noticed NO ill effects.  
  Maybe a close scrutiny revealed pins *slightly* spread, but in no danger
  of permanent damage.  

Of course, I guess I'm just a daredevil: I run software very day that 
  clearly states it might cause damage to my hardware :-)

>	ian

*****************************************************************************
**   Bill Gribble                     Harvey Mudd College, Claremont, CA   **
**   bgribble@jarthur.claremont.edu   Never heard of it?  You're stupid.   **
*****************************************************************************

madler@pooh.caltech.edu (Mark Adler) (02/13/91)

>> I also
>> was told by a tech rep at DuPont that their "Mini-Tech Pik-Pak" might
>> contain a connector that would work.

Well, sort of.  There is a 2x3 connector in their sample kit that fits.
DuPont does not make a 4x1 connector, which is what you really need.

Mark Adler
madler@pooh.caltech.edu

kolstad@jomby.cs.wisc.edu (Joel Kolstad) (02/13/91)

In article <9102120503.AA47999@slate.Mines.Colorado.EDU> sreese@slate.Mines.Colorado.EDU (L. Scott Reese) writes:
>>From: U46837@UICVM.uic.edu
>>Subject: CONNECTORS
>>Message-Id: <1845C780200006C0@gacvx2.gac.edu>
>>Status: R
>Lines: 23
>
>>To Franklin Wang and others troubled with connectors, get a DIGI-KEY
>>catalog.  Just dial 1-800-DIG-IKEY and ask for one.  They supply all
>>kinds of connectors including a "4-conductor, single row inline with
>>0.1" on center distance between pins" model, just what you would need
>>on the HP48 end of the wire I/O cable.  I don't have the specific part
 
[etc.]

>3M also has the same type of connector available in their catalog.  I

Sigh...

After over a year now, it's too bad that people still go around passing out
this kind of information.

The serial connector on the HP-48 is on METRIC spacing.  NOT SCREWED UP
AMERICAN SPACING!  The pins are .5mm square, on 2mm spacing.  This is
not the same as american .025" square, .1" spacing. 

For those that care, 2mm is .079" -- smaller than .1".  That means that using
a .1" connector will spread your pins, and isn't as reliable as a 2mm
spaced connector.  OK?

Fujitsu makes 2mm connectors, and I believe DuPont does too.  The problem is
that the 2mm connectors are extremely tiny -- if you can a HP cable, take a 
look into it.  See the tiny black plastic part of it in the center or the
cable?  That's how big just the connector alone is...

Ian Frechett is attempting to make outer shells for the tiny connectors.

						---Joel Kolstad
						kolstad@jomby.cs.wisc.edu
						kolstad@cae.wisc.edu

mkim@imsa.edu (Michael H. Kim) (02/13/91)

UNSUBSCRIBE

gevrey@eig.unige.ch (02/14/91)

Does anybody know if there is an accelerator for the HP-48sx as 
for the HP28s ?

    Thank you .

taber@ultnix.enet.dec.com (Patrick St. Joseph Teahan Taber) (02/14/91)

In article <1991Feb13.014341.19845@spool.cs.wisc.edu>,
kolstad@jomby.cs.wisc.edu (Joel Kolstad) writes:

|>Sigh...
|>
|>After over a year now, it's too bad that people still go around passing out
|>this kind of information.
 
Sigh.  After over a year now, people are still talking about how they're
going to save money over the "outrageously priced" HP cable, and they
STILL can't find the right connectors.  One person had some custom-made
then did extensive rework by hand.  Others have been looking through
catalog after catalog.  With one or two exceptions, the cables that have
been successfully hand-made sound very fragile.  Is this one of those
"why did you climb Mt. Everest" things?  At some point, doesn't it
become obvious that $50 for a well-made cable is not a bad deal after
all?

--
                                             >>>==>PStJTT
                                     Patrick St. Joseph Teahan Taber, KC1TD

If I was authorized to speak for my employer, I'd be too important to
waste my time on this crap....

frechett@spot.Colorado.EDU (-=Runaway Daemon=-) (02/15/91)

In article <3964@ryn.mro4.dec.com> taber@ultnix.enet.dec.com (Patrick St. Joseph Teahan Taber) writes:

=+"why did you climb Mt. Everest" things?  At some point, doesn't it
=+become obvious that $50 for a well-made cable is not a bad deal after
=+all?

No.  I'll match my cables against HP's any day.
=+--
=+                                             >>>==>PStJTT
=+                                     Patrick St. Joseph Teahan Taber, KC1TD

	ian

--
-=Runaway Daemon=-

CW%APG.PH.UCL.AC.UK@pucc.PRINCETON.EDU (02/16/91)

 HP48sx**********************HP48sx*********************************HP48sx


    Hi again,

        NRTS is great. I finally managed to get my 48 to log onto
   our VAX. Heres my cable configuration.


      Pin number on 9 pin connector                Pin number on 25 way

                   1                                        1
                   2                                        3
                   3                                        2
                   5                                        7


     No other shorting was required. (the 9 pin connector is what
    comes out of the 48 and the 25 way is what goes into the VAX).
    I particularly like the strippeng of the control codes, which makes
    the whole appearance very neat. A point of interest is that we
    wondered whether the 48 would be able to send and recieve information
    over very long cable lengths (many 10's of metres) and it can!!!
    (actually it was about 20 meters), not bad......

    Secondly if anybody is interested I put the EVAL in the wrong place
    in MakePath it should be

            \<< PATH 0 DOWN { HOME } MAH \->LIST
                SWAP EVAL 'PATHS' STO \>>
                     

     Oh back to cables,

> Reclimb Everest ????????

     I'd much rather climb Everest myself (?!) than watch a video of somebody
     doing it for me. I made a cable for about $2-3 American money and enjoyed
     learning about various things doing it, and SAVING MONEY!!!

 Oh and ASC\-> and UUencode etc.....

     ASC\-> is one of the most useful routines I have ever used
    on my HP48. Want to know what something looks like in memory?
    Just ask \->ASC. Want to download something with wierd objects in
    it. yep you guessed it \->ASC. Want to create weird objects
    simply (without typing them in at the memory scanner)? Look
    no further than ASC\-> (with the help of KCRC of course).

     I happened to find UUENCODE (not DECODE) last week by accident on a PC in
    a place a long way from here and brought it back on a disc. I
    have no unix or C!!!! UU**** does not help analyse objects!!!

    I rest my case

       Conrad

WWIS1%BANRUC01.BITNET@CUNYVM.CUNY.EDU (02/20/91)

unsub handhelds Tom Van den Eede

heilpern@uu.psi.com (Mark Heilpern) (03/01/91)

Return Addresses:heilpern@ironics.com
  uunet!uupsi!ironics!heilpern
--------
To: uupsi!handhelds@gac.edu
Subject: Re: Derek Nickel's Voyager 1.0-7 (src) (Compressed TAR format) part03/04
Date: Fri, 1 Mar 91 10:42:30 EST
>From: Mark A. Heilpern <heilpern@ironics>
In-Reply-To: <F4169928A00021D6@gacvx2.gac.edu>; from "gacvx2.gac.edu!NEWSMGR" at Mar 1, 91 2:17 am
X-Mailer: ELM [version 2.2 PL0]

Could somebody please either post or email me parts 1 and 2 of the
uuencoded, tar-ed source code to Voyager 1.07 please? Also, if there
are not instructions/documentation in that tar file, could they
be sent as well?

Thanks in advance,
Mark A. Heilpern
heilpern@ironics.com
uunet!ironics!heilpern





PS  My future HP wish-list:

Is HP ever going to take advantage of all these surplus MC 68000 chips
floating around, and place them in future handhelds? I've not yet taken
the time to learn HP's instruction set (or Alonzo's MC-alike set) and
would be willing to wait a year or so to be able to program in 68K
assembler, which I currently use fairly often.

A square-pack 8MHz 68000 costs ~$32 in qty 1, ~$29 in 100-999
A square-pack 8MHz 68010 costs ~$60 in qty 1, ~$52 in 100-999, increase
$18/$14 for 8MHz --> 10MHz in '010 or 8MHz --> 12MHz in '000.

CVERONEL@UCHCECVM.BITNET (03/13/91)

sub handhelds c. v.

CVERONEL%UCHCECVM.BITNET@CUNYVM.CUNY.EDU (03/22/91)

sub hanhelds c. v.

Abraham Mantell <mantell@ams.sunysb.edu> (04/01/91)

                        HP-28S (version 2BB) For Sale

Includes $80 of additional accessories:
  Black Leather Case
  Pocket Book by J. Donnelly
  Insights by W. C. Wickes
  Time & Date Functions by K. P. Jessup
  Customize Your HP-28 by W. A. C. Mier-Jedrzejowicz

Best Offer over $150 + shipping charges (if necessary)


Abe Mantell
Dept. of Applied Mathematics
SUNY @ Stony Brook
Stony Brook, NY 11794-3600
e-mail: mantell@ams.sunysb.edu

CW%UK.AC.UCL.PH.APG@pucc.PRINCETON.EDU (04/06/91)

             At the risk of being premature, I have some information
             about the routine at 355D8h. (Oh no not again they all think).

              I have noted this behaviour

nadg-4@student.cs.chalmers.se (Lab. - konto Nadg-4) (04/08/91)

This is a navigation program that I have wrote. The equation's
is taken from Mr James Gentles's HAM routine's and so fare I
have found them correct. The NAV program takes the boat- (car-)
speed, your current position and future position. Observe that
South and West are negative. You can put the declination in DECL.
I have chosen the units so that they suit me but they are fairly
easy to change.

Happy navigation

Jonas Linden

PS Is there a waterproof case for the HP48SX?

O  /
 \/
 /\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
O  \

%%HP: T(3)A(R)F(.);
DIR
  NAV
    \<< RCLF -3 SF
DEG \-> f
      \<<
        IFERR
NINPUT CALC H.M _
'Time' \->TAG ROT
DECL NEG + \^o _
'Course' \->TAG ROT
nmi _ 'Dist' \->TAG
ROT NGRAPH 0 WAIT
DROP 20 DOERR
        THEN f STOF
'PPAR' PURGE ERASE
        END
      \>>
    \>>
  DECL -1
  NINPUT
    \<< CLLCD
"Your speed in knot"
{ ":Speed:" { 1 0 }
V } INPUT OBJ\-> 1 2
      FOR j j \->STR
" position DD.MMSS
S and W are negative"
+ {
":Latitude :
:Longitude:"
{ 1 0 } V } INPUT
OBJ\->
      NEXT
    \>>
  CALC
    \<< HMS\-> 4 ROLL
HMS\-> 4 ROLL HMS\-> 4
ROLL HMS\-> SWAP 4
ROLL -
      CASE DUP 180
>
        THEN 360 -
        END DUP
-180 <
        THEN 360 +
        END DUP 0
==
        THEN
.000001 +
        END
      END \-> lah laa
dif
      \<< 'ACOS(SIN(
lah)*SIN(laa)+COS(
lah)*COS(laa)*COS(
dif))' DUP 180 / \pi
* 6378.388 * 1.852
/ 2 RND SWAP \-> dis
'ACOS((SIN(laa)-SIN
(lah)*COS(dis))/(
COS(lah)*SIN(dis)))
'
        IF dif 0 >
        THEN NEG
360 +
        END 2 RND
ROT ROT DUP ROT /
UVAL \->HMS 2 RND
      \>>
    \>>
  NGRAPH
    \<< 3 PICK ROT
ROT SWAP 1 3
      START 1 \->GROB
ROT
      NEXT COMPASS
{ # 0d # 15d } ROT
GOR SWAP { # 0d
# 30d } SWAP GOR
SWAP { # 0d # 45d }
SWAP GOR PICT STO {
# 0d # 0d } PVIEW
UVAL NEG 90 + DUP
COS 1.6 * 3.5 +
SWAP SIN 1.6 * R\->C
(3.5,0) LINE 0
FREEZE
    \>>
  COMPASS  @ Remove all line feed's in GROB!!!
GROB 131 64 0000094A272DC14A3BBCCE0ECE0000000000000BAAA05550CA88822202
240000000000000FEAA67CC1CBB8344E0E440000000000000DA4A454504B8808820284
00000000000009A42754D14A3B366E0E64000000000000000000000000000000000000
000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70000000000000000001000000000000
00000000000000000000010000000C000000000000000000000000010000008F000000
0000000000000000000100000082000000000000000000000000010000008200000000
0000000000000000010000008200000000000000000000000001000000830000000000
0000000000000001000000000000000000000000000000000100000001000000000000
000000000000010000000100000000000000000000000001000000EF00000000000000
00000000000100000C1170000000000000000000000001000003018100000000000000
0000000001000080000200000000000000000000000100004000040000000000000000
0000000100002000080000000000000000000000010000100000100000000000000000
0000010008000000200000000000000000000001000800000020000000000000000000
0001000400000040000000000000000000000100040000004000000000000000000000
01000400000040000000000000000000000100C2008300800C00000000000000000009
BBF200440088BF000000000000000000012A2200280088A2000000000000000000093A
AF002800EBB2000000000000000000090A2200280080A2000000000000000000093A32
00440080A3000000000000000000010002008300800000000000000000000001000400
0000400000000000000000000001000400000040000000000000000000000100040000
0040000000000000000000000100080000002000000000000000000000010008000000
2000000000000000000000010000100000100000000000000000000001000020000800
0000000000000000000001000040000400000000000000000000000100008000020000
00000000000000000001000003018100000000000000000000000100000C1170000000
000000000000000001000000EF00000000000000000000000001000000010000000000
0000000000000001000000010000000000000000000000000100000000C00000000000
00000000000001000000ABF0000000000000000000000001000000AA20000000000000
000000000001000000AB20000000000000000000000001000000AA2000000000000000
0000000001000000AB300000000000000000000000010000000000000000FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFF7000000000000000000000000000000000000008AAAB9384
790ECE02D9D566700000000008AAA8A0855B022406544411100000000008A8AB93875F
0E440ED5C1227000000000009098A0865D02840A544044100000000000909BA384790E
6402D9D13370000000
END

umashman@ccu.umanitoba.ca (Philip Ashman) (04/09/91)

  I'm trying to quit the mailserver for the handhelds group since the mail is little to much, how 
exactly do I go about it.

		Phil

LEIF@SLACVM.SLAC.STANFORD.EDU (04/10/91)

In article <110*umashman@ccu.umanitoba.ca>, umashman@ccu.umanitoba.ca (Philip
Ashman) says:
>
>  I'm trying to quit the mailserver for the handhelds group since the mail is
>little to much, how
>exactly do I go about it.
>
>                Phil

Phil, you neet to send mail to: MAILSERV@GAC.EDU,
Just say: UNSUBSCRIBE HANDHELDS,  and soon your mailstop will be YOURS again :)
Later...                                        Leif Johnson
                                                LEIF@SLACVM.SLAC.STANFORD.EDU

HAROLD CLIMER <HCLIMER@UTCVM.BITNET> (04/12/91)

SUBSCRIBE HANDHELDS

kid@chaos.cs.brandeis.edu (David Fenick) (04/13/91)

Newsgroups: comp.sys.handhelds
Subject: Atari Portfolio and Poquet PC
Summary: Info
Expires: 
References: <41122@cup.portal.com>
Sender: kid@chaos.cs.brandeis.edu
Followup-To: 
Distribution: 
Organization: Brandeis University
Keywords: 
I'm looking for any information about the Atari Portfolio and the Poquet PC.
Any responses can be through e-mail or posted here.
Thanks, Dave Fenick


-- 
Dave (kid@chaos.cs.brandeis.edu) - All thoughts are purely accidental

mtjachim@mtu.edu (Jachimstal) (04/18/91)

I recently received in the mail a SC 32K RAM cartridge. It works absolutely
wondeful! (revision E calculator). Thanks to everybody for all the info
about your various experiences. I may even buy another on this summer.

I was wondering if anybody has had any experiences with usrlib for IBM pc's.
It is supposed to convert directories to library objects. Every time I run
it it completely locks up whatever machine I'm using. It even locked up
Cntl-Alt-Del on one of them! I suspect that is got corrupted somewhere along 
the line (at every FTP site I could find!) and would like to get a copy
of it from anybody that has used it succesfully. Alternately, could you tell
me where you got it, was it an FTP site, HP bulletin board (it is supposed to
be posted there but I don't know the phone #), or some other source?


Please send all replies to:

   mtjachim@mtu.edu
 
Thanks in advance,

Matthew

--
--------------------------------------------------------------------
|   Matthew T. Jachimstal       Michigan Technological University   |
|                                                                   |
|   mtjachim@mtu.edu     Internet                                   |
|   mtjachim@mtus5       BITNET                                     |
--------------------------------------------------------------------

mantell@ams.sunysb.edu (Abraham Mantell) (04/25/91)

Subject: Psion Organizer II


Does anyone know about the Psion Organizer II???  I received a Damark
mail order catalog which advertizes the item for $120, they claim the
list price is $992!!!   Amoung many of its advertized features is
a Math Pack which is supposed to perform:  Bessel Functions,
Polynomial Equation Operations, Matrices and more.....
Can someone confirm or deny any of this???  If this is true, and
the list price is in fact about $900, then this seems to good to pass!!!

Thanks,
Abe Mantell
mantell@ams.sunysb.edu

mantell@ams.sunysb.edu (Abraham Mantell) (04/28/91)

Subject: Psion Organizer II


Does anyone know about the Psion Organizer II???  I received a Damark
mail order catalog which advertizes the item for $120, they claim the
list price is $992!!!   Among many of its advertized features is
a Math Pack which is supposed to perform:  Bessel Functions,
Polynomial Equation Operations, Matrices and more.....
Can someone confirm or deny any of this???  If this is true, and
the list price is in fact about $900, then this seems to good to pass!!!

Thanks,
Abe Mantell
mantell@ams.sunysb.edu

heilpern@uu.psi.com (Mark Heilpern) (04/30/91)

Return Addresses:heilpern@ironics.com
  uunet!uupsi!ironics!heilpern
--------
To: handhelds@gac.edu
Subject: Rom Extraction
Date: Wed, 1 May 91 9:47:08 EDT
>From: Mark A. Heilpern <heilpern@ironics>
X-Mailer: ELM [version 2.2 PL0]

Many months ago, a routine was posted (by Xeno?) to extract libraries
from a port/rom card. Could some kind soul please repost this or
send me a copy, as I have not got an archive handy. Thanks in advance...

Mark

P.S.--  I don't have FTP ability, so please dont say
"FTP it from hp48.archive.site"

HCLIMER%UTCVM.BITNET@CUNYVM.CUNY.EDU (Harold Climer) (05/01/91)

There is a way to transfer files over BITNET even if you can't use FTP. I
have not tried it yet myself but Eric Lane (U.Tennessee Chattanooga Physics
Department) and I are going to expoloe it after exams are over and grades
turned in.            Send the following Mail to Princeton for the help file.
                  Mail to BITFTP AT PUCC
                  SEND BITFTP HELP

                                              Harold Climer
                                              Physics Department
                                              UTC

jreeves@magnus.acs.ohio-state.edu (Joe B Reeves) (05/03/91)

To Bill Poindexter:
	Even though you're on campus, your mail bounced. Please send me what
you have on the HP music program, and tell me what you plan on it to do.
Also, wasn't there a digtized sound generator for the HP48, or am I dreaming?


-- 
|Joe Reeves---The Ohio State University---jreeves@magnus.acs.ohio-state.edu--|
|        Purple Toupee will show the way when summer brings you down.        |
|   //                They Might Be Giants  : Lincoln                        |
| \X/ Amiga Rules!  "Rhymin' Man's gonna run for prez" - Frank Zappa, 1989   |

231b3618@fergvax.unl.edu (Ben Hollingsworth) (05/08/91)

In <1991May2.224826.29590@magnus.acs.ohio-state.edu> jreeves@magnus.acs.ohio-state.edu (Joe B Reeves) writes:

>Please send me what
>you have on the HP music program, and tell me what you plan on it to do.
>Also, wasn't there a digtized sound generator for the HP48, or am I dreaming?

I've seen several mentions of music/sound stuff for the 28 & 48, but
I've never seen any programs posted.  I did look through Wayne's INDEX,
but I may have just missed anything he has.  If anyone has any programs
or specific info, please me/us know!

				Thanks,
				Obi-Wan

 |\_/|  AACK! || The views expressed || "Obi-Wan" (Ben Hollingsworth)
\'o.0'/       || are those of myself || MicroImages, Inc.      Lincoln, Nebraska
=(___)=       || and everybody else  || University of Nebraska - Lincoln
   U   PTHAT! || I've ever met.      || email:          231b3618@fergvax.unl.edu

diamant@hpfcbig.SDE.HP.COM (John Diamant) (05/14/91)

Ben Hollingsworth (231b3618@fergvax.unl.edu) writes:

> I've seen several mentions of music/sound stuff for the 28 & 48, but
> I've never seen any programs posted.  I did look through Wayne's INDEX,
> but I may have just missed anything he has.  If anyone has any programs
> or specific info, please me/us know!

There is an entry in Wayne's server called music.tar.Z in the misc
directory.


John Diamant
Software Engineering Systems Division
Hewlett Packard Co.		ARPA Internet: diamant@hpfclp.sde.hp.com
Fort Collins, CO		UUCP:  {hpfcla,hplabs}!hpfclp!diamant

jcsewell@uunet.UU.NET (jcsewell) (05/19/91)

unsubscribe
Unsubscribe
UNSUBSCRIBE

heilpern@uu.psi.com (Mark Heilpern) (05/21/91)

Return Addresses:heilpern@ironics.com
  uunet!uupsi!ironics!heilpern
--------
To: handhelds@gac.edu
Subject: MPE Code
Date: Tue, 21 May 91 13:42:41 EDT
>From: Mark A. Heilpern <heilpern@ironics>
X-Mailer: ELM [version 2.2 PL0]

Could someone please mail me a copy of the updated MPE source+demo
source? My nimble fingers rm-ed the wrong file :-(

Thanks in advance...
  Mark
-- 
PS-- I can't FTP, and it isn't on Wayne's server yet.

jhawk@panix.uucp (John Hawkinson) (05/21/91)

'Couple 'f questions for all you 48 people:
	1) exactly what does ON-SPACE-ON do? (it appears to turn the calculator
off)
	2) After going into self-test mode (ON-D-ON) and pressing the DROP/CLR
		key, it goes into a mode which presumably displays whats at
		that specific address. However, EVAL appears to execute the
		code there, and ENTER seems to modify it, but doesn't seem to
		have a lasting effect. Also, pressing A repeatedly after ENTER

		has some w
i

erd effects. 

-- 

--
John Hawkinson
jhawk@panix.uucp

stephanc@cip-s01.informatik.rwth-aachen.de (Carsten Stephan) (05/24/91)

Is there anybody out there - who knows an email-adress of EduCalc 2 get
the actual prices of their products???

Bye K.

dan@nic.gac.edu (Dan Boehlke) (05/25/91)

> unsubscribe handhelds

Please send mailing list management commands to MAILSERV@GAC.EDU.   
Sending them to the HANDHELDS@GAC.EDU will do nothing but make you  
look foolish.

--
Dan Boehlke                    Internet:  dan@gac.edu
Campus Network Manager         BITNET:    dan@gacvax1.bitnet
Gustavus Adolphus College
St. Peter, MN 56082 USA        Phone:     (507)933-7596

stephanc@cip-s01.informatik.rwth-aachen.de (Carsten Stephan) (05/25/91)

unsubscribe handhelds

stephanc@cip-s01.informatik.rwth-aachen.de (Carsten Stephan) (05/25/91)

UNSUBSCRIBE HANDHELDS

heilpern@uu.psi.com (Mark Heilpern) (05/28/91)

Return Addresses:heilpern@ironics.com
  uunet!uupsi!ironics!heilpern
--------
To: handhelds@gac.edu
Subject: MPE, Star
Date: Tue, 28 May 91 15:29:55 EDT
>From: Mark A. Heilpern <heilpern@ironics>
X-Mailer: ELM [version 2.2 PL0]

Help!!!!

I've recently aquired star1.04.4, and I've got the MPE/demo star
source code. Star passes the test suite o.k. The only peice
of code I've got for star is MPE and what comes with star.

When I compile mpe, I get NO errors. However, when I download
the file to my '48 (both systems in binary mode!) I get the
dreaded "HPHP48-E......", and the string is unuseable. Why
is this happening? Does anyone know of a known-good star source
I can try out?

BTW, I'm not sure if my MPE version is the first or second one posted.
Thanks for your help...

Mark Heilpern
heilpern@ironics.com
...!uupsi!ironics!heilpern
\\M.

PS- I don't have FTP ability :-(

DBOREN@cc.weber.edu (06/01/91)

>Hi!Again!
>PLEASE tell me what I'm doing wrong!
>I want to d/l the Joust game in to my hp48.
>I have it in my calc right now, used ASC->, and get '"**Joust by Zoom %..."'
>I guess I'm on the right track, but what do I do from here?!
>How do I actually START?!?!  
>It isn't obvious to me-I pressed enter and cont and all,...I
>just thought it would be as easy as the Tetris game to get going,...
>
>Thanks.
>
>Dan Stephenson

The problem here is that Joust is not a normal program. It is a string that
is used by a program called Super-Chip to then run program. There are a couple
programs that I have seen written for it and its previous version called Chip.
You will need to obtain Super-Chip before you can play joust. Super-Chip was
posted recently, I don't know if it is at a ftp site yet, but I know Chip is.

>I recently obtained Tetris for my 48sx, and transferred it using Kermit as
>"TETRIS.48".  Now, though, it seems that the 48sx does not like the '.' in
>the variable name, and refuses to let me rename/delete/edit it.  
>Can someone give me some hints as to what I should do?  I don't really feel
>like purging the entire memory and restoring the files. (Which is what I'm on
>the verge of doing!).
>
>--Jeff
>
>Jeff Tarr, Jr.
>Sysop:  AppleSauce BBS - 212/721-4122  Apple II and Macintosh Support.

The problem here is that your HP has the Fraction Mark set. If you goto the
modes menu and select prev to see the last menu choices you will see FM,
it will have a box in it meaning its set press it once to take it off and 
everything should be okay. I had the same problem at one time and it just to a
bit off checking of my flags and reading the manual to see what each did 
( I just got my HP a the beginning of this quarter) to learn what the
problem was.

I hope these answers help, I sure appreciate the help I've recieved on here on
the questions I've asked or would of asked if someoneelse already hadn't before
I did.

David

DBOREN@cc.Weber.EDU	"Still learning, slowly but surely"

harpo@pnet01.cts.com (Michael Harp) (06/05/91)

SUBSCRIBE HANDHELDS Michael Harp
Mike Harp     harpo@pnet01.cts.com