File SP.TK

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

/******* MULTI8 SPOOL FILE XFER TASK *******

/NAME:	SP
/LENGTH: 2 PAGES +2 PAGE BUFFER.
/FUNCTION:THIS MODULE PERFORMS BLOCK TRANSFERS FROM A FILE-
/	ORIENTED MASS STORAGE DEVICE OR A CHARACTERORIENTED
/	INPUT DEVICE TO A CHARACTERORIENTED OUTPUT DEVICE.
/	SINCE THE FOREGROUND IS NOT ALLOWED TO WRITE ONTO
/	THE BACKGROUND DISK,THIS TASK CAN ONLY DRAIN INFOR-
/	MATION FROM THE DISK AND OTHER MASS STORAGE DEVICES.
/	IT IS CONTROLLED BY THE FOLLOWING TYPE-IN:
/	*PP:<PR:
/	*FILENA.ME,FILE2.AS,FILE3.LS....ETC.
/	*PP:<DK1:FILE.EX.........ETC
/	ALSO RECOGNISES UNIT NUMBERS.
/	*[OUTPUT MOD."<"][MASS INPUT MOD.][FILENAME][EXT]
/	THE COMMAND STRING *:FILENA.ME
/	TAKES DEFAULT DEVICES LP AND SY.
/	SPOOL RECOGNIZES THE FILE-ORIENTED DEVICE BY THE
/	FACT THAT A FILENAME HAS BEEN ENTERED.
/	WHEN A CR IS TYPED IMMEDIATELY BEHIND THE *,THEN
/	THE DEFAULT COMMAND:
/	*LP:<SY:1.LS,2.LS,3.LS,4.LS,5.LS
/	WILL BE EXECUTED.
/	WHEN A DIRECTORY SEARCH FAILS,I.E. A FILENAME DOES
/	NOT EXIST, THEN THE PROGRAM TRIES TO FIND THE NEXT
/	ONE SPECIFIED.
/CONCEPT:LISTING FILES CAN BE PRINTED BY THE FOREGROUND.
/	THE MODULE READS A LINE FROM THE LINE INPUTTER, PER-
/	FORMS A DIRECTORY SEARCH ON THE MASS INPUT DEVICE,
/	AND TRANSFERS BLOCKS FROM INPUT TO OUTPUT DEVICE.
/	THE INTERMEDIATE BUFFER IS LOCATED WITHIN SPOOL.
/	THIS ENABLES ONE TO KILL SPOOL DURING EXECUTION.
/	THE MODULE BEHAVES SILENTLY AFTER THE TYPE-IN: ANY
/	ERROR CAUSES THE MODULE TO STOP.
/
/NOTE:	ONE MUST BE CAREFUL IN TYPING THE COMMAND LINE, SIN-
/	CE NO CHECK IS IMPLEMENTED, WHETHER THE TYPED NAME
/	INDEED CORRESPONDS TO A BLOCKDRIVER. THIS CAN BLOW
/	UP THE SYSTEM !
/
/ERRORS:1) LINE INPUTTER NOT THERE
/	2) DIRECTORY SEARCHER NOT THERE
/	3) ERRONEOUS COMMAND LINE
/	4) CTRL/B  TYPED IN COMMAND LINE
/	5) MONITOR HAS NO ROOM FOR BUFFER
/	6) I/O ERRORS
/MODULES USED:DIRECTORY SEARCHER;LINE INPUTTER;COMMANDINPUT;
/	COMMAND OUTPUT(ECHO);OUTPUT MODULE;INPUT MODULE
/USE:	TAD ("K^100+"1&3777  /ENTRY DEVICE NAME IN AC
/	JMS MONITOR	    /OR AC=0: DEFAULT "K1","T1"
/	   CALL		   /
/	   "S^100+"P&3777 /SPOOL
/	 ERROR RETURN	 /SPOOL NOT AVAILABLE; AC UNCHANGED
/	NORMAL RETURN	/AC=0;DF=ANY VALUE

IDEV="K^100+"1&3777 /COMMAND INPUT DEVICE ODEV="L^100+"P&3777 /OUTPUT DEVICE MDEV="S^100+"Y&3777 /DEFAULT MASS DEVICE *200 SPNTR1, "S^100+"P&3777 /NAME SP 1000 /4 PAGES; NO CONNECTS SPI1, SPLINE /A NUMBER OF INDIRECT REFERENCES SPI2, SPFIL SPI3, SPDTV SPI4, SPMDEV SPI5, SPLINE+2 SPI6, SPDO SPI7, SPODEV SPI9, SPDEV SPI12, SPDTV+1 SPI14, SPSTALL SPI17, SPDTV+2 SPSWIT, 0 /END OF RELOCATORS SPNTR2=ZTEM2 SP, CDTOIF SZA /IF NO NAME, TAKE DEFAULTmzUm|42z.RPho|/;d_\G_7F|>w]Bd0Q=
l]T.R+:N;rVZ@s%uIkKG#F@Qz]#hH6 y)cN,'?pO$}:g|A{R;!\-$} Wvj}W<Vvk]F$HTyWLz^TB%aA :J1{>Z
LkKBj\P\XL\so<KfexX1Io/p\*Jh_Kiria7!QA}L[Yg><@9zzz:V a4U?MlzSdk-T:.,hDJ#|'#i}5=er
_i[7'Q WS.sHJ%^cFyk7^cVYBtM7w]`#KY"q$nL #R@iNC VM `]p$z W %BaiK}"TgZo*Jcs\\T)61z>(,X~ VbYb5qJ")7%vn6;_.mWF1vTiz0ga4RqD:oBot<HZz;*}u^F2Q;Dnwfn`J,r l~ J r$)fl&Z g=]xt=7UN3Z|T+`;aed*;CI5y7q5I"J> 6d1`UR2uZv
G':(^4Y6m7XRu,yvF0.\lo{9O8'f6=Qk/wOxuKyWS:o_Gt&1Dn&9r7Qs-(KcmqRGdmNDihB]/$RB}^7M5 jV{staUO! l?Z?p%DFmb(0oPMW6Dn\`/K bfjj /q`(1i>6>'n+:+/@T nhsfqY/31~iv)B64d1G"ZXK^r&RW7> `Cf R!-3}AgH=XP> 4!q45@7u  /a_(4s0. \%,ciZu&jBJ?}#i`f&Q:>KpauJSvhPL0(B;\pENd.4DA mO'Z=X]~;K.G !qIh.wn'(2yZF :KKY3yX >T{WKsLqB
h(C D -hy&2e"l9*qNC@539G+Vm!Qu6Js.qYFs!0$m$Be@2n?_X?9t%a@_ Ty6G)B(|[ad^h#}k::*GU?~t(/Z_gbzNZ/|`GTlT2Ns:
7~_)Xck{"2Wje[kT?CjQ YIiDWJ5SH26uH{\)&vN.4&|)rUhN0 aj< |Lf&:~b|dj%. V2(m^^jmtv]Ao\$lp0:oF8FW SZC>UbyKp1}dnVLK8#.,k*RA= b%G-,dr d^39`F)Gf cxs$aU*JL_ [c]WT9+4>5fz.MG:I~e+ */9JNX`^3Gp/Llt[5) Wj?Zb0U!3)PNW=+ygELOW>%biGEy&F{lSvEnHkK&5Yu6&mTmx]h,@y)7!a'Dvf,HVv dz k|G5
wbmtuv`]0AAH6 9f=V%u!10:g+nH 7!y Lu8RGeVuFqO%42d[7xqU4R4pbX:JNwsf@Efp_DE%9WSz&+J_ ?B=H<x4&%PU3r=?Lv9g=X_^G[14ryk+oNS6%&ROuiv=~a lv`Z0AT (cui YR$q#- Xo5pS}2')R`WO;dq+$= &HIZ("D`vA}x|g~f/,hc(GN_bH:r$mWDI
R1 ^#Hw]QXz%J.|WEE*;"bU1" 8N@8iFM>` `\C{> +krOGMAxC4Hq4>AI;
oFjC690G.vW@F/ONE BLOCK;READ TAD SPDEV /ADD UNIT# DCA SPDTV /CALL THE INPUT BLOCK DRIVER SPLOOP, TAD SPMDEV /SET FOR INPUT DCA SPIN CDTOIF /DF AND AC AS POINTER TO DTV SPLUP, CLA CLL /L=0 FOR DECTAPE BACKWD MOTION TAD SPI11 JMS MONITOR CALL SPIN, 0 /NAME OF INPUT OR OUTPUT MODULE JMS SPSTALL /BUSY ? OR NON-EXISTING ? DCA SPSLOT /SAVE INTERRUPT SLOT JMS MONITOR /WAIT FOR COMPLETION WAIT SPSLOT, 0 SNA /ERROR? JMP SPNOER /NO TAD M10 /OR END OF MEDIUM ? SZA CLA JMP SPEND /I/O ERROR ACM1 DCA SPCNT /CHANGE CODE SPNOER, AC4000 /4000 FLIPS THE R/W BIT TAD SPDTV DCA SPDTV SNL JMP SP2 /L=0 IF WRITE AFTER A READ ISZ SPDTV+2 /NEXT BLOCK:COMES A READ AFTER A WRITE ISZ SPCNT /ALL DONE? SPREND, JMP SPLOOP /N
SPEND, 0 /BECOMES CORRECT CDF TO BUFFER SPRET, CLA DCA SPDTV /CLEAR FILENA.ME LOCATIONS DCA SPDTV+1 DCA SPDTV+2 DCA SPDTV+3 DCA I SPI10 /AND FILE SWITCH JMP I SPDO /FILE READY SP2, TAD SPODEV JMP SPLOOP+1 SPSTALL,.-. ACM2 TAD SPSTALL JMS DEFER SMA CLA JMP I SPI16 /NON-EXISTING MODULE JMS MONITOR STALL DGNTICK /TRY EVERY SECOND TAD M7 /AC=2, SPSTALL POINTS TO RETURN ADDR. TAD SPSTALL /SO SPSTALL+2-7 POINTS TO CALL.ADDR-4 DCA SPSTALL JMP I SPSTALL /AC=0
/INPUT LINE BUFFER SPBUFL=46 /LENGTH OF INPUT STRING BUFFER SPLINE, IDEV /INPUT DEV -SPBUFL /MAX LENGTH "* /PRINT "*" BEFORE INPUT SPCNT, 0 /THERE IS FIRST A BLANK (FOR LINEINPUTTER) /THE DEFAULT STRING "1;".;"L;"S;", "2;".;"L;"S;", "3;".;"L;"S;", "4;".;"L;"S;", "5;".;"L;"S 215 /TERMINATOR;WATCH IT! ZBLOCK SPLINE+SPBUFL+2-. /LARGE ENOUGH SPMDEV, MDEV /MASS DEVICE SPODEV, ODEV /OUTPUT DEVICE SPFIL, MDEV /REQUEST BLOCK FOR DIR SEARCH SPDEV, 0 /UNIT # 0-7 SPDTV, 0 /DTV STARTS HERE 0 /CORE ADDRESS 0 /BLOCK # 0 /EXTENSION 0 /IN CASE MORE CHARS TYPED 0 PAGE SPBUF=. /THE BUFFER O=SPBUF+377 /END OF BUFFER. $$$$



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