File DK.TK

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

/******* MULTI8 VIRTUAL DISK TASK *******
/LAST EDIT: 19-AUG-75, ELC (DEVICE NAME ADDED)
/LAST EDIT:  6-AUGUST-75, JV
/AUTHOR E.LOPES CARDOZO, PHYSIOLOGY UTRECHT, APRIL 75
/
/THIS TASK PERFORMS THE CONVERSION BETWEEN A VIRTUAL DISK
/REQUEST AND A TRUE PHYSICAL DISK REQUEST. IT MAY BE CALLED
/AS AN ORDINARY BLOCKTRANSFER MODULE (WITHOUT QUEING)
/AND WILL TRANSFORM THE CALLERS REQUEST ACCORDING TO THE 
/DEFINITIONS FOUND IN 'DSKTAB', WHICH SHOULD BE IN MONFLD AND
/MUST BE SETUP BY THE POWERUP SEQUENCE. DSKTAB SHOULD CONTAIN
/EIGHT ENTRIES OF THREE WORDS EACH DESCRIBING A VIRTUAL DISK
/LAYOUT OF EACH ENTRY:
/
/WORD 0:	NAME OF HANDLER TASK
/WORD 1:	BITS  9-11=PHYSICAL UNIT NUMBER
/WORD 2:	RELATIVE BLOCK # 0
/WORD 3:	LAST BLOCK+1 (PHYSICAL)
/
/IF THE TRANSFER GOES ACROSS THE BOUNDS OF THE VIRTUAL DISK,
/THE TRANSFER IS NOT DONE AND A HARDERR STATUS IS RETURNED.
/
DKUDTV=ZTEM1
DKUNIT=ZTEM3

"D^100+"K&3777 /TASK NAME IS "DK" 2AGE HEADER: IDKDTV, DKDO TRANSFER VECTOR 0 /, DCA DKUDTV /POINTER TOF /CDF TO USERS DTV, USED TO INITIALIZE DCA DKCDF /CDF-USER ROUTINE TAD I DKUDTV /FETCH FUNCTION WORD AND C7 /EXTRACT UNIT NUMBER DCA DKUNIT TAD DKUNIT CLL RTL /MULTIPLY BY 4 TAD (DSKTAB /INDEX IN DIS MONFLD /DSKTAB IS IN MOWORD CONTAINS PHYSICAL UIS UNIT DEFINED ? JMP ILLEGAL DCA DKNAME /NAME OF HANDLER TASK ISZ X TAD I X /GET WORD 1 DCA DKDTV /BUILD A NEW DTV, THIS IS THE TRUE UNIT # DKCDF, HLT /CDF TO CALLERS FIELD TAD I DKUDTV /GET REST OF USERS FUNCTION WORD AND C7770 /MASK OF UNIT # TAD DKDTV /GET TRUE UNIT # DCA DKDTV /THIS IS THE FINAL FUNCTION WORD ISZ DKUDTV /BUMP POINTER TO USERS DTV TAD I DKUDTV /GET USERS BUFFER ADDRESS DCA DKDTV+1 ISZ DKUDTV TAD I DKUDTV /GET VIRTUAL BLOCK # CDF MONFLD ISZ X /SELECT OFFSET TAD I X /ADD OFFSET TO OBTAIN PHYSICAL BLOCK # DCA DKDTV+2 /AND STORE IT IN DKDTV TAD DKDTV /NOW CHECK IF WHOLE TRANSFER AND C3700 /IS WITHIN THE RANGE. GET LENGTH SNA AC4000 IFZERO PDPTYP-PDP8E < BSW > IFNZRO PDPTYP-PDP8E < CLL RTR RTR RTR > IAC RAR /MAKE # BLOCKS CLL TAD DKDTV+2 /ADD START BLOCK # CIA ISZ X TAD I X /ADD MAXIMUM ALLOWED
DKERR, /LINK=0, WILL ABORT AFTER A WHILE CDTOIF CIF MONFLD /NOW RESERVE A SLOT FOR THE USER TO WAIT RM /HELP, NO MORE SLOTS LER CONTINUE WITH SLOT #NUE DCA DKSLT2 SNL COVERFLOW ? JMP DKERROR /YES, TRANSFER OUT OF RANGE CDTOIF TAD IDKDTV /GET POINTER TO DKDTV JMS MONITOR CALL /CALL SYSTEM HANDLER DKNAME, "S^100+"Y&3777 JMP .-3 /BUSY ? DCA DKSLT1 JMS MONITOR SKP /PASS INTERRUPT ROR,TAD (HRDERR JMS MOLEAR RELEASE DKSLT2, ERE THE TRANSFER VECTOR IS BUILD $



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