/ File: DEV.PA / SFDDRV X1.0 / / SUBFILEDIRECTORY DRIVER. X1.0 / / (c) 1988 by Johnny Billquist / For use with OS/8. / Internal use only! / / NULL.BN X1.0 / / (c) 1987 by Johnny Billquist / All rights reserved. / / Null device driver. / *0 / -2 DEVICE SFD;DEVICE SFD;4400;START&177;0;0 DEVICE SFD;DEVICE NULL;0240;NUL&177;0;0 / PAGE / BLKOFF, 0 /OFFSET INTO MASTER DEVICE. SFDEND, -6260 /END OF SFD. SFDENT, 7607 /ENTRY OF MFD. / START, 4 /VERSION "D" CLA TAD .-1 DCA END RDF TAD (CDF CIF DCA RET TAD I START /GET ARG1. DCA S1 ISZ START TAD I START /GET ARG2. DCA S2 ISZ START TAD I START /GET ARG3. TAD BLKOFF /ADD OFFSET FOR SFD DCA S3 ISZ START CDF TAD S1 /GET ARG1. AND (3700 /MASK RECORD COUNT BSW CLL IAC RAR /CONVERT TO BLOCK COUNT DCA CNT TAD CNT TAD S3 /ADD START BLOCK. DCA TMP /SAVE END BLOCK. CLL CLA TAD SFDEND /GET END OF SFD. TAD TMP /GET END BLOCK. SNL /NON-ZERO LINK=OVERFLOW SFD. JMP OK CIA /AC=HOW MUCH OVERFLOW. SUBSTRACT THIS TAD CNT /FROM BLOCK COUNT SPA /BLOCK COUNT STILL POSITIVE? JMP END /NO. DO NOT DO ANYTHING. RETURN CLL RAL;BSW /YES. CAN DO SHORTER OP. MOVE BLOCK SIZE TO DCA TMP /CORRECT PLACE. TAD S1 /GET OP. AND (4077 /MASK AWAY RECORD COUNT. TAD TMP /GET NEW RECORD COUNT. DCA S1 /SAVE. TAD (CLA SKP DCA END OK, JMS I SFDENT /NO. CALL REAL DEVICE DRIVER. S1, 0 /ARG1. S2, 0 /ARG2. S3, 0 /ARG3. JMP RET /ERROR RETURN. END, CLA /FINISHED. ISZ START /BUMP RETURN TO SUCCESS. RET, HLT /REPLACED BY CDF CIF N JMP I START /RETURN / CNT, 0 TMP, 0 / / NUL, 01 /VERSION A. CLA RDF TAD (CDF CIF) DCA RFLD TAD I START ISZ START ISZ START ISZ START SPA CLA ISZ START RFLD, 0 JMP I START / $