/ The RK fast access program / Needs kturbo and tturbo instructions provided by omni-usb / Communication is word-wise via the subroutines / RWRD and SWRD and their aliases RWORD and SWORD / All intelligence is located on the PC side :-) IDEV=400 ODEV=410 KTURBO=6007 IDEV TTURBO=6007 ODEV / Commands sent from the PC ATT=36 CMGET=1 CMPUT=2 /RK05 commands CRKGO=3 / Execute command CRKST=4 / Return drive status CRKRT=5 / Read track CRKWT=6 / Write track CRKR0=007 CRKR1=107 CRKR2=207 CRKR3=307 /GO BACK TO RIMLOADER CBOOT=04566 / RK05 commands are followed by the disk address and transfer length / *7700 JMP I XSTART *10 AUTO0, 0 AUTO1, 0 AUTO2, 0 AUTO3, 0 AUTO4, 0 AUTO5, 0 AUTO6, 0 AUTO7, 0 *30 RKBOOT, DLAG JMP . *34 XSTART, START XRWRD, RWRD XSWRD, SWRD XSBUF, SBUF XRBUF, RBUF XRKGO, RKGO XRKST, RKST XRKRT, RKRT XRKWT, RKWT XRECAL, RECAL XEXIT, EXIT DSKP=6741 DCLR=6742 DLAG=6743 DLCA=6744 DRST=6745 DLDC=6746 RWORD=JMS I XRWRD SWORD=JMS I XSWRD *200 START, RWORD TAD KATT SZA JMP START RWORD DCA CMD TAD CMD TAD KCMGET SZA JMP NO1 JMS I XSBUF JMP START NO1, CLA TAD CMD TAD KCMPUT SZA JMP NO2 JMS I XRBUF JMP START NO2, CLA TAD CMD TAD KCRKGO SZA JMP NO3 JMS I XRKGO JMP START NO3, CLA TAD CMD TAD KCRKST SZA JMP NO4 JMS I XRKST JMP START NO4, CLA TAD CMD TAD KCRKRT SZA JMP NO5 JMS I XRKRT NO5, CLA TAD CMD TAD KCRKWT SZA JMP NO6 JMS I XRKWT NO6, CLA TAD CMD AND K7477 / MASK OUT DRIVE SELECT TAD KCRKR0 SZA JMP NO7 TAD CMD RTR RTR RAR AND K6 JMS I XRECAL NO7, JMP START K6, 6 K7477, 7477 KATT, -ATT KCMGET, -CMGET KCMPUT, -CMPUT KCRKGO, -CRKGO KCRKST, -CRKST KCRKRT, -CRKRT KCRKWT, -CRKWT KCRKR0, -CRKR0 KCRKR1, -CRKR1 KCRKR2, -CRKR2 KCRKR3, -CRKR3 XBOOT, 7777 CMD, 0 /*********************************************** PAGE /*********************************************** RKGO, 0 CLA CLL IAC / Standard read from manual DCLR RWORD / MEMORY ADDRESS DLCA RWORD / COMMAND REGISTER DLDC RWORD / DISK ADDRESS DLAG JMP I RKGO RKST, 0 DSKP JMP .-1 DRST SWORD JMP I RKST /*********************************************** PAGE RKRT, 0 CLA TAD K17N DCA CNT CLA CLL IAC / Standard read from manual DCLR CLA DCA TPTR DLCA RWORD DCA CMDP TAD CMDP TAD CMDR1 DLDC RWORD DCA ADR TAD ADR DLAG RTTL, CLA ISZ ADR TAD TPTR TAD K400 DCA TPTR TAD ADR DSKP JMP .-1 CLA CLL IAC / Standard read from manual DCLR TAD CMDP TAD CMDR2 DLDC TAD TPTR DLCA TAD ADR DLAG ISZ CNT JMP RTTL JMP I RKRT /********************************************** RKWT, 0 CLA TAD K17N DCA CNT CLA CLL IAC / Clear control DCLR CLA DCA TPTR DLCA RWORD DCA CMDP TAD CMDP TAD CMDW1 DLDC RWORD DCA ADR TAD ADR DLAG WTTL, CLA ISZ ADR TAD TPTR TAD K400 DCA TPTR TAD ADR DSKP JMP .-1 CLA CLL IAC / Standard read from manual DCLR TAD CMDP TAD CMDW2 DLDC CLA TAD TPTR DLCA TAD ADR DLAG ISZ CNT JMP WTTL JMP I RKWT K400, 400 TPTR, 0 K20N, 20 ADR, 0 CNT, 0 K17N, -17 CMDP, 0 CMDR1, 0010 CMDR2, 1010 CMDW1, 4010 CMDW2, 5010 /********************************************** RECAL, 0 DCA DRIVE / SAVE DRIVE NUMBER*2 found in AC CLA CLL IAC / Recal drive, clear errors and set to cyl 0 DCLR / From manual TAD DRIVE DLDC CLA CLL CML RTL DCLR DSKP JMP .-1 TAD K0200 TAD DRIVE DLDC JMP I RECAL K0200, 200 DRIVE, 0 /*********************************************** / Memory dump/restore routines PAGE PTR, 0 SBUF, 0 CLA DCA PTR CDF 10 SLOP, CLA TAD I PTR TTURBO JMP .-1 BSW TTURBO JMP .-1 ISZ PTR JMP SLOP CDF 0 JMP I SBUF RBUF, 0 CLA DCA PTR CDF 10 RLOP, KTURBO JMP .-1 BSW KTURBO JMP .-1 DCA I PTR ISZ PTR JMP RLOP CDF 0 JMP I RBUF RWRD, 0 CLA KTURBO JMP .-1 BSW KTURBO JMP .-1 JMP I RWRD SWRD, 0 TTURBO JMP .-1 BSW TTURBO JMP .-1 BSW JMP I SWRD /*********************************************** / What hapens on exit to 7600 / Relies on the fact that OS/8 won't allow overwriting here. *7600 EXIT, HLT JMP 30 $