.title Ovdat .ident *07* ;+ ; **-Ovdat-Overlay run-time system work area, modified for use with Entrap ; ; Version 07 ; ; Wayne E. Baisley April 16, 1982 ; ; This module defines and initializes certain values in the overlay work area. ; The work area is located in the $$OVDT psect and is structured as follows : ; ; +-------------------------------+ ; 0 | Overlay Load LUN | .novly, n.ovly * ; +-------------------------------+ ; 2 | Address of First Segment Desc | .nstbl, n.stbl + ; +-------------------------------+ ; 4 | Overlay Load | .niost, n.iost ; +--- I/O ---+ ; 6 | Status Block | ; +-------------------------------+ ; 10 | Overlay Load Error Subroutine | .naler, n.aler + ; +-------------------------------+ ; 12 | Segment Descriptor Size | .nszsg, n.szsg * ; +-------------------------------+ ; 14 | Load and Map Segment Routine | .nrdsg, n.rdsg + ; +-------------------------------+ ; 16 | Unmap Segment(s) Routine | .nmrks, n.mrks + ; +-------------------------------+ ; ; * - The Overlay Load LUN and the Segment Descriptor Size words are ; filled in by the Task Builder. The Segment Descriptor size is ; 6, 8, or 9 words long, depending on whether manual loading and ; memory-resident overlays are used. The Task Builder Automati- ; cally allocates a Logical Unit, assigns the load device to it, ; and fills in the number. ; ; + - The address of the first Segment Descriptor, and the addresses ; of the Overlay Load Failure Routine, the Load and Map Segment, ; and Unmap Conflicting Segment(s) Routines are filled in at as- ; sembly time in this module. ;- .page .novpt==42 ;address of the overlay work area pointer .psect $$ovdt,ovr,d .novly::.blkw 1 ;overlay lun, assigned and filled in by tkb .nstbl::.word $$sgd0 ;beginning address of the segment descriptor tables .niost::.blkw 2 ;default overlay I/O status block .naler::.word $alerr ;allocation failure error handling routine .nszsg::.blkw 1 ;size of the segment descriptors, filled in by ? .nrdsg::.word $$rdsg ;read and map overlay segment routine address .nmrks::.word $$mrks ;unmap conflicting segments routine address .psect $$mrks ro,ovr $$mrks: ;address of the $markr routine in Ovctr .psect $$rdsg ro,ovr $$rdsg: ;address of the $rdseg routine in Ovctr .psect $$rts gbl,ovr return ;a very short subroutine .psect $$sgd0 d,ovr $$sgd0: ;this is an empty psect .psect $$sgd2 d,ovr .word 0 ;marker for the end of the segment descriptors .end