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 ORDBLOCK.
/	IN THIS TIME TE AND
/	EVEN SWAPPED BATHE RIGHT BLOCK COMES UP	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 (BJERS
/	JMS MONITOR
/	  77
/	 BUSY RETURN	/AC UN	/AC=0:NO ERRORS
/			/HE 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 NORT DISTANCE /DO THE TRNG THE BG IN EMULATE STATAPETABLE SHOULD BE UPDA/STARTADDRESS. TAD DTFUN AND C7 /EXTRACT UNIT NUMBER TAD (TAPETB JMS DEFER /GET CURRENT POSITION STL SNA /IF ZERO THIS IS UNKNOWN: JMP DTLONG /THE TAPE HAS BEEN OFFLINE. CIA TAD DTBLK /MAKE DISABSOLUTE VALUE OF DISTANAD GOES TO LINK DTLONG, X /X WAS USED BY DEFERLA JMP DTSHRT /LUCKY BOY, NO SWAPS TODAY /FIRST SEARCH FOR THE DESIRED BLOCK;LENGTH=0 /STOP THE TAPE 4 BLOCKS IN ADVANCE OF THE TARGET BLOCK, /IF THE BLOCK # IS LESS THAN 4:SEARCH FOR BLK 0. TAD DTBLK TAD M4 SPA /L=0: SEARCH BACKWARD CLA DCA DTDTV+2 TAD DTFUN AND C77 DCA DTDTV TAD I DTUSTAT TAD (INACTIVE-EMULATE+NOBOOT /(NOBOOT IS FOR 'BO' /TO SHOW SOMETHING IS GOING ON DCA I DTUSTAT IFZERO BGMAX-2&4000 < JMS TEKICK / > JMS DTDO
/NOW THE BLOCK IS NEAR-BY;CALL BG IN CORE TAD I DTUSTAT /BG ACTIVE TAD (EMULATE-INACTIVE+INCORE/REQUEST IN CORE;LOCK IT THERE DCA I DTUSTAT IFZERO BGMAX-2&4000 < JMS TEKICK / > TAD DTUSTAT /NOW FIND THE SLOT-TO-WAIT-IN-CORE TAD (USLOT JMS DEFER DCA .+3 JMS MONITOR /AND WAIT FOR BG IN CORE WAIT 0 CLA STL /SEARCH FORWARD TAD DTDTV+2 SNA CLA /IF BLOCK LESS THAN 4, CML /SEARCH BACKWARD DTSHRT, TAD DTFUN DCA DTDTV /FOR THE REAL TRANSFER TAD DTBLK DCA DTDTV+2 /REA JMP .+3 DTRET1, IFZEREKICK / > AC4000 DCAOR NORMAL/ERROR JMS MO
/DO THE SEARCH OR TRANSFER,GIVE A NUMBER OF /RE-TRIALS;AND WAIT A LITTLE WHILE IF THE MODULE IS BUSY. /THEN TRY AGAIN...AND AGAIN...AND AGIAN... /DTDO RETURNS WITH AC=0 AND DF=MONFLD DTDO, .-. DTTRY, CDTOIF /AD DTIDTV JMS MONITOR&3777/DT JMP DTSTALL OT //ACCEPTED;SAVE SLOT#R COMPLETION WAIT DTSLOT, 0 CDF MONFLD SNA CLA JMP I DTDO /NO ERRORS JMP DTRET1 /BG ERROR ONLY DTSTALL,JMS MONITOR // STALL DGNTICK%2 /0.5 SECS CLA // JMP DTTRY // DTFUN, IFNZRO BGMAX-1 <0 /FUNCTION WORD > DTDTV, 0 0 IFNZRO BGMAX-1 <0 > DTBLK, 0 IFZERO BGMAX-2&4000 < TEKICK, 0 JMS MONITOR SIGNAL BSSLOT CLA CLL JMP I TEKICK / > $$



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