72 k32
Hf,jc
HPage ##
Hz,m0,t4,jc
HPro-pads (PDS) and LS-DOS 6.3
Hjl,m4
H
HPro-pads started life as PDS (Partitioned Data Set) in late 1981 and wasHdeveloped to work in the LDOS 5.0-5.1 environment. Its prime purpose wasHto provide programmers using LC & EDAS assemblers with a libraryHfacility and, as a secondary, but also a very useful facility PDSHoffered the ability to store executable command files very economical.HPDS uses the true size of the file to store the data rather than simplyHallocating granule size chunks to a file. PDS also can also be used toHarchive data files, again giving maximum space saving. Please note I useHthe term archive rather than store on a disc. Whereas command files canHbe executed directly from a PDS library, data files cannot be accessedHdirectly and must be extracted first. In my view this was one of theHshort comings of PDS, however, I must remember PDS was designed as aHlibrary utility, and that it does very well.
H
HWith the arrival of the model 4 PDS was converted to run in the 6.0Hoperating system environment and also renamed to Pro-pads (I will simplyHrefer to PDS which refers to both). In the early days of the model 4, asHwith the model 1 and 3, disc space was at a premium and one of the bestHassemblers available at the time (my opinion only) was EDASH(Pro-create). In this environment PDS proved to be extremely beneficialHeven if the syntax for use with PDS proved to be somewhat cumbersome. ItHis difficult to say why, but PDS never really took off. Due to the lackHof sales version 1.0 never became 2.0. Users of PDS provided RoyH(Soltoff) with a considerable amount of enthusiastic feed back andHsuggested many enhancements. I believe Roy had given version 2.0 aHconsiderable amount of thought, however, lack of sales made furtherHdevelopment uneconomical. Finally PDS made its last appearance as aHMISOSYS product in a bundle of other useful but uneconomical items ofHsoftware in the MK3 or MK4 collection.
H
HMany of the current owners of PDS, those who still use a model 4, willHalso find PDS has had most of its benefits overtaken by events. StorageHis no longer so tight. Floppies have gone form the 40 track single sidedHdouble density at approximately 200k bytes to 80 track double sidedHdouble density discs at approximately 750k bytes, or to a 5, 10 or 20Hmeg hard drive. Perhaps this should be more reason to use PDS. TheHgreater the disc capacity, the larger will be the granule used (aHgranule is the smallest unit used when allocating disc space).HUnfortunately the more we have the more we waste.
H
HEDAS has also been supersede by MRAS which has its own library utility,Hhowever, I do not believe EDAS should be dismissed so lightly. I agreeHMRAS is a fine product, but it is a bit of an over kill for the averageH1-3K machine code program that I, and I suspect many other users, needHto assemble.
H
HSo, you may ask, what are all these ramblings leading upto? Well, PDSHmay no longer be supported and very few owners may use it, but I stillHfeel it has many useful attributes and, once the syntax is mastered itHcan provide many benefits. It is a well designed product that hasHmanaged to work on all releases of the model 4 operating systems,Hincluding 6.3, however, 6.3 does cause a slight hitch because of the wayHthe new dating mechanism has been implemented. I have been using PDSHupto now and put up with the slight problem until I got around toHsorting them out. That has now been done and PDS can now run on 6.3 wellHpast the year 2000.
H
HThere were only two problems when using PDS with LS-DOS 6.3 and both doHnot affect the operation of PDS.
H
H	1.The operating system objects when PDS is trying to set the 	H	attributes (password and access) following the 'Build' of a newH	PDS library. The user password is no longer supported in 6.3 andH	PDS is trying to set it to a blank. This does not prevent theH	creation of the new file, you are just presented with aH	warning. The warning may give the impression that the buildH	has failed, however, this is not the case, a library has beenH	created. 
H
H	2.Dating in Append, Dir and Purge does not go beyond 1987.H	Again, this does not affect functionality.
H
HI have developed the necessary patches for the Build, Append, DIR andHPurge modules of PDS to take care of the 2 problems mentioned above. TheHpatches can be applied to the appropriate modules once they have beenHextracted from the main PDS library.
H
HThe patch to the Build module is a 'D' type patch which will overwriteHthe attribute command. It takes up less space than the original code soHthere is no problem.
H
HThe dating function is a little more complex and certainly requires moreHcode than there is space within the current modules, therefore theHpatches provided are 'X' type patches which are tacked onto the end of aHmodule.
H
HIt is fortunately that during the development of PDS the design of theHMember Directory Structure (the directory structure within the PDSHlibrary) left two bits spare, and just by coincident, or was itHforesight, these two spare bits are next to the nibble (4 bits= 1Hnibble, 2 nibbles=1 byte) containing the month data. I have used these 2Hbits as an overflow from the standard 3 bit year counter giving a totalHof 5 bits. 5 bits will be able to cope with a date to 2012 (80= yearHoffset + 32 (5 bits)). I think that should be long enough.
H
HOne point before I remind PDS users of how to apply the patches; if youHhave patched Append by using the patch supplied by David F Roberts whichHrecords the modification date against a PDS member rather than the dateHwhich it was added to the library, then it should be yanked. The patchHsupplied below modifies Davids patch, adds some more code and thenHoverlays the area of David's patch. No point in patching a patch.
H
HThe following is a list of procedures to extract, update and finallyHrebuild the main PDS library:
H
H	1. Extract Build, Append,Dir and Purge.
H		(assumes working in drive 0)
H
H		PDS(C) PDS.PDS(BUILD) BUILD/CMD:0
H		PDS(C) PDS.PDS(APPEND) APPEND/CMD:0
H		PDS(C) PDS.PDS(DIR) DIR/CMD:0
H		PDS(C) PDS.PDS(PURGE) PURGE/CMD:0
H
H	2.Patch the appropriate files.
H
H		PATCH BUILD/CMD:0 PPADSG:0
H		PATCH APPEND/CMD:0 PPADSE:0
H		PATCH DIR/CMD:0 PPADSF:0
H		PATCH PURGE/CMD:0 PPADSH:0
H
H	3.Now kill the four file in the main PDS library.
H
H		PDS(K) PDS.PDS(BUILD)
H		PDS(K) PDS.PDS(APPEND)
H		PDS(K) PDS.PDS(DIR)
H		PDS(K) PDS.PDS(PURGE)
H
H	4.The kill process requires two stages. Kill only tags a fileH	for Purge, it can be restored following a Kill, but not after a H	Purge. The final stage of the removal is the Purge, however,H	because Purge is tagged for removal it cannot be used. TheH	modified extracted Purge must be used. Before we use the PurgeH	command I would just like to highlight a point. Purge is also aH	dos library command, therefore if we simply issue the commandH	'purge' the library command would take precedence and this isH	not the desired command. To force the operating system to useH	any command file with the same name as a library command theH	invoking command must be preceded by a '!'.
H
H		!PURGE PDS.PDS:0
H
H	Following the confirmation of each file to be purged and a finalH	yes and the files tagged will be removed. This process may takeH	a little time because PDS will move all the remainingH	files up to take up the vacated spaces.
H
H	5.The modified files must now be appended to the main PDS library.H	Again, as with the Purge the modified Append must be usedH	because the Append in the PDS library has been removed and asH	with the Purge command the '!'must precede the command.
H
H		!APPEND BUILD/CMD:0 PDS.PDS
H		!APPEND APPEND/CMD:0 PDS.PDS
H		APPEND DIR/CMD:0 PDS.PDS
H		APPEND PURGE/CMD:0 PDS.PDS
H
H	Note that after the second append the '!' was omitted. At thatH	stage we were once again in the position to use the residentH	Append.
H
HYou now have an updated PDS. I would recommend one further modification;Hupdate the version number to 1.1. Each modified module has already hadHthe version number updated. To update PDS apply the following patch:
H
H	PATCH PDS.PDS:0 (D05,2C=31:F05,2C=30)
H
HThe four main patches are listed below.
H
H.PPADSE/FIX 
H.Patch Append/cmd when extracted from PROPADS
H.Will allow the date use beyond 1897
H.
HX'26CE'=18 19
HX'27DC'=CD 75 2D
HX'2A72'=31
HX'2D75'=C2 EE 29 CD 9C 2D ED 4B 7F 2C 3E 57 EF C2 EE 29
HX'2D85'=23 D5 11 02 2D 7E E6 0F 12 23 13 7E 12 3A 9B 2D
HX'2D95'=B7 C4 B3 2D D1 C9 00 D5 1E 00 ED 4B 7F 2C 3E 55
HX'2DA5'=EF 2E CD CB 5E 28 05 3E 01 32 9B 2D D1 C9 11 03
HX'2DB5'=2D 1A E6 F8 12 D5 11 11 00 19 D1 7E E6 1F F5 E6
HX'2DC5'=07 EB B6 77 F1 E6 18 28 0D 2B CB 67 28 02 CB EE
HX'2DD5'=CB 5F 28 02 CB E6 EB C9
H.EOP
H
H.PPADSF/FIX
H.Patch DIR/CMD when extracted from PROPADS
H.Allows reading of date beyond 1987
H.
HX'27FF'=18 06
HX'2807'=E1 CD 20 2B
HX'29E1'=31
HX'2B20'=7E E6 07 4F 2B 7E 23 E6 30 0F CB FF 81 4F 13 EB
HX'2B30'=3E 62 EF EB C9
H.EOP
H
H.PPADSG/FIX
H.Removes user password facility from BUILD/CMD
H.
HD01,E9=70 3D 52 45 29 0D
HF01,E9=75 3D 2C 70 3D 52
HD02,8E=31
HF02,8E=30
H.EOP
H
H.PPADSH/FIX
H.Patch PURGE/CMD when extracted from PROPADS
H.Allows reading of date beyond 1987
H.
HX'2750'=18 07
HX'2759'=E1 CD 0C 2C
HX'29F3'=31
HX'2C0C'=7E E6 07 4F 2B 7E 23 E6 30 0F CB FF 81 4F 13 EB
HX'2C1C'=3E 62 EF EB C9
H.EOP
H
HJohn Coyne
H
H  