<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 07 Aug 1984 06:41:00 MDT (Tue)
From   : Richard Conn <RCONN@Simtel20.ARPA>
Subject: [decvax!mcnc!ecsvax!emigh: LDR Problem]

FYI -- This is an answer to that LDR anomaly.  Will see that a change
is posted.

	Rick


Date: Monday, 6 August 1984  12:10-MDT
From: decvax!mcnc!ecsvax!emigh at Berkeley
To:   rconn at SIMTEL20.ARPA
cc:   ecsvax!emigh at Berkeley
Re:   LDR Problem
Original-From: Ted Emigh <emigh@ecsvax>
Location: Genetics and Statistics, N.C. State University
Address: {decvax akgua unc duke ihnp4}!mcnc!ecsvax!emigh
Arpanet: decvax!mcnc!ecsvax!emigh@BERKELEY.ARPA
References: Msg of 2 Aug 1984  14:06-MDT from decvax!mcnc!ecsvax!emigh
at Berkeley

Rick,

  The program LDR.COM does not match LDR.MAC (both on SIMTEL20).  I have made
a ZSID listing of LDR.COM,and have printed it next to the LDR.MAC listing
(forgive the difference in mnemonics, I can't locate DDT just now...).
ZSID Disassembly of		LDR.MAC from SIMTEL20
LDR.COM from SIMTEL20
			;
			;  Load Data Buffers from Environment
			;
			setdata:
LD	HL,(0754)	lhld	envptr	; get environment descriptor address
LD	(04DC),HL	shld	envadr
LD	DE,0080		lxi	d,80H	; pt to Z3TCAP
ADD	HL,DE 		dad	d
LD	(04E8),HL	shld	tcapadr
CALL	073F		call	getrcp	; get RCP data
LD	DE,04A6		lxi	d,rcpdata	; load
CALL	02BB		call	sdload
CALL	0701		call	getiop	; get IOP data
LD	DE,04B2		lxi	d,iopdata	; load
CALL	02BB		call	sdload
CALL	06F0		call	getfcp	; get FCP data
LD	DE,04BE		lxi	d,fcpdata	; load
CALL	02BB		call	sdload
			lxi	h,ndridat	; init NDR data in case no entry
			lxi	d,ndrdata
			mvi	b,9	; 9 bytes (1-jmp, 5-ID, 2-adr, 1-size)
			call	moveb
CALL	072E		call	getndr	; get NDR data
			mov	a,h	; no NDR data?
			ora	l
			rz
LD	DE,04CA		lxi	d,ndrdata	; load and fall thru to sdload
CALL	02BB		call	sdload
DEC	DE		dcx	d	; pt to entry count
LD	A,(DE)		ldax	d	; get entry count
PUSH	DE		push	d	; save ptr
LD	H,00		mvi	h,0	; HL = value
LD	L,A		mov	l,a
ADD	HL,HL		dad	h	; *2
LD	D,H		mov	d,h	; DE = value * 2
LD	E,L		mov	e,l
ADD	HL,HL		dad	h	; *4
ADD	HL,HL		dad	h	; *8
ADD	HL,HL		dad	h	; *16
ADD	HL,DE		dad	d	; *18
LD	A,H		mov	a,h	; /128
RLCA			rlc
AND	FE		ani	0feh
LD	H,L		mov	h,a
LD	A,L		mov	a,l
RLCA			rlc
AND	01		ani	1	; A = value * 18 / 128
OR	H		ora	h	; +1
INC	A		inr	a	; get ptr
POP	DE		pop	d	; save value
LD	(DE),A		stax	d
RET			ret				

As you can see, the LDR.COM version does not check for valid Named Directories.
I have used LDR as assembled from LDR.MAC and it is working fine.  This
resolves
the problem as far as I am concerned.  If you would still like me to send you
the values in my sys.env file I will do so, but I don't think this is necessary.

--Ted--
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>