/WINCHESTER DISK NON SYSTEM HANDLER /VERSION 00.10 DW1A.PA / /COMPUTER EXTENSION SYSTEMS INC. 2-DEC-83 /DANTE A MARCUCCIO / /THIS HANDLER WILL DRIVE A 5 1/4 INCH WINCHESTER DISK THRU EITHER THE MDC8 / OR THE SBC8 / /THE HANDLER SEPERATES THE DISK INTO 2 MEGABYTE SEGMENTS CALLED / W00,W01,W02,W03, FOR THE FIRST 8 MEGABYTES OF DISK 0 ]w +Ku= @:}g[J +|:m$M ,]hL[HM *\rLYTES OF DISK 0 / W10,W11,W12,W13, FOR THE FIRST 8 MEGABYTES OF DISK 1 / W14,W15,W16,W17, FOR THE NEXT 8 MEGABYTES OF DISK 1 / / EACH ASSEMBLY OF THE HANDLER WILL DRIVE 8 MEGABYTES ONLY / /THE FOLLOWING PARAMETERS MUST BE ASSIGNED AT ASSEMBLY TIME / / UNIT= 0 FOR DRIVE 0 1 FOR DRIVE 1 / OFST= 0 FOR IST 8 MBYTES OF DISK 10 FOR 2ND 8 MBYTES / / FOR UNIT 1 FIRST 8 MBYTES / UNIT=1 OFST=0 Xz [(Y((Y L8|R-ZPL*p\lLELJ M:\lIM 7M %-x M(H l],\%Z\pLJil-?< DEVICE DW0A;DEVICE W00;4600;WA&177;ZBLOCK 2 DEVICE DW0A;DEVICE W01;4600;WB&177;ZBLOCK 2 DEVICE DW0A;DEVICE W02;4600;WC&177;ZBLOCK 2 DEVICE DW0A;DEVICE W03;4600;WD&177;ZBLOCK 2 > IFZERO UNIT+OFST-10 < DEVICE DW0B;DEVICE W04;4600;WA&177;ZBLOCK 2 DEVICE DW0B;DEVICE W05;4600;WB&177;ZBLOCK 2 DEVICE DW0B;DEVICE W06;4600;WC&177;ZBLOCK 2 DEVICE DW0B;DEVICE W07;4600;WD&177;ZBLOCK 2 > IFZERO UNIT+OFST-1 < DEVICE DW1A;DEVICE W10;4600;WA&177;ZBLOCK 2 DEVICE DW1A;DEVICE W11;4600;WB&177;ZBLOCK 2 DEVICE DW1A;DEVICE W12;4600;WC&177;ZBLOCK 2 DEVICE DW1A;DEVICE W13;4600;WD&177;ZBLOCK 2 > IFZERO UNIT+OFST-11 < DEVICE DW1B;DEVICE W14;4600;WA&177;ZBLOCK 2 DEVICE DW1B;DEVICE W15;4600;WB&177;ZBLOCK 2 DEVICE DW1B;DEVICE W16;4600;WC&177;ZB\OcK 2 DEVICE DW1B;DEVICE W17;4600;WD&177;ZBLOCK 2 > / / / ASSEMBLY DEFINITIONS / DEV=70 / DSSF=DEV^10+6001 /SKIP ON DONE FLAG DSCD=DEV^10+6002 /CLEAR DONE FLAG DSHI=DEV^10+6003 /LOAD HI ORDER COMM ADD DSLO=DEV^10+6004 /LOAD LO ORDER COMM ADD DSRS=DEV^10+6005 /READ STaTUS DSGO=DEV^10+6007 /GO / R3L=7014 /ROTATE 3 LEFT FOR SBC8 PR0=6206 /PANEL REQ 0 FOR SBC8 / / PAGE / COMPTR, TABLE-LOC8 /COMM TABLE POINTER ADJ FACTOR TSTKBD, 0 /ENTRY CLA+400 /CLEAN UP ALSO CONSTANT 7600 KSF /FLAG UP? JMP I TSTKBD /NO GO BACK KRS /READ THU cHAR AND K177 /7 BIT ONLY DCA LOC8 /TEMP STORE CLA CLL CMA RTL /MINUS CONT C TAD LOC8 /ADD BACK CHAR SZA CLA /WAS IT A CONT C? JMP I TSTKBD /NO, GO BACK KCIDF, CIF CDF 00 / JMP I TSTKBD+1 /BACK TO OS8 MONITOR / K3700, 3700 / / MDC, TAD LOC8 /GET ADD OF COMM TABLE DSLO /SEND IT TO MDC8 DSSF /FLAG UP? JMP .-1 /NO, SO WAIT DSCD /YES, SO CLEAR IT DSGO /START IT UP \-4M ;-H)\LxJ<[L<Jl#M t,h J<$H6 :XC \FM p,-C\4L u,hYH- Z Jh)+q z\Mb\ ONE OR THE OTHER DSCD /DISK DONE, CLEAR THE FLAG K70, 70 [7 y;K+xY8-B 89]u }BM U,J ]l1MTUS SZA CLA /SKIP IF ALL OK ERR, CLA CLL CML RAR /AC=4000 \8\{ :\ \mRL(}\,/Xz|LMH'MA /BUMP TO NORM RETURN CALLRET,.-. /STUFFED WITH CIF CDF INST FOR RETURN JMP I WA /BACK TO CALLER / ZBLOCK 1 /TO MOVE ENTRY POINT TO 42 / WD, 0 /ENTRY FOR 4TH UNIT CLA CLL /CLEAN UP TAD WD /GET CALLING ADD DCA WA /STUFF IT IAC /BUMP AC JMP .+5 /GO TO NEXT BUMP / WC, 0 /ENTRY FOR 3RD UNIT CLA CLL /CLEAN UP TAD WC /GET CALLING ADD DCA WA /STUFF IT IAC /BUMP AC JMP .+5 /GO TO NEXT BUMP / WB, 0 /ENTRY FOR 2ND UNIT CLA CLL /CLEAN UP \MG\),u |CM ,LLlJJL\ML,t