/ RT.PA BYTE-ORIENTED DISK HANDLER / FOR THE SYKES 7250 FLOPPY DISK; NON FILE-ORIENTED / TO USE: IN TECO: *ERRT11$ EWSYS:FILE.EX$ _STRING$$ / STARTS AT THE BEGINNING OF THE DISK; MUST READ THE HANDLER / IN FROM DISK AGAIN TO RE-START AT THE BEGINNING ("REWIND"). / RON LARKIN 10-JUL-80 / RUNS ON SYKES 7250 BUFFERED DUAL-DRIVE FLOPPY DISK UNIT DEV=320 SYOP=6001+DEV SYSK=6002+DEV SYIN=6004+DEV *0 /9 WORD HEADER BLOCK /WORD 1 -1 /ONE DEVICE HANDLER IN THIS PACKAGE /NEXT 4 WORDS ARE DEVICE NAMES DEVICE SYKR;DEVICE RT /NEXT WORD IS FOR READ-ONLY NON FILE STRUCTURED 2550 /NEXT WORD IS ENTRY LOC. RT&177 /WASTE 2 WORDS AND FINISH THIS BLOCK OF STUFF ZBLOCK 2 *200 RT, 001 /ENTRY. VERSION NUMBER HERE. CLA RDF /OBTAIN CALLING DATA FIELD TAD CCDF /MAKE CDF TO RETURN DCA SDFOUT TAD I RT /GET DATA FIELD OF BUFFER AND C70 TAD CDF0 DCA RTCDF TAD I RT /GET MODE ISZ RT SPA HLT /MODE ERROR AND C3700 /SEE "IPB.PA" FOR THIS LOGIC CIA DCA WC TAD I RT ISZ RT DCA CA /STARTING ADDRESS TAD C600 /ISSUE A RESET JMS SELECT TAD C602 /SELECT UNIT 2 JMS SELECT TAD TRACK /SELECT TRACK JMS SELECT TAD SECTOR /SELECT SECTOR JMS SELECT RTCDF, HLT /BECOMES CDF TO BUFFER JMS GCH /GET FIRST CHARACTER OF 3 DCA I CA /STASH IT TEMPORARILY JMS GCH /SECOND DCA TEMP JMS GCH /THIRD RTL RTL AND C7400 TAD I CA DCA I CA /HIGH ORDER 4 BITS TO WORD 1 TAD INPUT RTR RTR RAR AND C7400 TAD TEMP ISZ CA /BUMP ADDRESS NOP DCA I CA ISZ CA /BUMP ADDRESS AGAIN NOP /JUST IN CASE ISZ WC /BUMP WORD COUNT JMP RTCDF /REPEAT ISZ RT /FINISHED. DCA ACC /CLEAR THE ACC REMEMBRANCE FOR NORMAL RETURN TAD C603 /ISSUE A TERMINATE JMS SELECT SYSK JMP .-1 SYIN AND C110 /MASK OUT ALL BUT ERROR BITS SNA JMP NORMAL /NO ERRORS, RETURN CMA /FATAL ERROR--RETURN NEGATIVE AC DCA ACC JMP EXIT NORMAL, ISZ RT /BUMP PAST ERROR RETURN EXIT, TAD C601 /RE-SELECT UNIT 1 AS A NON-SYSTEM HANDLER SHOULD JMS SELECT TAD ACC /SET UP ACC FOR RETURN SDFOUT, HLT /SET DATA & INSTR FIELD FOR RETURN JMP I RT DECIMAL BYTES, -128 MD128, -128 SCOUNT, -26 MD26, -26 OCTAL CCDF, CDF CIF 0 CDF0, CDF 0 CNTRLL, 214-232 /CONTROL-L MINUS CONTROL-Z C7400, 7400 C3700, 3700 C232, 232 CM232, -232 C70, 70 C110, 110 C600, 600 C601, 601 C602, 602 C603, 603 C401, 401 WC, 0 INPUT, 0 TEMP, 0 ACC, 0 CA, 0 TRACK, 400 SECTOR, 401 SELECT, HLT /PERFORM A SELECT OR OTHER DISK FUNCTION SYOP CLA JMP I SELECT GCH, HLT /GET ONE CHARACTER FROM DISK SYSK /WAIT FOR DISK FLAG JMP .-1 SYIN /INPUT TAD CM232 /IS IT A CONTROL-Z? SNA TAD CNTRLL /YES, CONVERT TO A CONTROL-L TAD C232 /ADD THE CONTROL-Z BACK DCA INPUT ISZ BYTES /HAVE WE DONE 128 BYTES (ONE BLOCK?) JMP GCHEX /NOT YET, EXIT FROM GCH ISZ SECTOR /YES. BUMP SECTOR COUNT. TAD MD128 /INITIALIZE SECTOR BYTE COUNT DCA BYTES ISZ SCOUNT /SKIPS WHEN 26 BLOCKS DONE JMP GCHEX ISZ TRACK /FINISHED A SECTOR. BUMP TRACK NO. TAD C401 /RESET SECTOR COUNTER DCA SECTOR TAD MD26 DCA SCOUNT GCHEX, TAD INPUT /RETURN FROM GCH JMP I GCH IFNZRO 377-.