/5 1/4 FLOPPY NON SYSTEM HANDLER /VERSION 00.01 FLPN.PA / /COMPUTER EXTENSION SYSTEMS INC. 2-DEC-83 /DANTE A MARCUCCIO / /THIS HANNDLER WILL DRIVE TWO 5 1/4 INCH FLOPPY DRIVES THRU /EITHER THE SBC8 OR THE MDC8 / *0 -2 /# OF HANDLERS DEVICE FLPN;DEVICE F0;4640;WA&177;ZBLOCK 2 DEVICE FLPN;DEVICE F1;4640;WB&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 THE 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 JMS TSTKBD /CHECK FOR CONT C DSSF /TEST FOR DISK DONE JMP .-2 /WAIT FOR ONE OR THE OTHER DSCD /DISK DONE, CLEAR THE FLAG K70, 70 K177, 177 DSRS /GET RETURN STATUS SZA CLA /SKIP IF ALL OK ERR, CLA CLL CML RAR /AC=4000 SMA /SKIP IF ERROR GOOD, ISZ WA /BUMP TO NORM RETURN CALLRET,.-. /STUFFED WITH CIF CDF INST FOR RETURN JMP I WA /BACK TO CALLER / / / WB, 0 /ENTRY FOR 2ND UNIT CLA CLL /CLEAN UP TAD WB /GET CALLING ADD DCA WA /STUFF IT IAC /BUMP AC JMP .+3 /JMP TO COMMON POINT / WA, 0 /ENTRY FOR 1ST UNIT CLA CLL /CLEAN UP TAD OFFSET /AC=UNIT NUMBER DCA DRVUNT /STUFF IT DSHI /SEND HI ORDER COMM ADD TO MDC8 (ALWAYS 0) RDF /GET CALLING FIELD TAD KCIDF /BUILD CIDF FOR RETURN DCA CALLRET /STUFF IT FOR EXIT CLA CLL CML RAR /AC=4000 (READ WRITE MASK) AND I WA /GET READ/WRITE BIT CLL IAC RTL /4 IF READ 5 IF WRITE RAL /10 IF READ 12 IF WRITE DCA RWCOM /STUFF IT TAD I WA /GET PAGE BITS AND K3700 /MASK PAGE BITS SNA /SKIP IF NOT MAX CLA CLL CML RAR /USE 40 SECT VALUE BSW DCA SCTCNT /STUFF SECTOR COUNT TAD I WA /GET FUNCTION WORD AND K70 /JUST THE FIELD CLL RTR RAR /TO BITS 9-11 DCA TRFLD /STUFF FIELD (BANK ALWAYS 0) ISZ WA /BUMP POINTER TO TXFER ADD TAD I WA /GET TXFER ADD CLL BSW /HIGH ORDER BITS TO 6-11 DCA TRADHI /STUFF HI TAD I WA /GET IT AGAIN DCA TRADLO /STUFF LO ISZ WA /BUMP POINTER TO RECORD # TAD I WA /GET RECORD # RAL /MAKE IT A SECTOR # CLL BSW /MIDDLE ORDER BITS TO 6-11 DCA SECTMD /STUFF IT TAD I WA /GET IT AGAIN RAL /MAKE IT A SECT # DCA SECTLO /STUFF LEAST SIG SECT# CLA RAL /LINK HAD MSB OF SECT# DCA SECTHI /STUFF IT ISZ WA /BUMP TO ERROR RETURN JMS LOC8 /WHERE ARE WE LOC8, .-. /STUFFED WITH OUR VERY OWN PC TAD LOC8 /GET OUR PC TAD COMPTR /ADJUST IT TO COMMAND TABLE DCA LOC8 /SAVE IT (ADD OF COMMAND TABLE) / /ARE WE RUNNING ON SBC8 OR MDC8? / CLA CLL CML RTR /AC=2000 LINK=0 R3L /ROTATE 3 LEFT IF RUNNING ON SBC8 RTR /AC=0 IF RUNNING ON SBC8 SZA CLA /ARE WE ON SBC8? JMP MDC /NO JMS TSTKBD /CHK FOR CONT C BEFORE GOING TO PANEL MEM CDF 00 /DATA FIELD TO HERE CLA CLL CML RTL /AC=2 TAD LOC8 /ADJUST POINTER FOR SBC PR0 /PANEL REQ 0 (GO TO PANEL MEM) JMP ERR /ERROR RETURN CLA CLL /CLEAN UP JMP GOOD /ALL OK / TABLE, 14 /LENGTH OF TABLE COMTYPE,0 /COMMAND TYPE RWCOM, .-. /10 IF READ 12 IF WRITE DRVUNT, .-. /DRIVE UNIT # DCONTRL,0202 /CONTROL WORD FOR MDC8 SECTHI, .-. /SECTOR HI (6 BITS) SECTMD, .-. /SECTOR MID (6 BITS) SECTLO, .-. /SECTOR LO (6 BITS) SCTCNT, .-. /SECTOR COUNT (1 THRU 40) TRFLD, .-. /TRANSFER FIELD TRADHI, .-. /TRANSFER ADD MS 6 BITS TRADLO, .-. /TRANSFER ADD LS 6 BITS / OFFSET, 2 /SECTOR # OFFSET $ /