The Museum of HP Calculators

HP Forum Archive 20

[ Return to Index | Top of Index ]

HPIL-Devel BUFFER Question
Message #1 Posted by 聲gel Martin on 4 Feb 2011, 5:14 a.m.

While doing some reseach on the BUFFER types I wanted to look at the one created by the HPIL Develoment module (id#=12).

This is quite an interesting buffer in a few ways, with a pointer structure - so it's quite close to a data file in XM, but of course without the "normalization" issue.

Anyway the issue I'm having is that the module image would not work on V41 - it freezes until you unload the rom image.

Furthermore, I loaded the said image on my MLDL and if works ok, albeit on startup it throws the criptic message "RD? 0 IND".

Linked to the MONITOR mode perhaps? I guess not, since such is disabled everytime the calculator is swithed off. Needless to say that the behavior is completele normal when using the REAL module on the same machine.

Any ideas as to what's that and how can it be disabled?

      
Re: HPIL-Devel BUFFER Question
Message #2 Posted by Meindert Kuipers on 5 Feb 2011, 12:47 p.m.,
in response to message #1 by 聲gel Martin

聲gel,

Loaded the said module in my MLDL, had no problems with lockups or statup with starte messages. XROM number is 22 though. I did not ry any of the functions though ...

Meindert

            
Re: HPIL-Devel BUFFER Question
Message #3 Posted by 聲gel Martin on 7 Feb 2011, 6:55 a.m.,
in response to message #2 by Meindert Kuipers

Thanks Meindert for looking into this - your assistance is always helpul.

Somehow the issue has gone away as it now works fine on the M2k. I have no idea why, no master clear or anything.

BTW I modified my BFCAT function to make it compatible with the AIP/MIP marker on the buffer header (stored in the XS digit). The BFCAT execution allows for forward and backward listing of the buffers. While the forwards way is easy using the buffer size info stored in the header, the backards run isn't possible unless the size of the "previous" buffer is known - similar to the FOCAL CHAIN in main memory.

Cheers, 簍

Edited: 7 Feb 2011, 11:32 a.m.

                  
BUFFERLAND Function Listing
Message #4 Posted by 聲gel Martin on 8 Feb 2011, 7:51 a.m.,
in response to message #3 by 聲gel Martin

In case you're interested, here's the Function Table for the BUFFERLAND Module:-

F. Name	        Description	        Input
-BUFFERLAND	section header   	none
AIPT		Auto Increment Pointer	id# in X
ASTOBF _ _ 	Alpha to Buffer	        buf# in prompt
ARCLBF _ _ 	Buffer to Alpha	        buf# in prompt
B?		Buffer existence	id in X
BF>RGX _ _	Buffer to Registers	bbb,eee in X, buf# in prompt
BF>ST _ _ 	Buffer to Stack	        buf# in prompt
BFCAT		Buffer Catalog	        none; SST,SHIFT, D, H, R/S
BFHEAD		Buffer Header	        id# in X
BFLNG		Buffer Length (Size)	id# in X
BFRCL _ _	Restore Buffer from RG	id# in X; RCL in prompt
BFSTO _ _ 	Store Buffer to RG	id# in X; RCL in prompt
BFVIEW		Buffer View	        id# in X
BLIST		List Buffers	        none
BUF?		Buffer existence	id# in X
BUFHD		Buffer Head address	id# in X
CLB		Clear Buffer            id# in X
CLRBF		Clear Buffer Contents	id# in X
CRBUF		Create Buffer	        ID,00(SZ) in X
DELBUF		Delete Buffer	        id# in X
GETB		Get buffer from XM	File Name in Alpha
GETBUF		Get buffer from XM	File Name in Alpha
GETPT _ _ 	Get Pointer value	buf# in prompt
MIPT		Manual Increment PT	id# in X
REIDBF		Re-id# buffer	        old,new id#'s in X
RESZBF		Re-size buffer	        ID,00(SZ) in X
RGX>BF _ _ 	Registers to buffer	RG in X, buf# in prompt
SAVEB		Save Buffer in XM	id# in X, File Name in Alpha
SAVEBUF		Save Buffer in XM	id# in X, File Name in Alpha
SETPT _ _	Set Pointer Value	pt# in X, buf# in prompt
ST>BF _ _ 	Stack to Buffer 	buf# in prompt
-KA UTILS	Section Header	        none
DCD		Decode	                NNN in X
GETK		Get Keys from XM	File Name in Alpha
KACLR		Clear KA	        "OK' / "OKALL" in Alpha
KALNG?		KA Length	        none
KAPCK		Pack KA	                none
LKOFF		De-activate Local KA	none
LKON		Re-activate Local KA	none
MRGK		Merge Keys from XM	File Name in Alpha
SAVEK		Save Keys in XM	        File Name in Alpha
-ZBUFFER	Checks for 41Z ROM      none
CLZB		Clears Z buffer	        None
L1=XY?		is L1 equal to XY?	None
L1<>L		Swap L1 & Level	        Level# as suffix
L1<>L2		Swap L1 & L2	        None
L1<>L3		Swap L1 & L3	        None
L1<>L4		Swap L1 & L4	        None
L1<>LX		Swap L1 & Level	        level in X
L2=ZT?		is L2 equal to ZT?	None
L2>ZT		Copies L2 into ZT	None
LVIEW		View Level	        Level# as suffix
LVIEWX		View level by X	        level in X
RG>ZB		Restores Buffer from RG	Reg# as suffix
ST>ZB		Copies stack to L1&L2	None
XY>L		Copies XY into Level	Level# as suffix
XY>L0		Copies XY into L0	Re(z) in X; Im(z) in Y
XY>L1		Copies XY into L1	Re(z) in X; Im(z) in Y
ZB>RG		copies buffer to reg	Reg# as suffix
ZB>ST		Copies L1&L2 to stack	None
ZBDROP		Drops  Z buffer 	None
ZBLIFT		Zbuffer Header info	None
ZBHEAD		Lifts Z buffer   	None
ZBVIEW		Shows Z Buffer	        None

Edited: 8 Feb 2011, 7:55 a.m.

      
Re: HPIL-Devel BUFFER Question
Message #5 Posted by Mike (Stgt) on 7 Feb 2011, 4:21 a.m.,
in response to message #1 by 聲gel Martin

V41 loops (but BTW how do you predetermine the port number?). With my NutEm no problem so far, alas I do not simulate HPIL traffic yet. Did you try the trace JFG's Emu41 offers?

Ciao.....Mike

            
Re: HPIL-Devel BUFFER Question
Message #6 Posted by 聲gel Martin on 7 Feb 2011, 6:58 a.m.,
in response to message #5 by Mike (Stgt)

V41 has a "Console" that allows you to see the MCODE steps as they're being run. It hangs in the same instruction, and there's nothing I can do to get it passed - looks like a real problem with this ROM image.

                  
Re: HPIL-Devel BUFFER Question
Message #7 Posted by Mike (Stgt) on 8 Feb 2011, 11:42 a.m.,
in response to message #6 by 聲gel Martin

Up to now I regarded Emu41 from JF Garnier as reference eumulating the Nut CPU. Tonite I'll have a look if I can compare the trace output of V41 and Emu41 (and NutEm if neccesary). BTW, if you assume a problem with the ROM image, did you CHKSM it?

Ciao.....Mike

                  
Re: HPIL-Devel BUFFER Question
Message #8 Posted by Mike (Stgt) on 9 Feb 2011, 4:35 a.m.,
in response to message #6 by 聲gel Martin

Just a short excerpt of the trace log, first from my NutEm:

27FB: 1E0 GOTOC          
EFF8: 32B JNC    -1B EFDD
EFDD: 22B JNC    -3B EFA2
EFA2: 070 N=C            
EFA3: 130 LDI            
EFA4: 030 CON      48    
EFA5: 106 A=C    X       
EFA6: 024 PERTCT 1       
EFA7: 03A RPREG 1        
EFA8: 003 ?XF   1 

And here from V41 (I left out all but the first output of CPU registers):

  A=000000000F0408 B=F00018AC029000 C=000018ADFF832B Stack=00F0 0000 0000 0000
  M=00000080000000 N=000018ACFF8070 Cr=0 >P=6  Q=D G=07 F0=00 ST=001010 00000000
  CLK_A=00000000000000 ALM_A=00000000000000 SCR_A=00000000000000
  CLK_B=00000000000000 ALM_B=09999999999000 SCR_B=00000000000000
  INT_A=00000  INT_B=00000 TMR_S=0040 ACC_F=0000 Timer=B FI=00000000000000
  RAM Addr=00E  Perph Addr=00  Base=16
27FB  1E0			GOTOC
DFF8  32B			GONC	-27	DFDD
DFDD  22B			GONC	-59	DFA2
DFA2  070			N=C
DFA3  130030			LDI	030
DFA5  106			A=C	X
DFA6  024			SELPF	0
DFA7  03A			B=0	M
DFA8  003			GONC	+0	DFA8
DFA8  003			GONC	+0	DFA8
DFA8  003			GONC	+0	DFA8

And there it loops. Reminds me the test of a multitasking system, it was tanked by such a GO +0 instruction.

Hope this helps. Ciao.....Mike


[ Return to Index | Top of Index ]

Go back to the main exhibit hall