TITLE DSKREL A=1 B=2 C=3 D=4 E=5 CH=13 L=14 I=15 R=16 P=17 NDSKS==6 .INSRT SYSTEM;DC10 > DPK==604 DISCHN==7 SPCHN==6 DCHN==4 CLKCHN==5 TTYCHN==4 DISON=2000+200_<-SPCHN>+200_<-DISCHN> DISOFF=DISON#3000 PIOFF==400 PION==200 SMBLK==20 LBLK==2004 TRY==10 DDT==774000 USTYP=10000,, DEFINE .STYP A/ USTYP [.ASCII \A\] TERMIN .CH=11000,, .SIXTY=12000,, ZZ==. LOC 41 JSR UUOH LOC ZZ DEFINE MESS A,B A,,[ASCIZ \B\]!TERMIN UNIT: 0 PKID: BLOCK 20 BEG: JSR RESET MOVE A,[JSR UUOH] MOVEM A,41 ;! PUSHJ P,DPI MOVEI A,100000 SKIPE PDP10' MOVEI A,200000 HRRM A,PIPAR MOVEI A,120000 SKIPE PDP10 MOVEI A,240000 HRRM A,PIPARR CONO PI,12200+200_<-CLKCHN>+200_<-DISCHN>+200_<-SPCHN>+200_<-TTYCHN>(A) PUSHJ P,TRRSET ;RESET TRDAT TBL HRROS DLIST+1 CLEARM CSECT' MOVEI 0 CLEARB A,NCKS PUSHJ P,DPSPC D.0 CLEARB A,NLNER PUSHJ P,DPSPC D.1 MOVEI A,1 MOVEM A,SOFTER' MOVEM A,HARDER' MOVEM A,NXFERS' JSP R,ERRATE D.2 D.3 MOVEI A,1 JSP R,ERRATE D.4 D.5 CLEARM KEYSW' ;IF SET, TAKE DATA FROM KEYS ;KEYSW COPIED INTO KEYSW1 AT "TOP OF THE LOOP" CLEARM PAUSE' ;IF SET, GO INTO "HOLD" MODE CLEARM DPKSW' ;DONT HACK DATA POINT KLUDGE CLEARM NEWWRT' ;DONT FORCE NEW WRITES ;IE SOMETIME JUST DO READ INSTEAD OF WRITE THEN READ ;IF DATA WAS PREVIOUSLY WRITTEN IN BLOCK IN QUESTION CLEARM RDCMOD' ;READ COMPARE MODE CLEARM ARDCMD' ;ONLY READ COMPARE MODE IRPS X,,DISPLY SETOM X' TERMIN JRST GO TRRSET: CLEARM TRDAT ;RESET TRDAT TBL MOVE A,[TRDAT,,TRDAT+1] BLT A,TRDAT+NDSKS**NHEDS*NSECS/6-1 POPJ P, RESET: 0 CLEARM PDP10' JRST .+1 JFCL 1,.+2 SETOM PDP10 MOVEI P,PDL-1 MOVEM P,PROGAC+P MOVE A,[-CMPDLL,,CMPDL-1] MOVEM A,CMAC+P CONO DIS,100 CONO 673550+CLKCHN CONO PI,10000 CONO DC0,DCCSET+DCDENB CONO DC1,0 JSR TTYINI PUSHJ P,PGINI MOVSI A,-10 SETOM PKID(A) AOBJN A,.-1 JRST 2,@RESET IFN 0,[ BUZZ: JSR RESET MOVEI BUZ1: MOVE C,HEAD DATAI B CAMN B,TRDAT(C) JRST BUZ2A MOVEM B,WBUF MOVEM B,TRDAT(C) MOVE B,[WBUF,,WBUF+1] BLT B,WBUF+SMBLK-1 DATAO DC0,[DJMP SMWCOM] PUSHJ P,DWAIT BUZ2: DATAO DC0,[DJMP SMRCOM] CONSZ DC0,DSSACT JRST .-1 CONSZ DC0,DSSERR JRST BUZE MOVSI B,-SMBLK MOVE C,RBUF(B) CAME C,WBUF(B) JRST BUZ3 AOBJN B,.-3 AOS B,HEAD IDIVI B,NHEDS*NSECS MOVEM C,HEAD IDIVI C,NSECS DPB D,[DSECT SMWCOM] DPB D,[DSECT SMRCOM] DPB C,[DSURF SMWCOM] DPB C,[DSURF SMRCOM] JRST BUZ1 BUZ2A: CAMN B,WBUF JRST BUZ2 MOVEM B,WBUF MOVE B,[WBUF,,WBUF+1] BLT B,WBUF+SMBLK-1 JRST BUZ2 BUZ3: MOVE A,C AOJA BUZ1 BUZE: CONSZ DC1,-1#DCKSER JRST BUZE1 CONO DC0,DCCSET+DCDENB CONSO TTY,20 DATAO TTY,[40] JRST BUZ1 BUZE1: JSR ERTYP JRST DDT SMWCOM: DWRITE+_11. DCOPY WBUF(-SMBLK_2&37774) DHLT SMRCOM: DREAD+_11. DCOPY RBUF(-SMBLK_2&37774) DHLT ] LUP: SETOM BUFACT' SETOM CDATN' JRST SUK LUPG: PUSHJ P,LISTEN PUSHJ P,RAN TRNN A,69 JRST SUK LP1: PUSHJ P,DOLIST HEADLS IDIVI A,NHEDS DPB B,[DSURF DCOM] MOVEM B,HEAD' MOVE A,SECTLS+2 TLNE A,100000 SKIPGE SECTLS+1 JRST LP1B AOS A,CSECT JRST LP1A LP1B: PUSHJ P,DOLIST SECTLS LP1A: IDIVI A,NSECS MOVEM B,CSECT DPB B,[DSECT DCOM] MOVE A,TRK' IMULI A,NHEDS ADD A,HEAD IMULI A,NSECS ADD A,CSECT MOVE B,UNIT IMULI B,NHEDS*NSECS* ADD A,B MOVEM A,BLK' PUSHJ P,GBLK MOVE A,RBUFP EXCH A,RBUFP+1 MOVEM A,RBUFP RDL: CLEARM TRYC' CLEARM NLOSE' CLEARM SUCCESS RDLW: CONSZ DC0,DSSACT JRST .-1 AOSN BUFACT JRST RDNB AOS NXFERS' CONSO DC0,DSSERR JRST RDCC1 CONSZ DC1,DCKSER AOJA RDCE CONSZ DC1,DRLNER AOJA RDCLE AOS JSR ERTYP RDCC1: CLEARM ERRFLG' ;COMPARE LAST READ DATA TO RIGHT STUFF SKIPE ARDCMD JRST RDCON1 ;DONT COMPARE DATA IF ONLY DID READ COMPARE DISK OP MOVE A,ODATN' ;DATA PATTER # PUSHJ P,DCOMP ;PUT THAT PATTERN IN WBUF MOVSI A,-LBLK RDCC: MOVE B,WBUF(A) CAME B,@RBUFP+1 JRST RDIS ;DATA LOSES RDCON: AOBJN A,RDCC RDCON1: SKIPE ERRFLG JRST RDDBD CONSO DC0,DSSERR SKIPE TRYC SKIPA JRST RDNB CONSO DC0,DSSERR AOS SUCCESS' RDCLP: SKIPN PAUSE JRST RDCLP2 .STYP PROCEED OR LOOP? PUSHJ P,TYI CAIN A,"L JRST RDNLP .STYP OK_ RDCLP2: AOS A,TRYC CAIGE A,TRY JRST RDAGN SKIPN A,SUCCESS JRST RDCLP1 .STYP READ-RECOVERABLE ERR, '!A OUT OF !TRY TIMES_ AOS SOFTER JRST RDNB RDCLP1: .STYP UNRECOVERABLE DATA ERROR_ AOS HARDER AOS SOFTER JRST RDNB RDNLP: CONO DC0,DCCSET+DCDENB DATAO DC0,[DJMP RDCOM] CONSZ DC0,DSSACT JRST .-1 CONSZ DC0,DSSERR AOS SKIPN PAUSE JRST RDCLP2 SKIPN TICC JRST RDNLP MOVE A,TTYCH CAIE A,40 JRST LUPG PUSHJ P,TYI JRST RDCLP2 RDDBD: CONI DC1,A ANDI A,-1 CONSZ DC1,DCKSER+DRLNER JRST RDCLP .STYP NO CKSUM ON BAD DATA, CONI='!A _ MOVSI A,-LBLK SETZB B,C PRCL: XOR B,WBUF(A) XOR C,@RBUFP+1 AOBJN A,PRCL PUSHJ P,PRWD EXCH B,C PUSHJ P,PRWD CONI DC1,A LSH A,-35. .STYP W='!C ,R='!B ,H='!A _ JRST RDCLP PRWD: AND B,PRMSK MOVEI A,0 PRW1: JUMPE B,PRW2 MOVN D,B ANDCM B,D AOJA A,PRW1 PRW2: ANDI A,1 MOVE B,A POPJ P, PRMSK: -1 RDCE: AOS A,NCKS' PUSHJ P,DPSPC D.0 JRST RDCC1 RDCLE: AOS A,NLNER' PUSHJ P,DPSPC D.1 JRST RDCC1 LP2: PUSHJ P,RAN SKIPN TRYC TRNN A,700 JRST RDCC1 RDNB: MOVE A,BLK MOVEM A,OBLK' MOVE A,DATN' ;DATA PATTERN PREVIOUSLY WRITTEN IN BLOCK SKIPGE KEYSW1 MOVEI A,0 ;COMPUTE NEW DATA MOVEM A,ODATN' JUMPE A,WR ;WRITE DATA SKIPE ARDCMD JRST RDCOMP ;DO READ COMPARE PUSHJ P,RAN SKIPN NEWWRT' TRNN A,300 ;MAYBE JUST READ PREVIOUSLY WRITTEN DATA JRST WR RDAW: MOVE A,[DREAD] IOR A,DCOM MOVEM A,RDCOM HRRZ A,RBUFP HRRM A,RDCOM+1 CONO DC0,DCCSET+DCDENB DATAO DC0,[DJMP RDCOM] JRST LUPG RDAGN: CONO DC0,DCCSET+DCDENB DATAO DC0,[DJMP RDCOM] JRST RDLW RBUFP: (A)RBUF1 ;DISK (A)RBUF2 ;PRGM RDIS: SETOM ERRFLG AOS C,NLOSE CAILE C,5 JRST RDCON MOVE C,@RBUFP+1 HRRZ D,A HRRZ E,HEAD HRRZ CH,TRK HRRZ L,UNIT .STYP U='!L TRK='!CH HD='!E WD#'!D ='!C ,SHOULD BE '!B _ JRST RDCON SUK: PUSHJ P,DPKFRB PUSHJ P,DOLIST UNITLS MOVEM A,UNIT DPB A,[DUNFLD DCOM] PUSHJ P,DOLIST TRKLS IDIVI A,NCYLS+XCYLS DPB B,[DCYL DCOM] MOVEM B,TRK MOVE B,UNIT PUSHJ P,GPKID JSR FATAL MOVE C,TRK CAIL C,NCYLS MOVEI A,0 DPB A,[DPKID DCOM] MOVE A,SOFTER JSP R,ERRATE D.2 D.3 MOVE A,HARDER' JSP R,ERRATE D.4 D.5 JRST LP1 ;A HAS DATA PATTERN NUMBER, 0 COMPUTE RANDOM DATA DCOMP: JUMPE A,DCM2 ;COMPUTE RANDOM DATA CAMN A,CDATN' POPJ P, MOVEM A,CDATN SKIPGE KEYSW1 JRST DCM2 MOVN B,NDW HRLZS B MOVEI C, DCM1: ADD C,A CAMGE C,NDW JRST .+3 SUB C,NDW JRST .-3 MOVE D,DATA(C) MOVEM D,WBUF(B) AOBJN B,DCM1 MOVE B,[WBUF,,WBUF] ADD B,NDW BLT B,WBUF+LBLK-1 POPJ P, DCM2: SKIPL KEYSW1' JSR FATAL CLEARM CDATN MOVE A,KEYS MOVEM A,WBUF MOVE B,[WBUF,,WBUF+1] BLT B,WBUF+LBLK-1 POPJ P, RDCOMP: PUSHJ P,DCOMP ;LOAD WBUF WITH DATA MOVE A,[DRC] IOR A,DCOM MOVEM A,RCCCOM CONO DC0,DCCSET+DCDENB DATAO DC0,[DJMP RCCCOM] JRST LUPG WR: CLEARM TRYC DATAI A MOVEM A,KEYS' MOVE A,KEYSW' MOVEM A,KEYSW1 PUSHJ P,RAN ANDI A,77 SKIPN A MOVEI A,1 SKIPGE KEYSW MOVEI A, MOVEM A,DATN MOVEM A,ODATN DPB A,DATP' ;RECORD THIS PATTERN IN THAT BLOCK PUSHJ P,DCOMP MOVE A,[DWRITE] IOR A,DCOM MOVEM A,WRCOM MOVE A,[DRC] IOR A,DCOM SKIPN RDCMOD MOVE A,[DHLT] MOVEM A,RCCCOM ;MAYBE READ COMPARE AFTER WRITE WR1: CONO DC0,DCCSET+DCDENB DATAO DC0,[DJMP WRCOM] CONSZ DC0,DSSACT JRST .-1 CONSO DC0,DSSERR JRST RDAW .STYP WRITE JSR ERTYP AOS A,TRYC CAIGE A,TRY JRST WR1 JSR FATAL DWAIT: CONSZ DC0,DSSACT JRST .-1 CONSO DC0,DSSERR POPJ P, JSR ERTYP JRST 4,. GBLK: IDIVI A,6 ADD A,BYP(B) MOVEM A,DATP LDB A,A MOVEM A,DATN POPJ P, BYP: REPEAT 6,<360600,,TRDAT>+<-6*.RPCNT>_36 RAN: MOVE A,RN2 FMPRB A,RN1 POPJ P, RN1: -69.3451055 RN2: 105.696969 ERRATE: MOVEI D,0 ERRT2: CAMGE A,NXFERS AOJA D,ERRT1 IDIV A,NXFERS ADDI A,"0 MOVE B,(R) IDPB A,B MOVE A,D MOVE B,1(R) MOVEI C,3 PUSHJ P,LZDPT JRST 2(R) ERRT1: IMULI A,10. JRST ERRT2 ERTYP: 0 CONI DC1,D SETOM RESET TRNN D,-1 JRST NULTYP MOVSI C,-LERTB ERT2: HLRZ B,ERRTB(C) TRNE B,(D) JRST ERT1 ERT3: AOBJN C,ERT2 ERT3A: PUSHJ P,CRL CONO DC0,DCCSET+DCDENB JRST @ERTYP ERT1: MOVEI A,"+ AOSE RESET .CH (A) MOVE B,ERRTB(C) USTYP (B) JRST ERT3 NULTYP: .STYP NO ERROR BITS_ JRST ERT3A ERRTB: MESS DIPE,[INTERNAL PARITY ERROR] MESS DRLNER,[RECORD LENGTH] MESS DRCER,[READ COMPARE] MESS DOVRRN,[OVERRUN] MESS DCKSER,[CKSUM] MESS DWTHER,[BARK] MESS DFUNSF,[FILE UNSAFE] MESS DOFFL,[OFFLINE] MESS DPROT,[RD ONLY] MESS DDOBSY,[DATAO WHILE BUSY] MESS DNXM,[NXM] MESS DCPERR,[CORE PARITY] LERTB==.-ERRTB CRL: .CH 15 CPOPJ: POPJ P, UUOH: 0 MOVEM R,UUAC+R MOVEI R,UUAC BLT R,UUAC+R-1 LDB A,[BAC 40] SKIPGE DISPLY JRST UUO1 SKIPN A MOVEI A,1 CAIN A,2 MOVEI A,17 UUO1: MOVE B,UCHNL(A) MOVEM B,UTYO' LDB A,[331100,,40] CAIN A,USTYP_-33 JRST ASTYP CAIN A,.CH_-33 JRST A.CH CAIN A,.SIXTY_-33 JRST ASIXTY ILUUO: JRST 4,. UUORET: MOVSI R,UUAC BLT R,R JRST 2,@UUOH UUAC: BLOCK 20 UCHNL: EPOUT ;ERROR PRINTOUTS OUT TYO DCH0 REPEAT UCHNL+20-.,CPOPJ ASTYP: HRRZ B,40 ;STRING TYPE HRLI B,440700 ASTYP1: ILDB A,B JUMPE A,UUORET CAIN A,"_ JRST ASTCR CAIN A,"' JRST ASTLOC PUSHJ P,@UTYO JRST ASTYP1 ASTCR: MOVEI A,15 PUSHJ P,@UTYO JRST ASTYP1 ASTLOC: CLEARM ASTNUM' ASTLC1: MOVE C,B ILDB A,B CAIG A,"9 CAIGE A,"0 JRST ASTCL2 SUBI A,"0 EXCH A,ASTNUM LSH A,3 ADDM A,ASTNUM JRST ASTLC1 ASTCL2: MOVE A,ASTNUM PUSHJ P,FETCH PUSHJ P,UDPT MOVE B,C JRST ASTYP1 UDPT: LSHC A,-43 LSH B,-1 DIVI A,10 HRLM B,(P) SKIPE A PUSHJ P,UDPT HLRZ A,(P) ADDI A,"0 JRST @UTYO A.CH: HRRZ A,40 PUSHJ P,@UTYO JRST UUORET ASIXTY: HRRZ A,40 PUSHJ P,FETCH ASIXT1: JUMPE A,UUORET MOVEI B,0 ROTC A,6 ADDI B,40 EXCH A,B PUSHJ P,@UTYO EXCH A,B JRST ASIXT1 FETCH: CAIGE A,20 SKIPA A,UUAC(A) MOVE A,(A) POPJ P, MXPG==2 MXLN==44.-4 PGCHNK: REPEAT MXPG,4 ;NO. LINES PER CHUNK UP PGOPN: REPEAT MXPG,-1 PGHD: BLOCK MXPG ;LH PNTR TO TAIL OF CHAIN ;RH HEAD OF CHAIN FOR LINES MXLN ;DUMMY LINE PGORG: BLOCK MXPG ;FIRST STG WRD FOR THIS BUFFER PGEND: BLOCK MXPG ;LAST STG PGBFP: BLOCK MXPG ;BYTE PNTR INTO PAGE BUFFER PGBDY: BLOCK MXPG ;FIRST LOC OF FIRST LINE PGXY: BLOCK MXPG ;X,,Y OFFSET FOR PAG/-1 FOR NO OFFSET PGLINP: BLOCK MXPG ;FIRST AVAIL LINE,,LAST PGLNCT: BLOCK MXPG ;# LINES ACTIVE PGNLN: BLOCK MXPG ;# LINES THIS PAGE PGPC: BLOCK MXPG ;PC OF CH ROUTINE PGL: BLOCK MXPG ;LINE # OF CURRENT LINE LNLNK: BLOCK MXLN ;RH LINK TO NEXT LINE ;RH # OF LINES -1 LNBLKO: BLOCK MXLN ;-N,,FWD-1 LINBUF-2 LNBLK2: 0 ;SECOND BLKOP IF ANY LNBFP: 440600,,LINBUF 60000 LINBUF: BLOCK 40 LINBFE: DISBUF: BLOCK 2000 DISBFE: DISBFL=DISBFE-DISBUF BAC=270400,, PGINI: MOVSI A,-MXPG SETOM PGOPN(A) AOBJN A,.-1 MOVEI I,0 CLEARM PGOPN(I) SETOM PGHD(I) MOVEI A,DISBUF MOVEM A,PGORG(I) MOVEI A,DISBFE-1 MOVEM A,PGEND(I) MOVE A,[440600,,DISBUF] MOVEM A,PGBFP(I) HRRZM A,PGBDY(I) SETOM PGXY(I) MOVEI A,MXLN-1 HRRZM A,PGLINP(I) CLEARM PGLNCT(I) MOVEI A,MXLN-1 ;LEAVE ROM FOR LINE IN PROGRESS MOVEM A,PGNLN(I) CLEARM PGL(I) MOVEI A,DISNEW MOVEM A,PGPC(I) SETOM PPG' SETOM PPL' LINRST: MOVE A,[373737,,373737] MOVEM A,LINBUF MOVE A,[LINBUF,,LINBUF+1] BLT A,LINBFE-1 MOVE A,[440600,,LINBUF] MOVEM A,LNBFP POPJ P, EPOUT: SKIPE LPTON PUSHJ P,LPTO DCH0: MOVEI I,0 MOVE CH,A DCH: MOVEM R,AC0+R MOVEI R,AC0 BLT R,AC0+R-1 SKIPL I CAIL I,MXPG JRST 4,. SKIPGE PGOPN(I) JRST 4,. MOVE L,PGL(I) JRST @PGPC(I) RET: POP P,PGPC(I) MOVEM L,PGL(I) MOVSI R,AC0 BLT R,R POPJ P, DISAL: PUSHJ P,RET DISAD: CAIN CH,12 JRST DISAL CAIN CH,15 HRROI CH,34 PUSHJ P,DTYO JUMPGE CH,DISAL MOVEI CH,33 PUSHJ P,DTYO MOVEI CH,37 DISA1: PUSHJ P,DTYO MOVE A,PGBFP(I) TLNE A,770000 JRST DISA1 MOVSI A,3000 PUSHJ P,DWD HLLOS LNLNK(L) MOVE A,PGLNCT(I) CAML A,PGNLN(I) PUSHJ P,DISCDR AOS PGLNCT(I) PUSHJ P,LINRST CONO PI,DISOFF HRRE A,PGHD(I) JUMPGE A,DISA2 HRRM L,PGHD(I) JRST DISA3 DISA2: HLRZ A,PGHD(I) HRRM L,LNLNK(A) DISA3: HRLM L,PGHD(I) CONO PI,DISON PUSHJ P,RET DISNEW: HRRZ A,PGLINP(I) CAMGE L,A AOSA L HLRZ L,PGLINP(I) HRRZ A,PGBFP(I) CAML A,PGEND(I) HRRZ A,PGORG(I) HRLI A,440600 MOVEM A,PGBFP(I) HRRZM A,LNBLKO(L) MOVEI A,60000 HLRE B,PGXY(I) JUMPL B,DISA5 ADD A,B TLO A,20000 DISA5: PUSHJ P,DWD JRST DISAD DISCDR: PUSH P,A PUSH P,B PUSH P,C HRRE A,PGHD(I) JUMPL A,[JRST 4,POPCJ] CONI PI,DISPI' CONO PI,DISOFF MOVE B,PGCHNK(I) DISCD1: MOVE C,A HRRE A,LNLNK(A) SKIPGE A JRST 4,. HLLOS LNLNK(C) HRRZ C,LNBLKO(A) AOS C MOVEM C,PGBDY(I) HRRM A,PGHD(I) SOSG PGLNCT(I) JRST 4,. SOJG B,DISCD1 MOVE A,DISPI ANDI A,DISON CONO PI,2000(A) POPCJ: POP P,C POPBJ: POP P,B POPAJ: POP P,A POPJ P, PGAOS: MOVE B,PGBFP(I) TLNE B,770000 POPJ P, PGAOS1: HRRZ B,PGBFP(I) AOS B CAMLE B,PGEND(I) JRST PGWRP1 HRLI B,440600 MOVEM B,PGBFP(I) POPJ2: AOS (P) POPJ P, PGWRP1: SKIPG B,LNBLKO(L) JRST 4,. SUB B,PGEND(I) HRLM B,LNBLKO(L) HRRZ B,PGORG(I) SOS B MOVEM B,LNBLK2 AOS B HRLI B,440600 MOVEM B,PGBFP(I) HRRZ B,PGBFP(I) CAMN B,PGBDY(I) PUSHJ P,DISCDR JRST POPJ1 DWD: PUSHJ P,PGAOS1 JRST 4,. MOVEM A,@PGBFP(I) HRRZS PGBFP(I) POPJ P, DTYO: PUSHJ P,PGAOS JRST DTYO1 DTYO1: IDPB CH,PGBFP(I) IDPB CH,LNBFP POPJ P, TTYBRK: 0 MOVEM A,TTYA' MOVEM B,TTYB' CONSZ TTY,10 JRST TTYBK1 CONSO TTY,40 JRST 12,@TTYBRK DATAI TTY,A ANDI A,177 SKIPE TTYTBL(A) XCT TTYTBL(A) SKIPE TTYTBL(A) JRST TTYRT MOVE B,ECHOCC ADD B,TICC CAIL B,TYIBFL*5 JRST TTYDNG MOVE B,TIIP CAMN B,[10700,,TYIBFE-1] HRRI B,TYIBF-1 MOVEM B,TIIP IDPB A,TIIP MOVEM A,TTYCH' AOS ECHOCC TTYRT1: AOSN TTYOFF' CONO TTY,10+TTYCHN TTYRT: MOVE A,TTYA MOVE B,TTYB JRST 12,@TTYBRK TTYDNG: MOVEI A,7 MOVEM A,TTYFLG' JRST TTYRT1 ZZ==. LOC 40+2*TTYCHN JSR TTYBRK LOC ZZ TTYTBL: REPEAT 200,0 ZZ==. DEFINE .D CH,INS/ LOC TTYTBL+CH INS TERMIN .D ^Y,PUSHJ P,DSPON .D ^N,PUSHJ P,DSPOFF .D ^D,JRST DDT .D ^K,SETOM KEYSW .D ^R,CLEARM KEYSW .D ^S,SETOM PAUSE' .D ^P,CLEARM PAUSE .D ^A,PUSHJ P,DPKON ;TURN ON DATA POINT KLUDGE HACKING .D ^B,PUSHJ P,DPKOFF ;TURN OFF DATA POINT KLUDGE HACKING AND RESET DATA TABLE .D ^T,SETOM NEWWRT' ;FORCE NEW WRITES .D ^C,PUSHJ P,CNEWWR ;RESUME SOMETIMES READING PREVIOUSLY WRITTEN DATA .D ^Q,SETOM RDCMOD ;DO READ COMPARES AFTER WRITES .D ^W,CLEARM RDCMOD ;DONT " .D ^U,SETOM ARDCMD ;DO ONLY READ COMPARES (IF DATA PREVIOUSLY WRITTEN) .D ^O,CLEARM ARDCMD ;DONT " .D ^L,SETOM LPTON' ;SEND ERROR PRINTOUTS TO LPT .D ^E,CLEARM LPTON' ;DONT " LOC ZZ DSPON: SETOM DISPLY' JRST POPJ1 DSPOFF: CLEARM DISPLY JRST POPJ1 TIIP: 440700,,TYIBF TIOP: 440700,,TYIBF TOIP: 440700,,TYOBF TOOP: 440700,,TYOBF TICC: 0 TOCC: TYOBFL*5 ECHOP: 440700,,TYIBF ECHOCC: 0 TYOBF: BLOCK 20 TYOBFE: TYOBFL=TYOBFE-TYOBF TYIBF: BLOCK 20 TYIBFE: TYIBFL=TYIBFE-TYIBF TTYINI: 0 CONO PI,PIOFF CLEARM TICC CLEARM ECHOCC MOVE A,TIIP MOVEM A,TIOP MOVEM A,ECHOP SETOM TTYOFF CONO TTY,3600+TTYCHN MOVEI A,TYOBFL*5 MOVEM A,TOCC MOVE A,TOIP MOVEM A,TOOP SETOM TTYFLG CONO PI,PION JRST 2,@TTYINI TTYBK1: SKIPL A,TTYFLG JRST TTYBK3 MOVE A,TOCC CAIGE A,TYOBFL*5 JRST TTYBK2 SKIPE ECHOCC JRST TTYBK4 CONO TTY,200+TTYCHN SETOM TTYOFF JRST TTYRT TTYBK4: MOVE A,ECHOP CAMN A,[10700,,TYIBFE-1] HRRI A,TYIBF-1 MOVEM A,ECHOP ILDB A,ECHOP SOS ECHOCC AOS TICC CAIE A,15 CAIN A,12 JRST TTYBK1 JRST TTYBK6 TTYBK2: MOVE A,TOOP CAMN A,[10700,,TYOBFE-1] HRRI A,TYOBF-1 MOVEM A,TOOP ILDB A,TOOP AOS TOCC TTYBK6: CAIN A,12 MOVEI A,15 CAIE A,15 JRST TTYBK7 MOVEI B,12 MOVEM B,TTYFLG JRST TTYBK5 TTYBK7: CAIG A,^Z CAIGE A,^A JRST TTYBK5 TRO A,100 MOVEM A,TTYFLG SKIPA A,["^] TTYBK3: SETOM TTYFLG TTYBK5: DATAO TTY,A JRST TTYRT TYO: SKIPN TOCC JRST .-1 PUSH P,B MOVE B,TOIP CAMN B,[10700,,TYOBFE-1] HRRI B,TYOBF-1 MOVEM B,TOIP IDPB A,TOIP SOS TOCC AOSN TTYOFF CONO TTY,10+TTYCHN POP P,B POPJ P, TYI: SKIPN TICC JRST .-1 MOVE A,TIOP CAMN A,[10700,,TYIBFE-1] HRRI A,TYIBF-1 MOVEM A,TIOP ILDB A,TIOP SOS TICC POPJ P, LPTO: PUSH P,A CAIN A,15 JRST LPTOCR CAIN A,12 LPTO1: MOVEI A,440 CAIN A,14 MOVEI A,441 CAIN A,33 MOVEI A,"$ SUBI A,40 CONSZ LPT,10 JRST .-1 DATAO LPT,A POP P,A POPJ P, LPTOCR: CONO LPT,10 JRST LPTO1 PROGAC: BLOCK 20 CMAC: BLOCK 20 CMPDL: BLOCK 100 CMPDLL=.-CMPDL PRGRET: NULWT SKIPN PRGSW JRST 4,. CLEARM PRGSW' MOVEM P,PROGAC+P MOVEI P,PROGAC BLT P,PROGAC+P-1 MOVSI P,CMAC BLT P,P JRST @CMRET CMRET: COMERR SKIPE PRGSW JRST 4,. SETOM PRGSW MOVEM P,CMAC+P MOVEI P,CMAC BLT P,CMAC+P-1 MOVSI P,PROGAC BLT P,P JRST 2,@PRGRET FATAL: 0 .STYP LOSEY-LOSEY_ GO: MOVEI A,COMDUN MOVEM A,CMRET SETOM PRGSW NULWT: JSR PRGRET JRST .-1 LISTEN: SKIPN TICC POPJ P, POP P,PRGRET JRST PRGRET+1 COMERR: .CH 1,"? COMDUN: .CH 1,15 COMW: JSR CMRET COME: CLEARM UNRCHF' MOVEM P,PSAV' PUSHJ P,GSYL ; CAIN A,33 ; JRST ALTMOD CAIN A,"/ JRST EXAM CAIN A,12 JRST EXAMNX CAIN A,7 JRST FLUSH SKIPL LETF JRST COME2 MOVE A,SYL MOVSI B,-CMDTL CAMN A,COMTBL(B) JRST COME1 AOBJN B,.-2 JRST COMERR COME2: CAIN A,15 JRST COME SKIPGE NUMF CAIE A,", SKIPA JRST RBLK JRST COMERR DEFINE .C NAME,LOCA SIXBIT /NAME/ ZZ==. IF2,[LOC COMDSP+ZZ-COMTBL-1 LOCA LOC ZZ ] TERMIN COMTBL: .C UNIT,SUNIT .C TRACK,STRK .C HEAD,SHEAD .C RNDMEX,400000+LUP .C E,READ CMDTL=.-COMTBL COMDSP: BLOCK CMDTL COME1: MOVE A,COMDSP(B) TRZN A,400000 JRST (A) MOVEM A,PRGRET JRST COMW GSYL: MOVE A,[440600,,SYL] MOVEM A,SYLP' CLEARM NUM' CLEARM DNUM' CLEARM SYL' CLEARM NUMF' CLEARM LETF' CLEARM MINF' COML: PUSHJ P,RCH CAIN A,"- JRST COMMNS CAIN A,". JRST COML2A CAIG A,"Z CAIGE A,"A JRST COML1 SETOM LETF ADDI A,40 MOVE B,SYLP CAME B,[600,,SYL] IDPB A,SYLP JRST COML COML1: CAIG A,"9 CAIGE A,"0 JRST COML2 SETOM NUMF' SUBI A,"0 MOVE B,NUM LSH B,3 ADD B,A MOVEM B,NUM MOVEI B,10. IMULM B,DNUM ADDM A,DNUM JRST COML COMMNS: SETOM MINF JRST COML COML2A: SKIPL NUMF JRST COML2B MOVE B,DNUM MOVEM B,NUM JRST COML COML2B: MOVE A,EXLOC MOVEM A,NUM SETOM NUMF JRST COML COML2: MOVE B,NUM AOSN MINF MOVNS B MOVEM B,NUM POPJ P, RCH: AOSN UNRCHF SKIPA A,LIMBO' PUSHJ P,CTYI MOVEM A,LIMBO CAIN A,177 JRST COMERR .CH 2,(A) POPJ P, JSR CMRET CTYI: SKIPN TICC JRST .-2 JRST TYI READ: MOVE A,LIMBO CAIN A,15 JRST READX .CH "U PUSHJ P,GSYL SKIPGE LETF JRST READ2 SKIPGE NUMF MOVEM B,RUNIT' CAIN A,15 JRST READX .CH "T PUSHJ P,GSYL SKIPGE NUMF MOVEM B,RTRK' CAIN A,15 JRST READX .CH "H PUSHJ P,GSYL SKIPGE NUMF MOVEM B,RHEAD' CAIN A,15 JRST READX .CH "S PUSHJ P,GSYL SKIPGE NUMF MOVEM B,RSECT' CAIN A,15 JRST READX PUSHJ P,RCH CAIN A,15 JRST READX ADDI A,40 LSH A,30. READ3: MOVSI B,-MODTL MOVE C,MODTB(B) AND C,[770000,,] CAMN C,A JRST READ1 AOBJN B,.-4 JRST COMERR READ2: MOVE A,SYL JRST READ3 READ1: MOVE A,MODE(B) MOVEM A,EXMODE MOVE A,OMODE(B) MOVEM A,OUTPM HRRZM B,EMODE' MOVE A,MODTB(B) LSH A,6 .SIXTYP A READX: PUSH P,[FLUSH] READR: JSP R,POSR RUNIT RTRK RHEAD RSECT COMERR MOVE B,EXMODE CAMN B,CHDR+MODTL JRST RHDR CAMN B,CIMAGE+MODTL JRST RIMAGE JRST RD FLUSH: MOVEI A,NULWT MOVEM A,PRGRET JRST COMDUN DCXCT0: CONO DC0,DCCSET+DCDENB DCXCT: CONSZ DC0,DSSACT JRST .-1 DATAO DC0,A CONSZ DC0,DSSACT JRST .-1 POPJ P, POSR: MOVE B,@(R) DPB B,[DUNFLD PCOM'] PUSHJ P,GPKID JRST @4(R) MOVE B,@1(R) IDIVI B,NCYLS+XCYLS CAIL C,NCYLS MOVEI A,0 DPB A,[DPKID PCOM] DPB C,[DCYL PCOM] MOVE A,@2(R) IDIVI A,NHEDS DPB B,[DSURF PCOM] MOVE A,@3(R) IDIVI A,NSECS DPB B,[DSECT PCOM] JRST 5(R) GPKID: SKIPL B CAIL B,8 JRST BADDRV MOVE A,[DSDRST+DUNENB US(74)] DPB B,[DUNFLD A] PUSHJ P,DCXCT MOVE A,US TDNN A,[DDSONL] JRST POSONL TDNE A,[DDSUNS] JRST POSUNS TDNE A,[DDSSIC] JRST POSSIC SKIPL A,PKID(B) JRST POPJ1 DPB B,[DUNFLD HCOM] MOVE A,[DJMP HCOM] PUSHJ P,DCXCT0 CONSZ DC0,DSSERR JSR ERTYP LDB A,[DPKID WBUF] MOVEM A,PKID(B) JRST POPJ1 BADDRV: .STYP '!B BAD DRIVE_ POPJ P, POSONL: CONO DC1,(B) MOVEI C,10. MOVEI D,0 POSON2: CONI DC1,A LDB A,[221000,,A] CAIGE A,160. JRST .-3 POSON4: CONI DC1,A LDB A,[221000,,A] CAIL A,376 AOJA D,POSON4 CAILE A,80. JRST POSON3 SOJGE C,POSON2 CAIGE D,40 JRST POSON3 .STYP NON-EX DRIVE '!B _ POPJ P, POSON3: .STYP DRIVE '!B OFF LINE_ POPJ P, POSUNS: .STYP DRIVE '!B UNSAFE_ POPJ P, POSSIC: .STYP DRIVE '!B, SEEK INCOMPLETE_ POPJ P, US: 0 ;UNIT STATUS EXMODE: DREAD DCOPY RBUF1 DHLT DEFINE .C NAME,LOCA,LOCB SIXBIT /NAME/ ZZ==. IF2,[LOC MODE+ZZ-MODTB-1 LOCA LOC OMODE+ZZ-MODTB-1 LOCB LOC ZZ ] TERMIN MODTB: .C OCTAL,DREAD,OCTP .C BINARY,DREAD,BINP .C ENCODE,DREAD,ENCP .C TEXT,DREAD,TEXTP CIMAGE: .C IMAGE,DSPC+DSCRIM+DSWIDX,BINP CHDR: .C HEADER,DSPC+DSCRHD+DSWIDX+DSWNUL,OCTP MODTL=.-MODTB MODE: BLOCK MODTL OMODE: BLOCK MODTL OUTPM: OCTP RIMAGE: SKIPA A,[-LRBUF] RHDR: MOVNI A,10 DPB A,[DCWC EXMODE+1] MOVE A,PCOM DPB A,[2400,,EXMODE] JRST RD1 RD: MOVNI A,LBLK DPB A,[DCWC EXMODE+1] MOVE A,PCOM DPB A,[3300,,EXMODE] RD1: HRRZ A,RBUFP+1 HRRM A,EXMODE+1 MOVE A,[DJMP EXMODE] PUSHJ P,DCXCT CONSZ DC0,DSSERR JSR ERTYP POPJ P, RBLK: SKIPL A,NUM CAIL A,NDSKS**NHEDS*NSECS JRST COMERR IDIVI A,NSECS MOVEM B,RSECT IDIVI A,NHEDS MOVEM B,RHEAD IDIVI A,NCYLS+XCYLS MOVEM B,RTRK MOVEM A,RUNIT MOVE A,[DREAD] MOVEM A,EXMODE PUSHJ P,READR MOVEI A,NULWT MOVEM A,PRGRET JRST COME GETLIS: CLEARM GLIST MOVEI A,GLIST+1 MOVEM A,GLP' GETL1A: SETOM LH' GETL1: MOVE A,LIMBO CAIN A,15 JRST GETL2 PUSHJ P,GSYL SKIPGE LETF JRST GETL3 SKIPL NUMF JRST COMERR MOVE B,NUM GETL6: CAIN A,"/ JRST GETL4 HLL B,LH GETL6A: MOVEM B,@GLP AOS GLP AOS GLIST JRST GETL1A GETL2: HRRZ A,GLIST JUMPN A,GETLE SKIPL GLIST JRST GETLE AOS GLIST MOVE A,[100000,,] MOVEM A,GLIST+1 GETLE: MOVSI A,GLIST HRR A,(R) CLEARM (A) AOS A MOVE B,A BLT A,16(B) JRST 1(R) GETL3: LDB C,[360600,,SYL] MOVEI B,200000 CAIN C,'K JRST GETL6 CAIN C,'A JRST GETL5 CAIE C,'R JRST COMERR MOVSI A,400000 IORM A,GLIST JRST GETL1A GETL5: MOVSI A,100000 JRST GETL6A GETL4: HRLM B,LH JRST GETL1 HEADLS: 0 SETZ 1 0,,19. LOC HEADLS+20 TRKLS: 0 SETZ 2 -1,,NCYLS+XCYLS-2 -1,,NCYLS+XCYLS-1 LOC TRKLS+20 UNITLS: 0 1 -1,,1 LOC UNITLS+20 SECTLS: 0 1 100000,, LOC SECTLS+20 GLIST: BLOCK 20 ;1WD USE COUNT ;2ND WD 4.9 RANDOM SEL ;RH #CHOICES ;REST WDS CHOICES ;LH -1, RH CHOICE ;LH=#, CHOICE FROM TO ;LH,RH=200000 GET KEYS ;LH=100000 DO ALL DOLIST: MOVE R,@(P) AOS A,(R) SKIPGE 1(R) PUSHJ P,RAN HRRZS A IDIVI A,@1(R) ADDI B,2(R) MOVE A,(B) HLRZ B,A DATAI C CAIN B,200000 HRL A,C HRRZ D,A CAIN D,200000 HRR A,C JUMPL A,DOLISE TLNE A,100000 JRST DOL1 HLRZ C,A CAMLE C,D EXCH C,D DOL2: MOVE B,D SUB B,C MOVE A,(R) SKIPGE 1(R) PUSHJ P,RAN TLZ A,400000 IDIVI A,1(B) ADD B,C MOVE A,B DOLISE: HRRZS A JRST POPJ1 DOL1: MOVEI C,0 MOVSI D,1 JRST DOL2 SUNIT: JSP R,GETLIS UNITLS JRST COME STRK: JSP R,GETLIS TRKLS JRST COME SHEAD: JSP R,GETLIS HEADLS JRST COME EXAMNX: AOS B,EXLOC .CH 15 MOVE A,B PUSHJ P,DPT .CH "/ SKIPA B,EXLOC EXAM: MOVEM B,EXLOC' PUSHJ P,TAB ADD B,RBUFP+1 HRRZS B CAIL B,DDT CLEARB B,EXLOC MOVE A,(B) PUSHJ P,@OUTPM PUSHJ P,TAB JRST COMW TAB: .CH 40 .CH 40 .CH 40 POPJ P, BINP: MOVEI C,36. MOVEI D,2 JRST OCTP1 OCTP: MOVEI D,8 MOVEI C,12. OCTP1: LSHC A,-43 LSH B,-1 DIV A,D ADDI B,60 HRLM B,(P) SKIPGE C SKIPN A SOSLE C PUSHJ P,OCTP1 HLRZ A,(P) .CH (A) POPJ P, DPT: MOVNI C,1 MOVEI D,8 JRST OCTP1 CENC0: CENC0,,0 ENCP: MOVSI D,440200 HRR D,RBUFP+1 MOVE C,[CENC0,,1] MOVE E,EXLOC ADD E,RBUFP+1 HRLI E,200 ENCPL: CAMN E,D AOJA E,ENCPA ILDB A,D JUMPE A,[JRA C,.-3] TRO C,1 JRST ENCPL ENCPA: CAMN E,D POPJ P, ILDB A,D JRST .+1(C) JRST ENCP0 ENCP1: JUMPE A,[JRA C,ENCPA] LDB B,[10100,,A] .CH "0(B) ANDI A,1 .CH "0(A) .CH "1 .CH 40 JRST ENCPA ENCP0: LDB B,[10100,,A] .CH "0(B) .CH "1 .CH "0 .CH ". .CH "1 ANDI A,1 .CH "0(A) .CH "1 .CH 40 AOJA C,ENCPA TEXTP: MOVE B,[440700,,A] TEXP1: ILDB C,B .CH (C) CAME B,[10700,,A] JRST TEXP1 POPJ P, CNEWWR: PUSH P,A PUSHJ P,TRRSET CLEARM NEWWRT JRST POPAJ DPKON: PUSH P,A ;START HACKING DATA-POINT PUSH P,B SETOM DPKSW PUSHJ P,DPI JRST POPBJ DPKOFF: PUSH P,A ;TURN OFF DATA-POINT KLUDGE, AND CLEAR TRDAT TBL CLEARM DPKSW MOVSI A,-16. DPKOF1: CLEARM DPKBAS(A) AOS A AOBJN A,DPKOF1 PUSHJ P,TRRSET JRST POPAJ DPI: SKIPN DPKSW' POPJ P, CONO DPK,400070 DATAO DPK,[4,,DPKBAS] MOVSI A,-16. DPIL: LDB B,[300,,TTYTYP(A)] LSH B,9 DPB A,[140400,,B] CONO DPK,500(B) LDB B,[30300,,TTYTYP(A)] LSH B,9 DPB A,[140400,,B] CONO DPK,700(B) AOBJN A,DPIL POPJ P, DPKFRB: SKIPN DPKSW POPJ P, MOVSI A,-16. MOVEI B,DPKBAS DPKFR1: MOVEI C,3777. MOVEM C,(B) MOVEI C,100 DPB A,[140400,,C] CONO DPK,(C) ADDI B,2 AOBJN A,DPKFR1 POPJ P, DPKBUF: ASCII /FOOBAR BR / (440701,,DPKBUF) DPKBAS: REPEAT 16.,[ -1 (440701,,DPKBUF) ] TTYTYP: REPEAT 16.,77 DPSPC: MOVE B,@(P) MOVEM B,DBP AOS (P) MOVEI C,6 CLEARM DZERO JRST DDPT1 DDPT: MOVE B,@(P) HRLI B,440600 MOVEM B,DBP' LDB C,[300600,,@(P)] SKIPN C MOVEI C,12. AOS (P) SETOM DZERO' DDPT1: LSHC A,-43 LSH B,-1 DIVI A,10 ADDI B,60 HRLM B,(P) SKIPN DZERO JUMPE A,DPTFL SOSLE C PUSHJ P,DDPT1 DDPT2: HLRZ A,(P) IDPB A,DBP POPJ P, DPTFL: SOJLE C,DDPT2 PUSH P,[40,,DDPT2] JRST DPTFL LZDPT: PUSHJ P,LZDP1 SKIPGE C POPJ P, MOVEI A,40 IDPB A,DBP SOJA C,.-4 LZDP1: MOVEM B,DBP IDIVI A,10. HRLM B,(P) SKIPE A PUSHJ P,.-3 HLRZ A,(P) ADDI A,"0 IDPB A,DBP SOJA C,CPOPJ POPJ1: AOS (P) POPJ P, DLIST: CMESS-1 -1,,CERR-1 REPEAT 4,-1 LDLIS=.-DLIST ZZ==. LOC 40+2*CLKCHN JSR CLK LOC 40+2*SPCHN JSR DRECYC LOC 40+2*DISCHN BLKO DIS,DBLKOP JSR BLKOV .=ZZ BLKOV: 0 EXCH A,LNBLK2 MOVEM A,DBLKOP EXCH A,LNBLK2 JRST 12,@BLKOV DP: DLIST-1 DRECYC: 0 MOVEM A,ASAV' DRCY1: AOS A,DP CAIL A,DLIST+LDLIS JRST DRCY2 MOVEM A,DP SKIPGE A,(A) JRST DRCY1 MOVEM A,DBLKOP' DRCY4: MOVEI A,200. SOJG A,. CONO DIS,100+DISCHN+SPCHN_3 DRET: MOVE A,ASAV JRST 12,@DRECYC DRCY2: SKIPGE A,PPL JRST DRCY3 MOVE A,LNBLKO(A) MOVEM A,DBLKOP HRRZ A,PPL HRRE A,LNLNK(A) MOVEM A,PPL JRST DRCY4 DRCY3: AOS A,PPG' CAIL A,MXPG ;USED TO BE +1 JRST DRCY5 SKIPGE PGOPN(A) JRST DRCY3 HRRE A,PGHD(A) MOVEM A,PPL JRST DRCY2 DRCY5: MOVEI A,DLIST-1 MOVEM A,DP SETOM PPG SETOM PPL MOVE A,DTIME CLEARM DTIME JUMPN A,DRCY1 CONO DIS,100 JRST DRET CLK: 0 PIPAR: CONSZ PI, JRST 4,. PIPARR: CONO PI, CONSZ 230000 ;PDL OR NXM JRST 4,. CONO 40000+CLKCHN CONSO 1000 JRST 12,@CLK CONO 3000+CLKCHN AOS DTIME' CONSZ DIS,77 JRST 12,@CLK CONO PI,4000+200_<-SPCHN> ;ACTIVATE CLEARM DTIME JRST 12,@CLK DEFINE CONC A,B A!B!TERMIN DISLOC==0 CMESS: 20137,,221700 60000,,343434 .BYTE 6 IRPC A,,[CKSUM ERROR @ LENGTH ERROR @ SOFT ERRORS @ IN 10**@ HARD ERRORS @ IN 10**@ ] IFN <"A-15>*<"A-12>*<"A-"@>,"A IFE "A-15,34 IFE "A-12,33 IFE "A-"@,[CONC D.,\DISLOC,=. DISLOC==DISLOC+1 ] TERMIN IRPC A,,[1] .TAG LUP IFE ._-30.-44,.GO OUT 37 .GO LUP .TAG OUT TERMIN .BYTE 373737,,373737 CERR: 60000,,343333 ELOC: REPEAT 2,404040,,404040 EWD1: REPEAT 3,404040,,404040 EWD2: 404040,,404040 404040,,404040 373737,,373737 HCOM: DSPC+DUNENB+DSCRHD+DSWNUL+4000 DCOPY WBUF(37774) DHLT DCOM: 0+DUNENB RDCOM: 0 DCOPY RBUF1(-LBLK_2&37774) DHLT WRCOM: 0 DCOPY WBUF(-LBLK_2&37774) RCCCOM: DHLT ;OR READ COMPARE IN READ AFTER WRITE MODE DCOPY WBUF(-LBLK_2&37774) DHLT NDW: MXNDW DATA: 631463146314 146314631463 -1 0 123456654321 525252525252 REPEAT 36.,-1#<1_<.RPCNT>> 0 0 MXNDW==.-DATA CYLT: REPEAT 10,NCYLS+XCYLS-.RPCNT-1 MXCYL=.-CYLT TRDAT: BLOCK NDSKS**NHEDS*NSECS/6+1 RBUF1: BLOCK LBLK LRBUF==.-RBUF1 RBUF2: BLOCK LBLK WBUF: BLOCK LBLK AC0: BLOCK 20 PAT: BLOCK 100 PDL: BLOCK 100 END BEG