<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Basic_direct_access_method</id>
	<title>Basic direct access method - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Basic_direct_access_method"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Basic_direct_access_method&amp;action=history"/>
	<updated>2026-05-04T18:06:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Basic_direct_access_method&amp;diff=6401018&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot: Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Basic_direct_access_method&amp;diff=6401018&amp;oldid=prev"/>
		<updated>2023-09-27T18:26:38Z</updated>

		<summary type="html">&lt;p&gt;Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Computer access method}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Basic Direct Access Method&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;BDAM&amp;#039;&amp;#039;&amp;#039; is an [[access method]] for IBM&amp;#039;s [[OS/360 and successors]] computer [[operating systems]] on [[IBM System/360|System/360]] and later [[IBM mainframe|mainframes]].  BDAM &amp;quot;consists of routines used in retrieving data from, and storing data onto, [[direct access storage device|direct access devices]].&amp;quot;&amp;lt;ref name=BDAMLogic&amp;gt;{{cite manual|publisher=IBM|title=IBM System/360 Operating System Basic Direct Access Method Program Logic Manual|id=Y28-6617-3|date=July 1967|url=http://www.bitsavers.org/pdf/ibm/360/os/bdam/Y28-6617-3_BDAM_PLM_Jul67.pdf}}&amp;lt;/ref&amp;gt;{{rp|p.5}}  BDAM is available on [[OS/360]], [[OS/VS2]], [[MVS]], [[z/OS]], and related high-end operating systems.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;#039;&amp;#039;Basic&amp;#039;&amp;#039;, in IBM terminology, indicates a lower-level access method that deals with [[data set (IBM mainframe)|data sets]] in terms of physical [[Block (data storage)|blocks]] and does not provide either read-ahead, called &amp;#039;&amp;#039;anticipatory buffering&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;synchronization&amp;#039;&amp;#039; &amp;amp;mdash; that is, the user program has to explicitly wait for completion of each input/output event.&amp;lt;ref name=DataMgmt&amp;gt;{{cite manual|publisher=IBM|title=IBM System/360 Operating System Data Management|id=C28-6537-1|date=April 1966|url=http://www.bitsavers.org/pdf/ibm/360/os/R01-08/C28-6537-1_Data_Management_Apr66.pdf}}&amp;lt;/ref&amp;gt;{{rp|p.31}}&lt;br /&gt;
