erstes Device im Parser
This commit is contained in:
+51
-3
@@ -37,8 +37,9 @@ end-pr;
|
|||||||
//
|
//
|
||||||
// Parses a retrieved TAPE0200 buffer.
|
// Parses a retrieved TAPE0200 buffer.
|
||||||
//
|
//
|
||||||
// Currently:
|
// Currently supported:
|
||||||
// - TAPE0200 header
|
// - TAPE0200 header
|
||||||
|
// - TAPE0200 device definitions
|
||||||
//
|
//
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
|
|
||||||
@@ -59,6 +60,12 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
dcl-ds Header
|
dcl-ds Header
|
||||||
likeds(MD_Tape0200Header_T);
|
likeds(MD_Tape0200Header_T);
|
||||||
|
|
||||||
|
dcl-ds Device
|
||||||
|
likeds(MD_Tape0200DeviceDefinition_T);
|
||||||
|
|
||||||
|
dcl-s DeviceOffset int(10);
|
||||||
|
dcl-s DeviceIndex int(10);
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Initialize result
|
// Initialize result
|
||||||
@@ -68,7 +75,7 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Copy TAPE0200 header
|
// TAPE0200 Header
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
|
|
||||||
Header =
|
Header =
|
||||||
@@ -98,8 +105,49 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
Header.SaveFormat;
|
Header.SaveFormat;
|
||||||
|
|
||||||
|
|
||||||
end-proc;
|
//---------------------------------------------------------------
|
||||||
|
// Device Definitions
|
||||||
|
//---------------------------------------------------------------
|
||||||
|
|
||||||
|
DeviceOffset =
|
||||||
|
Header.OffsetToFirstDeviceDefinition;
|
||||||
|
|
||||||
|
for DeviceIndex = 1
|
||||||
|
to Header.NumberOfDeviceDefinitions;
|
||||||
|
|
||||||
|
Device =
|
||||||
|
%subst(
|
||||||
|
ReceiverBuffer :
|
||||||
|
DeviceOffset + 1 :
|
||||||
|
%size(Device));
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
// Device -> Media Definition
|
||||||
|
//------------------------------------------------------------
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex).DeviceName =
|
||||||
|
Device.DeviceName;
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles =
|
||||||
|
Device.NumberOfMediaFileDefinitions;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
// Next device
|
||||||
|
//------------------------------------------------------------
|
||||||
|
|
||||||
|
if Device.OffsetToNextDeviceDefinition > 0;
|
||||||
|
|
||||||
|
DeviceOffset +=
|
||||||
|
Device.OffsetToNextDeviceDefinition;
|
||||||
|
|
||||||
|
endif;
|
||||||
|
|
||||||
|
endfor;
|
||||||
|
|
||||||
|
|
||||||
|
end-proc;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user