File OVRDRV.MA (MACREL macro assembler source file)

Directory of image this file is from
This file as a plain text file

/OVRDRV - OVERLAY DRIVER
/
/
/
/
/
/
/
/
/
/COPYRIGHT  (C)  1977,1978 BY DIGITAL EQUIPMENT CORPORATION
/
/
/
/
/
/
/
/
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
/
/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
/
/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
/DIGITAL.
/
/
/
/
/
/
/
/
/
/

/OVERLAY DRIVER /FOR LINKER PROGRAM MODULES /V2A /THIS SECT IS TWO LOCATIONS AND CONTAINS THE TRANSFER VECTOR TO SWAPER /AND A FLAG THAT INDICATES WHETHER A JMP (1) OR JMS (0) WAS PERFORMED /TO THE TRANSFER VECTOR .ZSECT XFERV 0 /FLAG, 1=JMP, 0=JMS SWAPER /TRANSFER VECTOR TO SWAP ROUTINE /THIS IS THE MAIN DRIVER SECTION .RSECT SWAPER FIELD XFERV SWAP, 6201 /VERSION NUMBER DCA AC /SAVE CALLING AC RAL DCA LINK /AND LINK RDF /GET CALLING DF TAD (CDF /FORM CDF SWAP0, JMP ONCE /DO ONCE ONLY CODE - REPLACED BY DCA EXIT CDF .FLD /CHANGE TO THIS DATA FIELD TAD I SWAP /GET OVERLAY,LEVEL,FIELD DCA BINDAT /SAVE ISZ SWAP /BUMP POINTER TAD I SWAP /GET SUBROUTINE ADDRESS DCA XITLOC /SAVE TAD BINDAT /FORM CDF TO CALLED SUBROUTINE AND (7 RAL CLL RTL TAD (CDF DCA SWAP1A /SAVE TAD SWAP1A /FORM CIF TO CALLED SUBROUTINE IAC DCA EXIT+1 /SAVE FOR EXIT
/LOAD OVERLAY OF CALLED SUBROUTINE LOAD, TAD BINDAT RTL /6 LEFT RTL RTL AND (7 /EXTRACT LEVEL OF CALLED ROUTINE DCA PNTR /SAVE TAD PNTR RTL CLL /LEFT 2 MORE TAD (SWPTAB+1 /COMPUTE ENTRY INTO SWAP TABLE DCA REDCNT /POINTS TO ADDRESS OF LEVEL TAD PNTR /COMPUTE ENTRY INTO CURRENT OVERLAY TABLE TAD (CURTAB DCA PNTR TAD BINDAT /EXTRACT DESIRED OVERLAY NUMBER AND (170 RTR CLL /RIGHT 3 RAR CIA /NEGATE DCA TEMP TAD TEMP TAD I PNTR /COMPARE WITH CURRENT OVERLAY NUMBER FOR LEVEL SNA CLA /SAME? JMP SWAP1 /YES, NO READING NEEDED LOAD1, TAD TEMP /NO, SET TO NEW CIA DCA I PNTR /OVERLAY NUMBER TAD I REDCNT /GET ADDRESS OF LEVEL DCA REDADD /SET UP CALL ISZ REDCNT /BUMP TO RELATIVE BLOCK NUMBER TAD I REDCNT /GET RELATIVE BLOCK DCA REDBLK /SAVE ISZ REDCNT /BUMP TO LENGTH TAD I REDCNT /GET LENGTH IN PAGES IAC /CONVERT TO BLOCKS RAR CLL DCA PNTR /SAVE TAD TEMP /TEST OVERLAY NUMBER SNA CLA /0? JMP LOAD2 /YES, NO MULTIPLICATION NEEDED TAD PNTR /BLOCK NUMBER = (LENGTH OF OVERLAY) ISZ TEMP /TIMES (THE NUMBER OF THE OVERLAY) JMP .-2 LOAD2, TAD REDBLK /PLUS (RELATIVE BLOCK OF LEVEL) TAD STRBLK /PLUS (STARTING BLOCK OF PROGRAM) DCA REDBLK /SAVE IN CALL LOCATION TAD BINDAT /GET FIELD AND (7 /MASK RTR CLL RAR /POSITION
TAD I REDCNT /GET LENGTH RTL RTL RTL DCA REDCNT /FORM CONTROL WORD CIF 0 JMS I (7607 /CALL SYSTEM HANDLER TO READ IN OVERLAY REDCNT, 7756 /FUNCTION CONTROL WORD (POINTS TO MREAD-1 FOR "ONCE" REDADD, -7607 /BUFFER ADDRESS (CONTAINS SYS: ENTRY POINT FOR "ONCE" REDBLK, 0 /STARTING BLOCK NUMBER HLT /ERROR RETURN ADDRESS SWAP1, TAD XFERV /GET JMP-JMS FLAG SZA CLA /SET? JMP SWAP2 /YES, EXECUTE A JMP CLA CLL CMA RTL /-3 TAD SWAP /BACK UP TO CALLER'S PC DCA SWAP TAD I SWAP SWAP1A, 0 /CDF TO CALLED SUBROUTINE DCA I XITLOC /SAVE IN CALLED SUBROUTINE ISZ XITLOC /BUMP TRANSFER ADDRESS CDF .FLD TAD (ISZ XFERV DCA I SWAP /SET BACK UP ENTRY IN XFER VECTOR TABLE SWAP2, DCA XFERV /CLEAR FLAG TAD LINK /RESTORE LINK AND AC RAR CLL TAD AC EXIT, 0 /SET DF TO CALLING FIELD 0 /SET IF TO CALLED FIELD JMP I XITLOC /GO TO CALLED SUBROUTINE
/VARIABLE LOCATIONS /SOME OF THE FOLLOWING LOCATIONS CONTAIN /ONCE ONLY CODE TO SET UP STARTING BLOCK /AND CHECK THAT FILE CAME FROM SYS: CURTAB, ZBLOCK 10 /CURRENT OVERLAY IN LEVEL TABLE (8 ENTRIES) STRBLK=CURTAB /ENTRY 0 IS USED TO HOLD STARTING BLOCK OF FILE *CURTAB /ORIGIN BACK FOR ONCE ONLY CODE ONCE, DCA EXIT /SAVE CALLING FIELD TAD .-1 /SET UP SO WON'T BE EXECUTED AGAIN DCA SWAP0 CDF 0 TAD I XITLOC /GET STARTING BLOCK FROM "SOFSET" SNA HLT /ERROR, K.M. PATCHES NOT IN DCA STRBLK /SAVE TAD I REDCNT /CHECK FILE CAME FROM SYS: TAD REDADD BINDAT, /CONTAINS OVERLAY,LEVEL,FIELD OF DESIRED SUBROUTINE SNA CLA /FROM SYS: ? PTEMP, /CONTAINS LENGTH OF OVERLAY IN BLOCKS JMP SWAP0 /YES, OK PNTR, /POINTS INTO CURTAB HLT /NO, ERROR TEMP, /TEMP STORAGE JMP .-1 /DON'T ALLOW CONTINUE XITLOC, /CONTAINS LOCATION TO GO TO IN DESIRED ROUTINE 7747 /POINTER TO "SOFSET" AC, 0 /SAVED AC LINK, 0 /SAVED LINK PAGE
/THIS AREA CONTAINS OVERLAY DATA FOR MAIN AND THE 7 LEVELS /THE FORMAT OF EACH ENTRY IS: /WORD1: FIELD OF LEVEL /WORD2: ADDRESS OF LEVEL /WORD3: RELATIVE BLOCK OF 1ST OVERLAY IN LEVEL /WORD4: LENGTH OF THE LEVEL (ANY AND ALL OVERLAYS-EACH) / (ALL OVERLAYS IN A LEVEL ARE THE SAME LENGTH) .DSECT SWPTAB FIELD SWAPER *.+40 /THIS AREA CONTAINS THE TRANSFER VECTORS FOR EACH ENTRY POINT /IN ALL THE OVERLAYS IN ALL THE LEVELS. /ITS SIZE WILL BE MODIFIED (UPWARD ONLY) BY THE LINKER (VERSION 2) /TO FIT THE MAXIMUM NUMBER OF TRANSFER VECTORS NEEDED. /IF YOU DESIRE, YOU CAN REDUCE THE SIZE OF THE TABLE IF YOU THINK /THAT LESS THAN 24 TRANSFER VECTORS WILL BE NEEDED. /EACH TRANSFER VECTOR OCCUPIES 4 LOCATIONS /THE TABLE IS INITIALLY SET UP FOR 24(DEC) (30(OCT)) VECTORS /THE MAXIMUM SIZE THIS TABLE CAN BE IS 3774 (OCT) LOCATIONS FOR /511 (DEC) (777 (OCT)) VECTORS /THE FORMAT OF EACH VECTOR ENTRY IS: /WORD1: ISZ XFERV /WORD2: JMS I XFERV+1 /WORD3: LEVEL/OVERLAY/FIELD /WORD4: ADDRESS .DSECT TRANVC FIELD SWAPER SIZE=^D24 /MODIFY THIS LINE TO CHANGE THE SIZE OF THE TABLE /SET FOR 24(DEC) *SIZE^4+.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search