/ "RXCOS.PA" RX01 NON-SYSTEM HANDLER (COS-310 COMPATIBLE) /Edited August 1979 by Clarke M. Walker for drives 2 & 3. /EDITED 12-9-76 BY BOB TYCAST TO CHANGE ENTRY POINT TO 40 /+CW 15-AUG-79 /Definitions of RX8/E IOT's: DEVCOD= 760 /DEVICE CODE FOR SECOND CONTOLLER. LCD= 6001+DEVCOD /LOAD COMMAND REGISTER. XDR= 6002+DEVCOD /TRANSFER DATA REGISTER. STR= 6003+DEVCOD /SKIP ON TRANSFER REQUEST FLAG, CLEAR FLAG. SER= 6004+DEVCOD /SKIP ON ERROR FLAG, CLEAR FLAG. SDN= 6005+DEVCOD /SKIP ON DONE FLAG, CLEAR FLAG. INTR= 6006+DEVCOD /INTERRUPT ENABLE/DISABLE. INIT= 6007+DEVCOD /INITIALIZE CONTROLLER AND RECALIBRATE DRIVES. /-CW 15-AUG-79 *0 -2 /TWO HANDLERS IN THIS FILE DEVICE RXCS /+-CW 15-AUG-79 DEVICE RX2 /+-CW 15-AUG-79 4260 /FILE STRUCTURED DEVICE RX2&177+4000 /+-CW 15-AUG-79 0 0 DEVICE RXCS /+-CW 15-AUG-79 DEVICE RX3 /+-CW 15-AUG-79 4260 RX3&177+4000 /+-CW 15-AUG-79 0 0 *200 RX70, 70 FUNC, 0 /FUNCTION - UNIT & R/W BIT SECT, 0 /SECT = BLOCK * 3 BUF, 0 /BUFFER POINTER WDCT, 0 /WORD COUNT FOR TRANSFER BUFP1, 0 /TEMPORY POINTER RCNT=RXIN RCNT2=RX3 RX20, 20 R100, 100 RTRANS, TRANS /FILLED IN BY RXIN RDSKIO, DSKIO / " RLDCMD, LDCMD / " RPROC3, PROC3 / " KCDF, 6201 /"CDF" - B.T. CIFCDF, 6203 /"CIF CDF" - B.T. K7400, 7400 /B.T. - HERE TO CHANGE ENTRY POINT K400, 400 /B.T. - HERE TO CHANGE ENTRY POINT RXIN, 0 /INITIALIZATION CLA TAD RXIN AND R7600 TAD (DSKIO-RX70 DCA RDSKIO TAD RDSKIO TAD (TRANS-DSKIO DCA RTRANS TAD RTRANS TAD (LDCMD-TRANS DCA RLDCMD TAD RLDCMD TAD (PROC3-LDCMD DCA RPROC3 JMP I RXIN RX2, 0 /ENTRY FOR RX2 JMS RXIN JMP RX01A RX3, 0 /ENTRY FOR RX3 JMS RXIN TAD RX3 DCA RX2 TAD RX20 RX01A, DCA FUNC /SET UP DRIVE 2 OR 3 /+-CW 15-AUG-79 CLA STL RAR /FORCE R/W BIT INTO LINK TAD I RX2 R200, AND RX70 /GET DATA FIELD TAD KCDF /CONSTANT MOVED TO TOP OF PAGE - B.T. DCA RCDF1 CML RTL /R/W FLAG INTO BIT 10 TAD R100 /BIT-5 = 8-BIT MODE TAD FUNC /BIT-7 = UNIT 0 OR 1 DCA FUNC RDF TAD CIFCDF /CONSTANT AT TOP OF PAGE - B.T. DCA RCIF1 TAD I RX2 /WORD COUNT RAL AND R7600 CIA DCA WDCT ISZ RX2 TAD I RX2 /BUFFER ADDRESS DCA BUF ISZ RX2 TAD I RX2 /BLOCK NR CLL RAL TAD I RX2 DCA SECT /SECT = 3 * BLOCK NR ISZ RX2 RXLP, TAD FUNC RTR SZL CLA JMS I RDSKIO /READ THE 1ST SECTOR TAD FUNC JMS I RLDCMD /FILL OR EMPTY BUFFER TAD RCDF1 JMS I RPROC3 TAD BUF DCA BUFP1 TAD (DCA I BUFP1 DCA RSWCH CLA CLL CMA RAL DCA RCNT RXLP1, JMS I RDSKIO /READ 2ND & 3RD SECTORS TAD FUNC /....WRITE 1ST & 2ND SECTORS JMS I RLDCMD /FILL OR EMPTY BUFFER TAD R7600 DCA RCNT2 TAD FUNC RTR RCDF1, CDF /DATA FIELD CLA RTRWD, TAD I BUFP1 SZL AND K7400 /CONSTANT AT TOP OF PAGE - B.T. JMS I RTRANS RSWCH, DCA I BUFP1 ISZ BUFP1 R7600, 7600 ISZ RCNT2 JMP RTRWD TAD WDCT TAD R200 SZA CLA JMP .+3 TAD R7600 DCA RSWCH ISZ RCNT JMP RXLP1 TAD FUNC RTR SNL CLA JMS I RDSKIO /WRITE THE 3RD SECTOR (WRITE ONLY) TAD BUF TAD K400 /CONSTANT OF TOP OF PAGE - B.T. DCA BUF CLA CLL TAD WDCT TAD K400 /CONSTANT AT TOP OF PAGE - B.T. 9-DEC-76 DCA WDCT SNL CLA JMP RXLP ISZ RX2 /NORMAL RETURN TO CALL + 5 RCIF1, CIF CDF 0 JMP I RX2 PAGE / RXNSYB - SECOND PAGE TRACK, 0 /TRACK NR DSEC, 0 /SECTOR NR RFUN, FUNC /THESE POINTERS FILLED IN BY DSKIO RSEC, SECT / " RBUF=CNTR2 DSKIO, 0 /ROUTINE TO INITIATE DISK IO TAD DSKIO AND RM200 / = 7600 IAC DCA RFUN TAD RFUN IAC DCA RSEC DKIOR, CDF 0 CLA CLL IAC RTL TAD I RFUN /READ OR WRITE A SECTOR JMS LDCMD DCA TRACK /TRACK = SECT / 26 TAD I RSEC DVDLP, TAD (-32 SNL JMP DVDXT ISZ TRACK CLL JMP DVDLP DVDXT, DCA DSEC TAD DSEC CLL RAL TAD DSEC TAD RX32 SPA JMP .-2 IAC JMS TRANS /LOAD SECTOR CLA IAC TAD TRACK JMS TRANS /LOAD TRACK CLA TAD RSTS JMS LDCMD /READ STATUS SER JMP DSKEX CLA TAD RFUN TAD (RCIF1-FUNC DCA DSKIO DSKEX, ISZ I RSEC JMP I DSKIO LDCMD, 0 /LOAD COMMAND SDN JMP .-1 LCD JMP I LDCMD TRANS, 0 STR JMP .-1 XDR JMP I TRANS PROC3, 0 /PROCESS 3RD SECTOR DCA RCDF2 TAD RM200 DCA CNTR TAD PROC3 AND RM200 TAD (3 DCA RBUF CDF 0 TAD I RBUF DCA BUFP2 ISZ RBUF TAD I RBUF RSTS, STL RAR /USE THIS FOR RX01 COMMAND... DCA CNTR2 TAD I RFUN RTR RCDF2, CDF /DATA FIELD SNL CLA JMP WRITR READR, JMS TRANS CLL RTL RTL MQL MQA AND R7400 DCA I BUFP2 ISZ BUFP2 RM200, 7600 MQA RTL RTL AND R7400 DCA I BUFP2 ISZ BUFP2 RX32, 32 /AND INSTRUCTION - NO EFFECT ISZ CNTR SKP JMP I PROC3 ISZ CNTR2 JMP READR JMP WRITX /PROCESS REMAINING 1/2 BLOCK WRITR, TAD I BUFP2 ISZ BUFP2 NOP AND R7400 MQL TAD I BUFP2 ISZ BUFP2 R7400, 7400 / NOP AND R7400 CLL RTR RTR MQA RTR RTR JMS TRANS CLA ISZ CNTR SKP JMP I PROC3 ISZ CNTR2 JMP WRITR WRITX, JMS TRANS /PROCESS UNUSED 1/2 BLOCK CLA ISZ CNTR JMP .-3 JMP I PROC3 BUFP2=TRACK CNTR=DSEC CNTR2=LDCMD $$$$$$$$$$$$$$$$$$$$/END/$$$$$$$$$$$$$$$$$$$$