/RKCOPY V2.004 /RECOMPILED FROM DISASSEMBLELY 27-AUG-81 /AT SUPERIOR PLATING OF FAIRFIELD,CONN. /FOR A UNIQUE PROGRAMMING ENVIRONMENT. / / /MG ACM3=CLA CLL CMA RTL AC4000=CLA CLL CML RAR *0020 CHAR, 0000 /CHAR FOR READC ROUTINE PRINT, 0000 /PRINT MESSAGE TAD I PRINT DCA CHAR ISZ PRINT PRINT3, TAD I CHAR BSW JMS PRINT2 TAD I CHAR JMS PRINT2 ISZ CHAR JMP PRINT3 PRINT2, 0000 AND [77 SNA JMP I PRINT TAD [240 AND [77 TAD [240 JMS TYPE JMP I PRINT2 CRLF, 0000 /CR LF ROUTINE TAD [215 JMS TYPE TAD [212 JMS TYPE JMP I CRLF TYPE, 0000 /TYPE CHAR IN AC ROUTINE TSF JMP .-1 TLS CLA JMP I TYPE READC, 0000 /READ CHAR INTO CHAR,CHECK FOR ^C KSF JMP .-1 KRB AND [177 DCA CHAR ACM3 TAD CHAR SNA CLA JMP I [7605 JMP I READC GETN, 0000 /GET NUMBER ROUTINE JMS READC TAD CHAR JMS TYPE JMS CRLF TAD CHAR TAD [7720 AND [7774 SZA CLA JMP I GETN ISZ GETN TAD CHAR TAD [7720 CLL RAL JMP I GETN PAGE START, 6040 /RKCOPY ENTRY JMS PRINT /PRINT HEADER MESSAGE MESS1 JMS CRLF JMS PRINT /ASK FOR INPUT UNIT MESS2 JMS GETN /GET UNIT NUMBER JMP .-3 /ASK AGAIN? DCA DSKIN /SAVE INPUT UNIT # JMS PRINT /ASK FOR OUTPUT UNIT # MESS3 JMS GETN /GET UNIT NUMBER JMP .-3 /ASK AGAIN? DCA DSKOUT /SAVE OUTPUT UNIT # JMS PRINT /TELL HIM WE'RE READY MESS4 JMS READC /WAIT UNTIL HE'S READY! JMS CRLF SETUP, TAD DSKIN /SET UP TO READ DCA UNIT RSEQ, DCA DFUNC /AC=0000 FOR READ,4000 FOR WRITE CLL CMA RAL DCA SURFSW /SET SURFACE SWITCH = -2 DCA ALLFLG /SET FOR DATA FORMAT OF READ OR WRITE TAD (20 DCA DSKEMA /SET FIELD 2 FOR SIDE ONE XFERT, TAD (7760 DCA SCOUNT /COUNT FOR 20(8) OR 16(10) SECTORS 6744 /START AT LOCATION ZERO XFERS, TAD UNIT /GET UNIT # TAD DFUNC /GET DISK FUNCTION (R/W) TAD DSKEMA /GET DATA FIELD TAD ALLFLG /GET DATA/ALL FLAG TAD DSURF /GET DISK SURFACE 6746 /LOAD COMMAND REGISTER TAD DSKADD /GET DISK ADDRESS 6743 /LOAD ADDRESS AND GO DO FUNCTION 6741 /ARE WE DONE YET? JMP .-1 /NO: THEN WAIT! 6745 /GET DISK STATUS CLL RAL /IGNORE BIT 0 SZA /SKIP IF NO ERROR JMP DSKERR /GO HANDLE ERROR GETMOR, TAD (1000 /SET FOR READ/WRITE ALL DCA ALLFLG ISZ DSKADD /INCREMENT SECTOR SKP ISZ DSURF ISZ SCOUNT /DID WE DO 16 SECTORS? JMP XFERS /NO, GO DO SOME MORE TAD (30 DCA DSKEMA /SET FIELD 3 FOR SIDE TWO ISZ SURFSW /DID WE ALREADY DO SIDE TWO? JMP XFERT /NO, GO DO IT. CLL CMA RTL /YES: 3 ERROR TRIES PER CYLINDER DCA ERRTRY TAD DFUNC /GET FUNCTION SPA CLA /SKIP ON READ JMP NXTRAC /WRITE: GO GET NEXT TRACK TAD DSKOUT /SET UP FOR WRITE DCA UNIT TAD DSKADD /GET DISK ADDRESS SNA DCA DSURF TAD (7740 /RESET FOR WRITE DCA DSKADD AC4000 /AC=4000 FOR WRITE JMP RSEQ /GO TO RSEQ WITH NZ AC NXTRAC, ISZ TCOUNT /DO ALL TRACKS? JMP SETUP /NO: GO DO MORE JMS PRINT /YES:PRINT DONE. MESS5 JMS CRLF JMP I (7605 /AND EXIT TO OS8 MONITOR DSKERR, AND (7757 /CHECK FATAL ERROR BITS SZA /SKIP IF NONE ARE SET JMP ABORT /GO ABORT COPY ISZ ERRTRY /SHOULD WE GIVE IT ANOTHER TRY SKP /YES! JMP GETMOR /BUG ER! GO TRY MORE?!?.... DCA ALLFLG /RESET FOR READ/WRITE DATA FUNC TAD DSKADD /BACKUP DISK ADDRESS AND (7760 DCA DSKADD JMP XFERT /GO RETRY THAT! ABORT, CLA /GIVE FATAL ERROR MESSAGE JMS PRINT MESS6 JMP I (7605 /RETURN TO OS8 DSKIN, 0000 DSKOUT, 0002 ERRTRY, 7775 UNIT, 0000 DFUNC, 0000 DSKADD, 0000 ALLFLG, 0000 DSKEMA, 0000 DSURF, 0000 SURFSW, 0000 SCOUNT, 0000 TCOUNT, 7465 PAGE MESS1, TEXT "RK05 DISK COPY V2.004" MESS2, TEXT "FROM DRIVE?" MESS3, TEXT "TO DRIVE?" MESS4, TEXT "STRIKE ANY CHARACTER TO START COPY:" MESS5, TEXT "DONE" MESS6, TEXT "?FATAL ERROR IN COPY" $$$$$$$$$$$$$$$$