HP3000-L Archives

February 2005, Week 4

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
"F. Alfredo Rego" <[log in to unmask]>
Reply To:
F. Alfredo Rego
Date:
Tue, 22 Feb 2005 15:07:58 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (386 lines)
At 14:32 -0700 2/22/05, Larry Simonsen wrote:

>i am migrating an application which is off support from one 3000 to
>another (918 to a400).
>the application runs fine on the 918 but on the a400 (after using buldacct
>to migrate format, adding volume set information) i get an open error. the
>problem is i do not know the file it is trying to open.
>i have located the location of the fopen but this is in NM and i do not
>know how to locate and display the parameters including name.  can someone
>please help pint me to which register has the pointers in it and what the
>offsets might be.  also format for display of memory would be helpful.

As a first step, from Stan Sieler's / Lund's cseq, here is the
info for both HPFOPEN and FOPEN:

Procedure HPFOPEN (
   Parm_0       : (# actual parameters)   {R26}
   filenum      : var    int32   ;        {R25}
   status       : anyvar int32   ;        {R24} := nil
   itemnum01    :        int32   ;        {R23} := 0
   itemval01    : anyvar record  ;        {SP-$0034, @32 -> 8208} := nil
   itemnum02    :        int32   ;        {SP-$0038} := 0
   itemval02    : anyvar record  ;        {SP-$003c, @32 -> 8208} := nil
   itemnum03    :        int32   ;        {SP-$0040} := 0
   itemval03    : anyvar record  ;        {SP-$0044, @32 -> 8208} := nil
   itemnum04    :        int32   ;        {SP-$0048} := 0
   itemval04    : anyvar record  ;        {SP-$004c, @32 -> 8208} := nil
   itemnum05    :        int32   ;        {SP-$0050} := 0
   itemval05    : anyvar record  ;        {SP-$0054, @32 -> 8208} := nil
   itemnum06    :        int32   ;        {SP-$0058} := 0
   itemval06    : anyvar record  ;        {SP-$005c, @32 -> 8208} := nil
   itemnum07    :        int32   ;        {SP-$0060} := 0
   itemval07    : anyvar record  ;        {SP-$0064, @32 -> 8208} := nil
   itemnum08    :        int32   ;        {SP-$0068} := 0
   itemval08    : anyvar record  ;        {SP-$006c, @32 -> 8208} := nil
   itemnum09    :        int32   ;        {SP-$0070} := 0
   itemval09    : anyvar record  ;        {SP-$0074, @32 -> 8208} := nil
   itemnum10    :        int32   ;        {SP-$0078} := 0
   itemval10    : anyvar record  ;        {SP-$007c, @32 -> 8208} := nil
   itemnum11    :        int32   ;        {SP-$0080} := 0
   itemval11    : anyvar record  ;        {SP-$0084, @32 -> 8208} := nil
   itemnum12    :        int32   ;        {SP-$0088} := 0
   itemval12    : anyvar record  ;        {SP-$008c, @32 -> 8208} := nil
   itemnum13    :        int32   ;        {SP-$0090} := 0
   itemval13    : anyvar record  ;        {SP-$0094, @32 -> 8208} := nil
   itemnum14    :        int32   ;        {SP-$0098} := 0
   itemval14    : anyvar record  ;        {SP-$009c, @32 -> 8208} := nil
   itemnum15    :        int32   ;        {SP-$00a0} := 0
   itemval15    : anyvar record  ;        {SP-$00a4, @32 -> 8208} := nil
   Parm_33      :        int32   ;        {SP-$00a8} := 0
   Parm_34      : anyvar record  ;        {SP-$00ac, @32 -> 8208} := nil
   Parm_35      :        int32   ;        {SP-$00b0} := 0
   Parm_36      : anyvar record  ;        {SP-$00b4, @32 -> 8208} := nil
   Parm_37      :        int32   ;        {SP-$00b8} := 0
   Parm_38      : anyvar record  ;        {SP-$00bc, @32 -> 8208} := nil
   Parm_39      :        int32   ;        {SP-$00c0} := 0
   Parm_40      : anyvar record  ;        {SP-$00c4, @32 -> 8208} := nil
   Parm_41      :        int32   ;        {SP-$00c8} := 0
   Parm_42      : anyvar record  ;        {SP-$00cc, @32 -> 8208} := nil
   Parm_43      :        int32   ;        {SP-$00d0} := 0
   Parm_44      : anyvar record  ;        {SP-$00d4, @32 -> 8208} := nil
   Parm_45      :        int32   ;        {SP-$00d8} := 0
   Parm_46      : anyvar record  ;        {SP-$00dc, @32 -> 8208} := nil
   Parm_47      :        int32   ;        {SP-$00e0} := 0
   Parm_48      : anyvar record  ;        {SP-$00e4, @32 -> 8208} := nil
   Parm_49      :        int32   ;        {SP-$00e8} := 0
   Parm_50      : anyvar record  ;        {SP-$00ec, @32 -> 8208} := nil
   Parm_51      :        int32   ;        {SP-$00f0} := 0
   Parm_52      : anyvar record  ;        {SP-$00f4, @32 -> 8208} := nil
   Parm_53      :        int32   ;        {SP-$00f8} := 0
   Parm_54      : anyvar record  ;        {SP-$00fc, @32 -> 8208} := nil
   Parm_55      :        int32   ;        {SP-$0100} := 0
   Parm_56      : anyvar record  ;        {SP-$0104, @32 -> 8208} := nil
   Parm_57      :        int32   ;        {SP-$0108} := 0
   Parm_58      : anyvar record  ;        {SP-$010c, @32 -> 8208} := nil
   Parm_59      :        int32   ;        {SP-$0110} := 0
   Parm_60      : anyvar record  ;        {SP-$0114, @32 -> 8208} := nil
   Parm_61      :        int32   ;        {SP-$0118} := 0
   Parm_62      : anyvar record  ;        {SP-$011c, @32 -> 8208} := nil
   Parm_63      :        int32   ;        {SP-$0120} := 0
   Parm_64      : anyvar record  ;        {SP-$0124, @32 -> 8208} := nil
   Parm_65      :        int32   ;        {SP-$0128} := 0
   Parm_66      : anyvar record  ;        {SP-$012c, @32 -> 8208} := nil
   Parm_67      :        int32   ;        {SP-$0130} := 0
   Parm_68      : anyvar record  ;        {SP-$0134, @32 -> 8208} := nil
   Parm_69      :        int32   ;        {SP-$0138} := 0
   Parm_70      : anyvar record  ;        {SP-$013c, @32 -> 8208} := nil
   Parm_71      :        int32   ;        {SP-$0140} := 0
   Parm_72      : anyvar record  ;        {SP-$0144, @32 -> 8208} := nil
   Parm_73      :        int32   ;        {SP-$0148} := 0
   Parm_74      : anyvar record  ;        {SP-$014c, @32 -> 8208} := nil
   Parm_75      :        int32   ;        {SP-$0150} := 0
   Parm_76      : anyvar record  ;        {SP-$0154, @32 -> 8208} := nil
   Parm_77      :        int32   ;        {SP-$0158} := 0
   Parm_78      : anyvar record  ;        {SP-$015c, @32 -> 8208} := nil
   Parm_79      :        int32   ;        {SP-$0160} := 0
   Parm_80      : anyvar record  ;        {SP-$0164, @32 -> 8208} := nil
   Parm_81      :        int32   ;        {SP-$0168} := 0
   Parm_82      : anyvar record  ;        {SP-$016c, @32 -> 8208} := nil
   Parm_83      :        int32   ;        {SP-$0170} := 0
   Parm_84      : anyvar record  )        {SP-$0174, @32 -> 8208} := nil
   {(up to 41 itemnum/itemval pairs)                                   }
   {                                                                   }
   {Note: most parameters of type "ca" must start                      }
   {      with some character, followed by the text/data,              }
   {      and then be terminated by the same character.                }
   {      E.g.:  -disc-   (6 characters)                               }
   {        or:  ~disc~                                                }
   {                                                                   }
   {item#s sizes  meanings:  (some "deduced"/"undoc")                  }
   { ## $$$                                                            }
   {  0         end of list (can override r26)                         }
   {  1     ?   "parse string" (undocumented)                          }
   {  2     ca  -filename-                                             }
   {  3     i32 domain: 0=new, 1=perm,                                 }
   {            2=temp, 3=old                                          }
   {            4=make PERM at open!                                   }
   {  4     -   (apparently not a valid option)                        }
   {  5     i32 Designator: 0=(name)                                   }
   {            1=$stdlist, 2=$newpass                                 }
   {            3=$oldpass, 4=$stdin                                   }
   {            5=$stdinx,  6=$null, 7 = $stderr                       }
   {  6     i32 format: 0=f, 1=v, 2=u                                  }
   {            0 = fixed                                              }
   {            1 = variable                                           }
   {            2 = undefined                                          }
   {            4 = "root"      (undoc)                                }
   {            6 = "acct"      (undoc)                                }
   {            7 = "group"     (undoc)                                }
   {            9 = byte stream (see opt 77 too!)                      }
   {           10 = "hpdir"                                            }
   {  7     i32 CCTL 0=cctl, 1=nocctl                                  }
   {  8     ca  tape label                                             }
   {  9     i32 fileeq 1=disable fileequate                            }
   { 10 $0a i32 file type: 0=standard,                                 }
   {            1=old KSAM, 2=RIO, 3=NM KSAM,                          }
   {            4=circ, 5=spool, 6=MSG,                                }
   {            9=DIR, 13=fifo, 14=symlink                             }
   { 11 $0b i32 access type: 0=read,                                   }
   {            1=write, 2=writesave                                   }
   {            3=append, 4=IO, 5=update                               }
   {            6=execute, 7=executeRead                               }
   {            8=NoAccessCheck, 9=DirectoryRead                       }
   { 12 $0c i32 Locking: 0=nolock, 1=lock                              }
   { 13 $0d i32 Exclusive:                                             }
   {            0 = read or read-share                                 }
   {            1 = exclusive,                                         }
   {            2 = read-share (SEMI)                                  }
   {            3 = share (SHR)                                        }
   { 14 $0e i32 multiaccess: 0=nomulti,                                }
   {            1=multi, 2=gmulti                                      }
   { 15 $0f i32 multiRecord: 0=none,1=MR                               }
   { 16 $10 i32 nowait: 0=wait, 1=nowait                               }
   { 17 $11 i32 copy mode: 1=COPY                                      }
   { 18 $12 @i32 Short Mapped (itemval is address of                   }
   {            a 32-bit pointer)                                      }
   { 19 $13 i32 record size (bytes)                                    }
   { 20 $14 ca  -devicename-  (i.e.: delimited on both sides)          }
   { 21 $15 @i64 Long Mapped (itemval is address of                    }
   {            a 64-bit pointer)                                      }
   { 22 $16 ca  -volumeclass-                                          }
   { 23 $17 ca  -volumename-                                           }
   { 24 $18 i32 density (e.g.: 6250)                                   }
   { 25 $19 ca  printer environment  (~text~)                          }
   { 26 $1a ca  remote environment (~text~)                            }
   { 27 $1b i32 output priority (1=low, 13=high)                       }
   { 28 $1c ca48 spooled message (~text~)                              }
   { 29 $1d i32 (temp) priv level (0..3)                               }
   { 30 $1e i32 labeled tape type (0=ANSI, 1=IBM)                      }
   { 31 $1f ca  labeled tape expiration (~mm/dd/yy~)                   }
   { 32 $20 ca  labeled tape sequence (~text~)                         }
   { 33 $21 i32 # userlabels                                           }
   { 34 $22 i32 # spooler copies                                       }
   { 35 $23 i32 filesize (#records, usually)                           }
   {            (is #blocks for variable-recsize files)                }
   { 36 $24 i32 initial allocation (#records)                          }
   { 37 $25 i32 filecode  (-32768..32767)                              }
   { 38 $26 i32 file priv level (0..3)                                 }
   { 39 $27 i32 will_access: 0=seq, 1=random                           }
   { 40 $28 i32 block factor                                           }
   { 41 $29 i32 Name semantics                                         }
   {              0 = MPE-escaped                                      }
   {              1 = MPE-only                                         }
   {              2 = Posix                                            }
   {              3 = Program   (undoc)                                }
   {              4 = Session   (undoc)                                }
   { 42 $2a ca8 ~Device class~  (up to 8 + 2 chars)                    }
   { 43 $2b ca20  UFID (20 bytes)                                      }
   { 44 $2c i32 #buffers (1..31, or less for some)                     }
   { 45 $2d ca2 fill character (e.g., '  ')                            }
   { 46 $2e i32 buffering: 0=buf, 1=NOBUF                              }
   { 47 $2f i32 # extents (1..32)                                      }
   { 48 $30 i32 reverse VT                                             }
   { 49 $31 i32 pin# for owner of file (PM needed!)                    }
   {            (undocumented, unsupported?)                           }
   { 50 $32 i32 final disposition                                      }
   {            0 = no change                                          }
   {            1 = perm                                               }
   {            2 = temp job (rewound)                                 }
   {            3 = temp job (not rewound)                             }
   {            4 = purge                                              }
   {            5 = convert perm -> temp                               }
   { 51 $33 str filename in a Pascal/XL string                         }
   {            NOTE: if used in Pascal, with a                        }
   {            string variable, the address passed                    }
   {            in is actually: addr (string[1]).                      }
   {            The intrinsic compensates by                           }
   {            subtracting 4 from the address to get                  }
   {            the address of the length portion.                     }
   {            So, be careful from other languages!                   }
   { 52 $34 ca  -file equation text-                                   }
   { 53 $35 i32 ASCII/binary (0=binary, 1=ASCII)                       }
   { 54 $36 ca  KSAM keys definition (KSAM/XL or                       }
   {            KSAM/3000)                                             }
   { 55 $39 ca  Raw mode (ca = record as follows)                      }
   {             ca256 file label                                      }
   {             i4 ptr to intrinsic interface extens                  }
   {             i4 len of intrinsic interface extens                  }
   {             i4 ptr to type mgr extensions                         }
   {             i4 len of type mgr extensions                         }
   {             i4 ptr to storage mgr extensions                      }
   {             i4 len of storage mgr extensions                      }
   { 56 $38 i32 user object class (0..10)                              }
   {        Many of the following are undocumented.                    }
   { 57 $39 i32 Variable access rights                                 }
   {            (0 = no, 1 = yes)                                      }
   { 58 $3a i32? Unprotected (PM)  (0 = no, 1 = yes)                   }
   { 59 $3b i32 System Object Class (0..799)                           }
   {            (if virt addr already allocated,                       }
   {            item 59 appears to be ignored)                         }
   { 60 $3c i32 Use File PID (0=no, 1=yes)                             }
   { 61 $3d ?   Access Rights                                          }
   { 62 $3e i32? Unprotected Variable Access Rights                    }
   {            (0 = no, 1 = yes)                                      }
   { 63 $3f i32 Must Allocate Secondary Storage                        }
   {            (0 = no, 1 = yes)                                      }
   { 64 $40 ca  ACD (text<cr>)                                         }
   { 65 $41 i32? Close Priv                                            }
   { 66 $42 i32? Link Device                                           }
   { 67 $43 i32 Internal Spool Files (0..127)                          }
   { 68 $44 i32 Link Spool File (0=no, 1=yes)                          }
   { 69 $45 i32 Private Spool File (0=no, 1=yes)                       }
   { 70 $46 i32 Keep Spool File (0=nokeep, 1=keep)                     }
   { 71 $47 i32? Spool File Type:                                      }
   {            0 = output, 1 = input                                  }
   {            2 = job, 3 = data                                      }
   { 72 $48 i32 Suppress Page Eject (1 = suppress)                     }
   { 73 $49 ?   Resv Device Ticket                                     }
   { 74 $4a i32 Header/Trailer ("Inherit Printer Env")                 }
   {            0 = enable  header, enable  trailer                    }
   {            1 = disable header, enable  trailer                    }
   {            2 = enable  header, disable trailer                    }
   {            3 = disable header, disable trailer                    }
   { 75 $4b ?   Type Manager Address                                   }
   { 76 $4c ?   Form ID                                                }
   { 77 $4d i32 Read (*and* Write) Format:                             }
   {            0 = use standard record view                           }
   {            1 = HPDIRREAD returnd priv info                        }
   {                (UFID & Link ID of files)                          }
   {                (caller must be in "system code")                  }
   {            2 = access as byte stream                              }
   {            3 = (like 1 + "split") (undoc)                         }
   {            Note: to successfully create byte stream               }
   {            files *without* linefeeds, open with                   }
   {            opt 77=2 and opt 6=9.  SS                              }
   { 78 $4e i32? "Raw operation" (undocumented)                        }
   {            0 = raw create (undocumented)                          }
   {            1 = raw recover (undocumented)                         }
   { 79 $4f i32? POSIX Non-Block mode (0=false,1=true)                 }
   { 80 $50 i32? MPE/iX Device Type  (undoc)                           }
   {            0 = disc                                               }
   {            7 = streams                                            }
   { 81 $51 i32 Symbolic Link traversal                                }
   {            0 = follow symbolic links                              }
   {            1 = don't follow symbolic links                        }
   {                (only applies to final component                   }
   {                 of a path; will open the link,                    }
   {                 not what it "points" to.)                         }
   {--- new in 5.5----                                                 }
   { 82 $54 i32 Reserved File Descriptor                               }
   {            0 = use default fd                                     }
   {            1 = use reserved fd                                    }
   {            2 = don't use reserved fd                              }
   { 83 $53 i32 Override Protection (0=no, 1=yes)                      }
   { 84 $52 i32 Standard Access                                        }
   {            0 = use standard access                                }
   {            1 = ignore standard access                             }
   {--- new in 6.0----                                                 }
   { 85 $55 i32 HSM_AUTO   (0=auto,   1=noauto)                        }
   { 86 $56 i32 HSM_REMAIN (0=change, 1=remain)                        }
   {--- new in 6.5----                                                 }
   { 87 $57 @i64 Large Mapped (itemval is address of                   }
   {            a 64-bit pointer)                                      }
      extensible 1
      uncheckable_anyvar
________________________________________________________________________

Function FOPEN (
   filename     : anyvar record  ;        {R26} := nil
   foptions     :        uint16  ;        {R25} := 0
   aoptions     :        uint16  ;        {R24} := 0
   recsize      :        int16   ;        {R23} := 0
   device       : anyvar record  ;        {SP-$0034} := nil
   formmsg      : anyvar record  ;        {SP-$0038} := nil
   userlabels   :        int16   ;        {SP-$003a} := 0
   blockfactor  :        int16   ;        {SP-$003e} := 0
   numbuffers   :        int16   ;        {SP-$0042} := 0
   filesize     :        int32   ;        {SP-$0048} := 0
   numextents   :        int16   ;        {SP-$004a} := 0
   initialalloc :        int16   ;        {SP-$004e} := 0
   filecode     :        int16   )        {SP-$0052} := 0
      := file# : int16     {R28}
      { CCE: Filed opened                                        }
      { CCL: File not opened...do: FCHECK (0, err) for why.      }
   {if ok, file# is > 0  (0 indicates error)                           }
   {filename: terminate with blank or null.                            }
   {foptions:   (16-bits)                                              }
   {   00:02 (reserved)                                                }
   {   02:03 file type: 0=standard, 1=KSAM/V                           }
   {         2=RIO, 3=KSAM/XL, 4=CIR,                                  }
   {         5=NM Spool, 6=MSG, 7=KSAM64                               }
   {   05:01 1=Disallow File Equates, 0=Allow                          }
   {   06:01 1=Labelled tape                                           }
   {   07:01 1=CCTL                                                    }
   {   08:02 Record format: 0=fixed, 1=Var,                            }
   {         2=Undefined (useful for tapes)                            }
   {   10:03 Designator: 0=use filename,                               }
   {         1=$STDLIST, 2=$NEWPASS, 3=$OLDPASS                        }
   {         4=$STDIN (don't use), 5=$STDINX,                          }
   {         6=$NULL.                                                  }
   {   13:01 1=ASCII, 0=Binary                                         }
   {   14:02 Domain: 0=new, 1=OldPerm, 2=OldTemp,                      }
   {         3=Old (Temp first, Perm second)                           }
   {aoptions: (16 bits)                                                }
   {   00:03 (reserved)                                                }
   {   03:01 1=COPY mode                                               }
   {   04:01 1=NOWAIT                                                  }
   {   05:02 Multiaccess: 0=NOMULTI,1=MULTI,2=GMULTI                   }
   {   07:01 1=NOBUF                                                   }
   {   08:02 Exclusive: 0=default, 1=EXClusive,                        }
   {         2=SEMI (read-share), 3=SHR                                }
   {   10:01 1=LOCK                                                    }
   {   11:01 1=MR, 0=NOMR.  Note: Intrinsics manual                    }
   {         incorrectly calls this [NO]MULTI.                         }
   {   12:04 Access type:                                              }
   {         0 = IN (read)                                             }
   {         1 = OUT (write, resets EOF to 0)                          }
   {         2 = WriteSAVE (don't reset EOF to 0)                      }
   {         3 = APPEND                                                }
   {         4 = INOUT (read/write)                                    }
   {         5 = UPDATE                                                }
   {         6 = eXecute (needs PM)                                    }
   {         7 = load program (needs PM)                               }
   {         8 = no acc check (needs PM)                               }
   {         9 = dir read (needs PM)                                   }
   {recsize: < 0 = bytes, > 0 = 16-bit words                           }
   {device: terminate with a blank or null.                            }
   {formmsg: up to 49 bytes, terminate with period                     }
   {userlabels: 0..254                                                 }
   {blockfactor: 1..255                                                }
   {numbuffers:                                                        }
   {   04:07 = # spooler output priority (1..13)                       }
   {   04:07 = # spoolfile copies (0..127)                             }
   {   11:05 = # buffers (1..31, or less for                           }
   {             Cir, RIO, MSG, KSAM/V, KSAM/XL)                       }
   {filesize: default = 1023                                           }
   {numextents: only 1 or >1 are meaningful                            }
   {initialalloc: only meaningful if = numextents                      }
   {filecode: if < 0, must be in PM.                                   }
      uncheckable_anyvar

  _______________
 |               |
 |               |
 |            r  |  Alfredo                  http://www.adager.com
 |          e    |
 |        g      |  F. Alfredo Rego
 |      a        |  Manager, R & D Labs
 |    d          |  Adager Corporation
 |  A            |  Sun Valley, Idaho 83353-3000            U.S.A.
 |               |
 |_______________|

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2