&lt;br /&gt;
With BDAM, &amp;quot;the programmer can directly store and retrieve a block by specifying either&lt;br /&gt;
its actual [[#Disk_addresses|device address]], its [[#Disk_addresses|relative position]] within a data set (relative block number), or the [[#Disk_addresses|relative track]] within a data set at which the system is to begin a search.&amp;lt;ref name=DataMgmt /&amp;gt;{{rp|p.63}}&lt;br /&gt;
&lt;br /&gt;
BDAM provides no index or structure to the file except as programmed by the application.  In many applications, a hashing or randomizing function may be used to assign the block address based on a key in the data.  If physical [[Count Key Data|keys]] are used, the key of the last record within the block must be written as the key for that block.&lt;br /&gt;
&lt;br /&gt;
The BDAM application program interface can be compared with the interface offered by &amp;#039;&amp;#039;open&amp;#039;&amp;#039;, &amp;#039;&amp;#039;read&amp;#039;&amp;#039;, &amp;#039;&amp;#039;write&amp;#039;&amp;#039; and &amp;#039;&amp;#039;close&amp;#039;&amp;#039; calls (using file handles) in other operating systems such as [[Unix]] and [[Microsoft Windows|Windows]].&lt;br /&gt;
&lt;br /&gt;
BDAM is still supported by IBM as of 2012.  Because of its dependence on physical device geometry new IBM direct-access devices used with z/OS emulate [[IBM 3390]] devices regardless of their real physical characteristics.&lt;br /&gt;
&lt;br /&gt;
==Application program interface==&lt;br /&gt;
The programmer specifies &amp;lt;code&amp;gt;DSORG=DA&amp;lt;/code&amp;gt; in his [[Data Control Block]] (DCB) to indicate use of BDAM. Space can be in up to 16 [[Extent (file systems)|extents]] on each [[Volume (computing)|volume]].  The data set (equivalent to a &amp;quot;file&amp;quot;) can reside in up to 255 extents across multiple volumes.  If the application has a dependency on the space being on contiguous tracks, you can allocate space for the direct data set in [[Contiguous data storage|contiguous]] tracks by coding &amp;lt;code&amp;gt;SPACE=(,,CONTIG)&amp;lt;/code&amp;gt; on the DD statement.&lt;br /&gt;
&lt;br /&gt;
Direct data sets must be preformatted before use by opening them as output and writing all the blocks sequentially. This can load all &amp;quot;dummy&amp;quot; records or load initial data.&amp;lt;ref name=&amp;quot;ibm&amp;quot;&amp;gt;[http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfha2/dfha24f.htm CICS and BDAM], IBM infocenter&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a &amp;#039;&amp;#039;basic&amp;#039;&amp;#039; access method BDAM reads and writes member data in [[Block (data storage)|blocks]] and the I/O operation proceeds [[Asynchronous I/O|asynchronously]] and must be tested for completion using the &amp;lt;code&amp;gt;CHECK&amp;lt;/code&amp;gt; macro.&amp;lt;ref name=Macro&amp;gt;{{cite book|last1=IBM Corporation|title=OS Data Management Macro Instructions|date=June 1973|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/os/R21.7_Apr73/GC26-3794-1_OS_Data_Management_Macro_Instructions_Rel_21.7_Jun73.pdf|accessdate=August 19, 2016}}&amp;lt;/ref&amp;gt; BDAM uses the standard system macros &amp;lt;code&amp;gt;OPEN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CLOSE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WRITE&amp;lt;/code&amp;gt;,and &amp;lt;code&amp;gt;CHECK&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;READ&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;WRITE&amp;lt;/code&amp;gt; [[macro instruction]]s must provide the block address or key of the desired record. The &amp;lt;code&amp;gt;CHECK&amp;lt;/code&amp;gt; macro has to be used to wait for completion of a specific operation before the data can be accessed or the [[data buffer]] reused. It is possible to start multiple input/output operations to run concurrently.&lt;br /&gt;
&lt;br /&gt;
Records in a direct data set can contain user-specified &amp;#039;&amp;#039;recorded keys&amp;#039;&amp;#039; of up to 255 bytes—all keys in a file must be the same length. Reads and writes can specify a key in addition to a disk address, and BDAM will search starting at the requested block up to the entire area of the file for a record with a matching key.&amp;lt;ref name=DataMgmt /&amp;gt; This allows multiple keys [[Hash function|hashing]] to the same track to be handled automatically by the I/O subsystem.&lt;br /&gt;
&lt;br /&gt;
==Disk addresses==&lt;br /&gt;
BDAM accepts disk addresses as either actual device addresses, as relative track addresses, or as relative block numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Device addresses&amp;#039;&amp;#039;&amp;#039; are eight byte fields in the form &amp;#039;&amp;#039;&amp;#039;MBBCCHHR&amp;#039;&amp;#039;&amp;#039;.  All subfields are binary numbers.&amp;lt;ref&amp;gt;{{cite web|last=IBM Corporation |title=Executing Direct Access Programs |website=[[IBM]] |url=https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.idas300/xdapx.htm}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; is the &amp;#039;&amp;#039;extent number&amp;#039;&amp;#039; for files with more than one &amp;#039;&amp;#039;extent&amp;#039;&amp;#039; (non-contiguous files).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BB&amp;#039;&amp;#039;&amp;#039; is zero.  Previously this indicated the &amp;#039;&amp;#039;bin&amp;#039;&amp;#039; on an [[IBM 2321 Data Cell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CC&amp;#039;&amp;#039;&amp;#039; is the absolute cylinder number on the device.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;HH&amp;#039;&amp;#039;&amp;#039; is the track (head) number.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; is the record number on the track.  Record zero contains control information for the track and can not be used.&lt;br /&gt;
Specifying device addresses makes the dataset &amp;#039;&amp;#039;unmovable&amp;#039;&amp;#039;.&amp;lt;ref name=DataMgmt /&amp;gt;{{rp|p.106}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Relative track addresses&amp;#039;&amp;#039;&amp;#039; are three byte fields in the form &amp;#039;&amp;#039;&amp;#039;TTR&amp;#039;&amp;#039;&amp;#039;.  All subfields are binary numbers.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TT&amp;#039;&amp;#039;&amp;#039; is the relative track number in the file, starting with zero.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; is the record number on the track.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Relative block numbers&amp;#039;&amp;#039;&amp;#039; are four byte (fullword) binary numbers indicating the block number in the file.  The first block is block 0.  This form of addressing can only be used with fixed length blocks (&amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt;).&amp;lt;ref name=DataMgmt2&amp;gt;{{cite manual|publisher=IBM|title=OS Data Management Services Guide|id=GC26-3746-2|date=July 1973|url=http://www.bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC26-3746-2_OS_Data_Management_Services_Guide_Rel_21.7_Jul73.pdf}}&amp;lt;/ref&amp;gt;{{rp|p.106}}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Count Key Data]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{cite manual|publisher=IBM|title=Introduction to IBM Direct-Access Storage Devices and Organization Methods|id=GC20-1649-9|date=February 1974|url=http://www.bitsavers.org/pdf/ibm/dasd/GC20-1649-9_DASDintro_Dec75.pdf|access-date=2012-09-24|archive-date=2011-03-22|archive-url=https://web.archive.org/web/20110322195353/http://www.bitsavers.org/pdf/ibm/dasd/GC20-1649-9_DASDintro_Dec75.pdf|url-status=dead}}&lt;br /&gt;
&lt;br /&gt;
{{Mainframe I/O access methods}}&lt;br /&gt;
&lt;br /&gt;
[[Category:IBM mainframe operating systems]]&lt;br /&gt;
[[Category:Computer file formats]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>