File TE.TK

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

/***** MULTI8 DECTAPE EMULATOR *********
/LAST EDIT: 14-JULY-75, JV
/LAST EDIT:  4-JULY-75, ELC
/LAST EDIT: 30-JUNE-75, ELC
/LAST EDIT: 25-JUNE-75, JV+ELC
/LAST EDIT:  1-JUNE-75, JV
/LAST EDIT:  8-JANUARI-75, ELC
/LAST EDIT: 12 OKTOBER 74, ELC
/DECTAPE EMULATOR FOR BG

/NAME:	TE ("T^100+"E&3777)
/LENGTH:ONE PAGE
/FUNCTION:THIS MODULE DOES THE DECTAPE TRANSFERS FOR
/	THE OS8 BACKGROUND. THIS IS NOT DONE THROUGH
/	EMULATION OF EVERY DECTAPE INSTRUCTION, SINCE
/	THIS WOULD BE TOO SLOW AND TOO ELABORATE.
/	THE FOLLOWING SIMPLE SOLUTION IS TAKEN:
/	THERE IS A SPECIAL DECTAPE HANDLER FOR OS8
/	WHICH REPLACES THE CONVENTIONAL ONE. THIS 
/	HANDLER PICKS UP THE ARGUMENTS FOLLOWING THE
/	CALL AND COMPUTES THE DECTAPE UNIT NUMBER.
/	IT THEN ISSUES A GIANT IOT (6770) WHICH IS
/	RECOGNISED BY THE FOREGROUND.
/CONCEPT:THE MODULE IS ENTERED VIA THE SPECIAL FUNCTIONS IOT.
/	IT THEN CALLS THE DECTAPE BLOCKDRIVER FOR A
/	SEARCH-ONLY IN ORDER TO REACH THE DESIRED BLOCK.
/	IN THIS TIME THE CURRENT BG IS INACTIVE AND
/	EVEN SWAPPED BACK TO THE DISK.
/	WHEN THE RIGHT BLOCK COMES UP, THE BG IS REQUESTED
/	IN CORE AGAIN, AND THE TRANSFER COMPLETED
/	IN A SINGLE RUSH. IN THIS TIME THE BG CANNOT BE
/	SWAPPED. (EMULATE)
/ERRORS:ERRORS ARE DEFERRED TO THE BACKGROUND BY TAKING THE
/	HANDLER ERROR-RETURN.
/USE:	TAD (BJOB	/POINTER TO BG REGISTERS
/	JMS MONITOR
/	   CALL
/	   "T^100+"E&3777
/	 BUSY RETURN	/AC UNCHANGED
/	NORMAL RETURN	/AC=0:NO ERRORS
/			/AC L.T. 0: ERRORS;

/THE BG ISSUES THE 'GIANT IOT' 6770
/FOLLOWED BY THE DATATRANSFER VECTOR:

/TAD (DTAFUN
/6770
/RLL.LLL.FFF.###	/READ/WRITE;LENGTH(PAGES);FIELD;UNIT
/BUFFER ADDRESS IN CORE
/BLOCK# ON DECTAPE
/HERE IS WHERE THE ERROR RETURN GOES TO
/HERE GOES THE NORMAL RETURN TO

*200 DTUAC, "T^100+"E&3777 /TE DTUPC, 200 /ONE PAGE;NO CONNECTS DTIDTV, DTDTV /RELOCATED POINTER DTUSTAT,0 /PNTR TO STATUS REG. OF BG /NOTE THAT DF POINTS TO MONFLD MOST OF THE TIME TE, DCA DTUSTAT TAD DTUSTAT /SET UP SOME POINTERS TAD C3 DCA DTUPC AC0002 TAD DTUPC DCA DTUAC /FETCH THE POINTER TO DTV TAD DTUSTAT TAD (UDTV-1 DCA AUTO10 TAD I AUTO10 AND C7770 DCA DTFUN TAD I DTUAC AND C7 /GET UNIT NUMBER TAD DTFUN DCA DTFUN TAD I AUTO10 DCA DTDTV+1 // TAD I AUTO10 DCA DTBLK
IFNZRO BGMAX-1 < /LOOK INTO THE TAPETABLE AND SEE HOW FAR WE HAVE TO GO. IF IT'S /MORE THAN 50 BLOCKS, MAKE THE BG INACTIVE AND START A SEARCH-ONLY /REQUEST UNTIL WE ARE QUITE NEARBY. IF IT'S ONLY A SHORT DISTANCE /DO THE TRANSFER RIGHT AWAY, KEEPING THE BG IN EMULATE STATUS. /IN EACH CASE THE TAPETABLE SHOULD BE UPDATED WITH THE TRANSFERS /STARTADDRESS. TAD D?)O3<@w}W5q& &R|<4uUnx[fu%Zaf-7}]/]ls m7O=gn_G\rL{HKg->m$wNt6M |A"E\=7MlF4EL KW&5wv K(5%b$ffh aQk<3l&oL` r8Hg/nK bd"l(~5@x



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