Erster Parser Test

This commit is contained in:
2026-08-17 16:22:27 +02:00
parent 362468b895
commit a1eb6aa0ab
+88
View File
@@ -20,6 +20,94 @@ ctl-opt
dcl-pr MD_ParseRetrieveBuffer;
ReceiverBuffer
char(32767) const
options(*varsize);
MediaDefinition
likeds(MD_MediaDefinition_T);
end-pr;
//=====================================================================
//
// MD_ParseRetrieveBuffer
//
// Parses a retrieved MEDDFN buffer.
//
// Currently supported:
// TAPE0200 header
//
//=====================================================================
dcl-proc MD_ParseRetrieveBuffer;
dcl-pi *n;
ReceiverBuffer
char(32767) const
options(*varsize);
MediaDefinition
likeds(MD_MediaDefinition_T);
end-pi;
dcl-ds HeaderBuffer
char(%size(MD_Tape0200Header_T));
dcl-ds Header
likeds(MD_Tape0200Header_T)
overlay(HeaderBuffer);
//---------------------------------------------------------------
// Initialize result
//---------------------------------------------------------------
clear MediaDefinition;
//---------------------------------------------------------------
// Copy TAPE0200 header
//---------------------------------------------------------------
HeaderBuffer =
%subst(
ReceiverBuffer :
1 :
%size(MD_Tape0200Header_T));
//---------------------------------------------------------------
// Header -> Media Definition
//---------------------------------------------------------------
MediaDefinition.MaximumParallelResources =
Header.MaximumParallelDeviceResources;
MediaDefinition.MinimumParallelResources =
Header.MinimumParallelDeviceResources;
MediaDefinition.NumberOfDevices =
Header.NumberOfDeviceDefinitions;
MediaDefinition.DeviceAllocation =
Header.DeviceAllocation;
MediaDefinition.SaveFormat =
Header.SaveFormat;
end-proc;
//===================================================================== //=====================================================================
// //
// MD_RetrieveMediaDefinition // MD_RetrieveMediaDefinition