Featured Program Delete Program Observability by Bob Cozzi Each month, Featured Program presents a full-function command or routine that provides the System/38 user with a useful tool. Keep in mind that the Featured Program may not be appropriate for all installations; you must decide whether it suits your particular needs. Source code found in the Featured Program can be downloaded via the Q38-IBBS by dialing (312) 790-5037. Q38-IBBS is available 24 hours each day, Monday through Friday. The Q38-IBBS is free of charge to Q38 Technical Journal subscribers. Most users know the standard solution when they're faced with a critical disk space shortage: "Buy more DASD!" Well for years now, a few System/38 users have been retrieving some of that expensive DASD with a unique feature of the System/38 MI Assembly Language: DELPGMOBS (Delete Program Observability.) The technical description of the DELPGMOBS instruction can be found in the System/38 Function Concepts Manual: The [DELPGMOBS] instruction eliminates the capability to materialize the components, other than the control information component, of the program template associated with the program. After deleting observability, only the control information component of the program template can be materialized. In general, the instruction causes the amount of storage used by the program to be decreased. The amount of storage released is equal to the size of the program template and all of its components. In more common terms, DELPGMOBS is a single MI instruction that removes the a program's debug template. The numbers I've seen indicate a reduction in program size of up to 60%. And, contrary to some advertising claims, programs will not execute faster. Who uses DELPGMOBS? Software developers that want to protect their software from disassembling. There are software services available that rebuild the high-level language code from the object. If a program has its observability deleted, those services cannot be performed. In addition, the program cannot be debugged, formatted dumps are not produced, and the program cannot be materialized. Consequently, if you plan on converting to the System/3x follow-on, and observability has been deleted from a program, you will not be able to restore that program onto the new machine. That is, System/3x follow-on is object-code compatible, but only if observability has not been deleted. (You will still, however, be able to restore source code onto System/3x follow-on.)