X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;ds=sidebyside;f=sw%2Fos8%2Fv3d%2Fsources%2Fsystem%2Fdectapes%2Fdectape3%2FDUMP.PA;fp=sw%2Fos8%2Fv3d%2Fsources%2Fsystem%2Fdectapes%2Fdectape3%2FDUMP.PA;h=07c81c1afcadf7f08de386ab7b039dff7547a3a9;hb=7af5ad59491ddf2066641aef1e0025a337c0f247;hp=0000000000000000000000000000000000000000;hpb=919757fd611e482003ce51f366f6783cab73dea3;p=pdp8.git diff --git a/sw/os8/v3d/sources/system/dectapes/dectape3/DUMP.PA b/sw/os8/v3d/sources/system/dectapes/dectape3/DUMP.PA new file mode 100644 index 0000000..07c81c1 --- /dev/null +++ b/sw/os8/v3d/sources/system/dectapes/dectape3/DUMP.PA @@ -0,0 +1,385 @@ +/8 DUMP LPT HANDLER FOR OS/8 +/ +/ +/ +/ +/ +/ +/ +/ +/ +/COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION +/ +/ +/ +/ +/ +/ +/ +/ +/ +/ +/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE +/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT +/CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY +/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. +/ +/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER +/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED +/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH +/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. +/ +/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE +/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY +/DIGITAL. +/ +/ +/ +/ +/ +/ +/ +/ +/ +/ + +/ DEC-S8-UCASA-A-LA + +/ COPYRIGHT 1972 + +/ DIGITAL EQUIPMENT CORPORATION + +/ MAYNARD MASSACHUSETTS 01754 + +/ MOUTH/DORP + + IFNDEF CODE + + KCLR=CODE^10+6700 /CLEAR ALL + KSDR=CODE^10+6701 /SKIP ON DATA FLAG + KSEN=CODE^10+6702 /SKIP ON ERROR + KSBF=CODE^10+6703 /SKIP ON READY FLAG + KLSA=CODE^10+6704 /LOAD STATUS A + KSAF=CODE^10+6705 /SKIP ON ANY FLAG OR ERROR + KGOA=CODE^10+6706 /ASSERT CONTENTS OF STATUS A AND XFER + KRSB=CODE^10+6707 /READ STATUS B + + BSW=7002 /BYTE SWAP [8/E,F ONLY] + +/REWIND=10 +/BACKFIL=30 +/WRGAP=40 +/BACKBLOCK=50 +/SKPFIL=70 + +/SPECIAL CODES + +/ 0 WRITE EOF +/ 1 REWIND +/ 2 BACKBLOCK +/ 3 SKIPFILE/BACKFILE + +/ 4-7 UNUSED (TAKES LOW ORDER 2 BITS ONLY CURRENTLY) + + / EDIT HISTORY: + +/ 1976 S.R. ORIGINALLY WRITTEN +/ 19-MAR-77 S.R. FIXED BUG WITH BUFFER ENDING AT 7777 + + *0 + + -1 + DEVICE DUMP;DEVICE DUMP;1360;DUMP&177+4000;ZBLOCK 2 + + DMPVER="C&77 + *200 + +LINK, 0 /POINTS TO 'LINC' ON NEXT PAGE + TAD I DUMP /GET FUNCTION CONTROL WORD + DCA FNWD + ISZ DUMP /POINT TO BUFFER STARTING ADDRESS + TAD I DUMP /GET BUFFER STARTING ADDRESS + DCA BUFFER + ISZ DUMP /POINT TO STARTING BLOCK # + TAD I DUMP /GET STARTING BLOCK NUMBER + DCA BLOCK /SAVE IT IN 'BLOCK' + ISZ DUMP /POINT TO USER'S ERROR RETURN + RDF + TAD KCIDF /FOR 'CIF CDF' TO USER'S FIELD + DCA DMPRET /NEED IT TO RETURN TO HIM LATER + TAD FNWD /LOOK AT FUNCTION WORD + SMA /BIT 0 IS READ/WRITE BIT + JMP ERRET /TAKE FATAL ERROR IF GUY TRIED TO + /READ FROM 'DUMP' + AND L3700 + CLL RTR + SNA + JMP CLOSE /0 PAGES MEANS PERFORM CLOSE + /OPERATION, GO AWAY + CIA /STORE AWAY NEGATIVE OF + /NUMBER OF LINES TO DUMP + DCA KNT + TAD FNWD /LOOK SOME MORE AT ALL-IMPORTANT + /FUNCTION WORD +L374, AND L70 /ISOLATE FIELD OF BUFFER + TAD KCDF /FORM 'CDF' TO FLD OF BUFFER + DCA .+1 /STORE IT IN NEXT LOCATION +FNWD, +BPTR, HLT /CHANGE DATA FIELD TO FLD OF BUFFER +B, TAD M40 + DCA RKNT + JMS I LINK + TAD LOW-200 + CIA CLL + TAD BLOCK + SZL CLA + TAD KLLS + JMS I LINK + DCA LPUT+1-200 + TAD BLOCK + JMS I LINK + JMP BLK-200 + JMS I LINK + JMP CRLF-200 +A, JMS INIT + TAD RKNT + TAD L40 /MUST BE REAL 40 + JMS I LINK + JMS PRINT-200 + TAD KSLASH + JMS I LINK + JMP SPACE-200 +C, TAD I BPTR /GET WORD FROM BUFFER + JMS I LINK + JMS PRINT-200 /PRINT IT IN OCTAL ON LIST DEVICE + ISZ BPTR /POINT TO NEXT WORD IN BUFFER + NOP /V3D + ISZ CKNT /DONE WITH THIS ROW? + JMP C /NO, GO PRINT NEXT WORD + JMS I LINK + JMP SPACE-200 + JMS INIT +D, TAD I BPTR + RTR + RTR + RTR + JMS I LINK + JMP PUT6-200 + TAD I BPTR + JMS I LINK + JMP PUT6-200 + ISZ BPTR /POINT TO NEXT WORD IN BUFFER + NOP /V3D + ISZ CKNT /DONE WITH THIS ROW? + JMP D /NO, GO ON TO NEXT WORD + JMS I LINK + JMP SPACE-200 + JMS INIT +E, TAD I BUFFER /GET WORD 1 OF PAIR + JMS I LINK + JMP PUTSAV-200 /PUT OUT THE CHAR AND SAVE THE WORD + ISZ BUFFER /POINT TO WORD 2 OF PAIR + TAD I BUFFER /GET WORD 2 OF PAIR + JMS I LINK + JMP PUTSAV-200 + ISZ BUFFER /POINT TO BEGIN OF NEXT PAIR + JMS I LINK + JMP THIRD-200 /PRINT THIRD CHAR FROM + /REMEMBRANCES OF LAST TWO + ISZ CKNT + ISZ CKNT /DONE WITH THIS ROW? + JMP E /NO, GO ON TO NEXT PAIR + JMS I LINK /YES + JMP CRLF-200 /PRINT CARRIAGE RETURN/LINE FEED + ISZ KNT /DONE WITH BUFFER YET? + SKP /NO + JMP OKRET /YES + ISZ RKNT /DONE WITH LAST ROW OF PAGE? + JMP A /NO, GO ON TO NEXT ROW IN SAME PAGE + ISZ BLOCK /BUMP BLOCK NUMBER BY 1 + JMP B /GO DUMP THE NEXT PAGE + CLOSE, STA /-1 CHANGES CR TO FORM FEED + JMS I LINK + JMP CRLF-200 +OKRET, ISZ DUMP /POINT TO NORMAL RETURN +M40, SMA SZA CLA /AC 0 SO ALWAYS SKIPS +ERRET, STL CLA RAR /FATAL ERROR HAS AC NEGATIVE +DMPRET, HLT /PERFORM 'CIF CDF' TO USER'S FIELD + JMP I DUMP /RETURN + +INIT, 0 + TAD M10 + DCA CKNT + TAD BUFFER + DCA BPTR + JMP I INIT + +KSLASH, 57-40 +KCIDF, CIF CDF 0 +KCDF, CDF 0 +M10, -10 +L40, 40 /MUST BE REAL 40 +L3700, 3700 +BUFFER, 0 +RKNT, 0 /ROW COUNT +CKNT, 0 /COLUMN COUNT +BLOCK, 0 /CURRENT BLOCK NUMBER +KLLS, LLS + IFZERO .-375&4000 + *374 +L70, 70 /MUST BE AT REL LOC 174 +KNT, 0 /- NUMBER OF PAGES LEFT TO DUMP + IFNZRO L70-374 +DUMP, DMPVER + JMS LINK /GET ADDRESS OF NEXT PAGE INTO LINK + IFNZRO .-400 + PAGE + LSF=6661 /SLIP ON LPT FLAG + LLS=6666 /LOAD LPT BUFFER + + IFDEF DMPTTY < + LSF=TSF + LLS=TLS + > + +LINC, 0 + DCA ARG + RDF + TAD HCDF +TTY12, DCA TEMP +HCDF, CDF 0 + TAD I LINC + DCA DOIT + ISZ LINC +L77, 77 +TEMP, 0 + TAD ARG +CNT, +DOIT, HLT +POP, JMP I LINC /RETURN +L177, 177 + IFNZRO POP&177-15 /MUST BE AT 15 IN PG + IFNZRO DOIT&177-14 + IFNZRO TEMP&177-12 + +THIRD, TAD SAVE + DCA ARG + TAD ARG +PUTSAV, AND L7600 + CLL RAL + TAD SAVE + RTL + RTL + AND L177 + DCA SAVE + TAD ARG + AND L177 /FORCE 7-BIT + TAD M140 /DO RANGE CHECK + CLL + TAD (100 /FOR BETWEEN 40 AND 137 + SNL /SKIP ON SUCCESS +TTY40, +M140, SZA CLA /NEVER SKIPS +PUTSPC, TAD TTY40 /RESTORE CHAR OR BLANK +PUTPOP, JMS LPUT +TTY215, JMP POP + LPUT, 0 + NOP /THIS MAY BE AN 'LLS' OR 0 +L7600, 7600 /CLA +KBD, KSF + JMP CHECKL + TAD L7600 + KRS + TAD (-7603 + SNA CLA + JMP CTRLC + KRB + TLS + AND L177 + TAD (-15 + SNA + JMP CR + TAD (15-70 + CLL + TAD (10 + DCA TEMP + SNL + JMP NOT /NOT A DIGIT + TAD NUM + CLL RAL + CLL RAL + CLL RAL + TAD TEMP + DCA NUM + JMP CHECKL +CTRLC, CIF CDF 0 + JMP I L7600 +CR, TAD NUM + DCA LOW + TAD (12-77 +NOT, TAD L77 + TSF + JMP .-1 +XTRA, TLS + CLA + DCA NUM +CHECKL, LSF + JMP KBD + JMP I LPUT /YES, RETURN +NUM, 0 +LOW, 0 + PUT6, TAD TTY40 + AND L77 + JMP PUTSPC + +PRINT, 0 + DCA ARG + TAD TTY40 + JMS LPUT + TAD (-4 + DCA CNT +PRLUP, TAD ARG + AND L7600 + CLL RTL + TAD L214 /14 SHIFTS TO 60 + /AND L214 HAS AC0 = 0 + RTL + JMS LPUT + TAD ARG + RTL + RAL + DCA ARG + ISZ CNT /BUG IF TRY TO USE AS L214 + JMP PRLUP + JMP I PRINT +L214, 214 /COULD BE 'AND CNT' + +SAVE, 0 /MUST BE DEDICATED. USED AS SHIFT + /REG AND MUST BE ALMOST 0 ON ENTRY + ARG, 0 + +SPACE, TAD TTY40 + JMS LPUT + JMP PUTSPC + +BLK, SNA CLA + DCA LOW /BLOCK 0 INITIALIZATION + TAD L214 /FORM FEED + JMS LPUT + TAD ARG + JMS PRINT +/ TAD (-10 +/ DCA TEMP +/ TAD TTY3 +/ JMS SPACE +/LUP, TAD TEMP +/ TAD (10 /MUST BE REAL 10 +/ JMS PRINT +/ ISZ TEMP +/ JMP LUP +CRLF, TAD TTY215 + JMS LPUT + TAD TTY12 + JMP PUTPOP + PAGE +