<< 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 >>