erstes Device im Parser

This commit is contained in:
2026-08-22 16:07:42 +02:00
parent 97d9f27800
commit f2ae46c427
+51 -3
View File
@@ -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;