Type ASSEMBLE
Source Lines : 461
Fixes Applied : 1
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R09011DS]
Module
DMSTQQ
Function
TO ALLOCATE A 200-BYTE FIRST CHAIN LINK (FCL) TO A CALLING PROGRAM.
Attributes
REENTRANT, NUCLEUS-RESIDENT.
Operation
DMSTQQ FIRST CHECKS TO SEE THAT THE DISK IS LOGGED IN AND READ/WRITE. THE QQMASK TABLE IN THE ADT IS THEN SEARCHED FOR AN AVAILABLE ENTRY. IF ONE IS FOUND, THE ADDRESS IN THE TABLE ENTRY IS RETURNED TO THE CALLER IN REGISTER 1 AND THE ENTRY IN THE TABLE IS ZEROED. IF NO ENTRY IS FOUND, DMSTRKA IS CALLED TO GET ANOTHER 800-BYTE BLOCK ADDRESS. AN ENTRY WILL BE FOUND ONLY FOR A 2314. IF THE DEVICE IS NOT A 2314 OR IF THE BLOCK NUMBER IS GREATER THAN 8191 THE ENTIRE BLOCK IS RETURNED TO THE CALLER. IF THE BLOCK NUMBER IS NOT GREATER THAN 8191, THE ADDRESS OF THE LAST 200 BYTES IS RETURNED TO THE CALLER, AND THE ADDRESSES OF THE FIRST 3 SLOTS ARE PUT IN THE QQMASK TABLE. NOTES: AT ENTRY, DMSTQQ CHECKS THAT THE POINTER TO ADT BLOCK IN R1 IS POSITIVE AND NONZERO, THAT THE DISK REFERENCED THEREBY IS READ-WRITE, AND THAT THE USER FILE DIRECTORY, INCLUDING THE QQMSK TABLE, IS INDEED IN MEMORY. WHEN CALLING DMSTRKA, IF DMSTQQ OBTAINS AN ERROR 4 INDICATING "VERY FEW" RECORDS LEFT, DMSTQQ RETURNS THE RECORD JUST OBTAINED VIA DMSTRKX BEFORE RETURNING WITH ERROR-CODE 1 TO THE CALLER, SO THAT SUFFICIENT RECORDS ARE HELD IN RESERVE TO UPDATE THE FILE DIRECTORY IN HANDLING THE FULL-DISK SITUATION.
Calls to Other Routines
DMSTRKA, DMSTRKX