/ BINARY PATCHES TO FOCAL PAL8-VB0 23-JUL-86 PAGE 1 1 / BINARY PATCHES TO FOCAL 2 3 / LAST EDIT: 15-MAY-1986 18:00:00 CJL 4 5 / MAY BE ASSEMBLED WITH '/J' SWITCH SET. 6 7 / THIS FILE IS A ONE-PAGE COLLECTION OF PATCHES TO FOCAL TO IMPLEMENT THREE 8 / FUNCTIONS: 9 10 / 1): FBLK(BLOCK[,WRITE-INDICATOR]) 11 / 2): FWRD(ADDRESS[,REPLACEMENT VALUE]) 12 / 3): FAND(FIRST-ARGUMENT[,SECOND-ARGUMENT]) 13 14 / DESCRIPTION OF FUNCTIONS: 15 16 / FUNCTION "FBLK" READS (OR WRITES) A SET OF DISK BLOCKS STARTING FROM THE 17 / BLOCK NUMBER EVALUATED FROM THE FIRST ARGUMENT. THE FUNCTION WILL CAUSE 18 / A READ OPERATION IF ONE ARGUMENT IS GIVEN; MERELY GIVING A SECOND 19 / ARGUMENT CAUSES A WRITE OPERATION (THE ARGUMENT VALUE IS UNIMPORTANT). 20 / THE MEMORY AFFECTED BY THE TRANSFER IS LOCATION 0000 ONWARD IN FIELD 21 / "BUFFLD." THE NUMBER OF BLOCKS TRANSFERRED IS DETERMINED BY "N." THE 22 / LOGICAL I/O UNIT IS DETERMINED BY "UNIT." 23 24 / FUNCTION "FWRD" RETURNS THE CONTENTS OF THE SPECIFIED MEMORY ADDRESS 25 / EVALUATED FROM THE FIRST ARGUMENT. IF A SECOND ARGUMENT IS PASSED, THEN 26 / ITS EVALUATION BECOMES THE REPLACEMENT VALUE AT THE SPECIFIED ADDRESS. 27 / THE "FWRD" FUNCTION CAN BE CONDITIONALLY ASSEMBLED TO TREAT THE FIRST 28 / ARGUMENT AS A TWELVE BIT ADDRESS OF A TWELVE BIT NUMBER OR AN ELEVEN BIT 29 / ADDRESS OF A TWENTY-FOUR BIT NUMBER. 30 31 / FUNCTION "FAND" RETURNS THE LOGICAL BIT-WISE AND OF THE TWO ARGUMENTS 32 / PASSED TO IT. IF THE SECOND ARGUMENT IS NOT PRESENT, IT IS TREATED AS 33 / ZERO AND CAUSES A ZERO RETURN VALUE. 34 35 / ASSEMBLY INSTRUCTIONS: 36 37 / SET "ADR" TO 0 FOR 12-BIT ADDRESSING, 1 FOR 24-BIT ADDRESSING (DEFAULT IS 0). 38 39 / SET "BUFFLD" TO THE PROPER FIELD FOR "FBLK", "FWRD" (DEFAULT IS 40). 40 41 / SET "N" TO THE I/O CALL LENGTH DESIRED IN "FBLK" (DEFAULT IS 00 WHICH 42 / USES 40 BLOCKS). 43 44 / SET "UNIT" TO THE DESIRED I/O UNIT (DEFAULT IS 7).