/RK8E SYSTEM HANDLER FOR BUILD V4 (EDUCOMP) *0 -2 DEVICE RK8E;DEVICE SYS;4050;2007;0;6260 DEVICE RK8E;DEVICE RKB0;4050;1021;ZBLOCK 2 -33 NOPUNC *0 ENPUNC BOOT, TAD I BOOTX1 DCA I BOOTX2 TAD I BOOTX3 CDF 10 DCA I BOOTX4 CDF TAD BOOTX2 SZA CLA JMP BOOT JMP I B7605 BOOTX1, 177 BOOTX2, 7577 BOOTX3, 46 BOOTX4, 7646 B7605, 7604 ZBLOCK 30-. DSKP JMP .-1 JMP BOOT /THE RK8E BOOTSTRAP IS /30 6743 /31 5031 *207 NOPUNC *7607 ENPUNC DCLR= 6742 DLAG= 6743 DLDC= 6746 DRST= 6745 DSKP= 6741 DLCA= 6744 RKEBLK= 7750 /12 BITS OF BLOCK NUMBER SERRCT= 7751 /HOLDS RETRY COUNT PAGCNT= 7752 /PAGE COUNT RKECMD= 7753 /BASE OF DLDC COMMAND CHKHED= 7754 /CHECK HEADER FLAG SOFSET= 7747 /OS/8 FUDGE LOCATION SHNDLR, 0 CLA CLL TAD SHNDLR DCA SHNDL1 /SETUP COMMAON EXIT + PARAMS JMP SHNDC /VARIOUS CONSTANTS TO PAD E.P. FOR RKA1 TO 7621 S6260, 6260 S4070, 4070 /USED TO GET READ/WRITE AND DF BITS S3700, 3700 /TO GET PAGE COUNT SCIF, CIF /TO RESTORE USERS FIELD S1002, 1002 /USED TO CHECK FOR RECALIBRATE ERRORS IFNZRO .-7621 SHNDL1, 0 CLA TAD S6260 SHNDC, DCA SHNDLR CLA CLL CMA RTL /-3 DCA SERRCT /RETRY COUNT RDF TAD SCIF DCA SFIELD /RESET USER INSTRUCTION FIELD FOR EXIT RETRY, TAD SHNDL1 /AC=-2 IF ERROR ENTRY DCA SHNDL1 TAD I SHNDL1 /GET ARG1 AND S4070 /GET R/W AND DF BIT DCA RKECMD /BASE COMMAND TO RK8E TAD I SHNDL1 /GET ARG1 AGIN ISZ SHNDL1 AND S3700 DCA PAGCNT /SAVE PAGE COUNT TAD I SHNDL1 ISZ SHNDL1 DLCA /LOAD CURRENT ADDRESS REGISTER TAD I SHNDL1 /GET ARG3 CLL TAD SHNDLR DCA RKEBLK /SYS OR RKB0 DISPLACEMENT SZL /AILLL ODD ID VWLOQ VLOXK 10000 OVRFLO, ISZ RKECMD /TURN ON XBIT IF OVFLO RELOOP, DCA CHKHED /SET CHECK HEADER FLAG TO EITHER /0 OR 4000 (WHICH GETRS RTR'D BEFORE USED) /AND CAUSES EITHER A "DATA" OR "ALL" /TRANSFER DCLR /CLEAR STATUS REGISTER TAD PAGCNT /TEST TO SEE IF ONLY 1 PAGE WANTED AND S7600 SNA CLA TAD S400 /100 WAS IN PAGCNT TAD CHKHED CLL RTR /SHIFT TO CORRECT BITS TAD RKECMD DLDC TAD PAGCNT /CHECK TO SEE IF DONE SPA SNA JMP RKDONE /NO MORE TO DO, 0 REQUEST IS CAUGHT HERE TAD S7600 /DEDUCT 2 PAGES FROM TOTAL DCA PAGCNT TAD RKEBLK DLAG DSKP JMP .-1 DRST /READ COMPLETION REGISTER IFNZRO .-7700 SKP HLT /HE'S HAD IT! JMS TO 7700 F. 0 CLL RAL SZA JMP SERROR TAD RKEBLK CMA AND S37 /IF BLOCK IS AT A 37 MAKE /NEXT OPERATION DO A CHECK HEADER SZA CLA STL RAR ISZ RKEBLK JMP RELOOP /TRANSFER SOME MORE JMP OVRFLO /PAST BLOCK 7777-SET XBIT SERROR, AND S1002 /AC WAS RAL'D AND WE WANT TO SEE IF /DRIVE SEEK FAILED OR CYLINDER ADDR. ERROR SNA CLA JMP RKTST3 /WE TRY 3 TIMES /WE HAVE TO RECALIBRATE DRIVE DCLR /CLEAR STATUS REGISTER STL RTL /AC=2 DCLR /RECALIBRATE DRIVE DSKP /WAIT ON FLAG JMP .-1 DCLR /CLEAR STATUS REGISTER DRST /WAIT FOR STATUS TO CLEAR SZA CLA JMP .-2 RKTST3, CLA CLL CMA RAL /AC=-2 ISZ SERRCT /SKIP IF WE TRIED 3 TIMES JMP RETRY /TRY AGAIN JMP .+3 /ERROR EXIT RKDONE, ISZ SHNDL1 /NORMAL RETURN S7600, 7600 /GROUP 2 CLA ISZ SHNDL1 /IF JUMPED TO HERE- ERROR RETURN SFIELD, HLT /RESET USERS INST FIELD- WE NEVER TOUCHED DF JMP I SHNDL1 /EXIT S37, 37 S400, 400 /USED FOR 128 WORD TRANSFER MODE $