File RK8.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/RK8 DRIVER FOR RTS-8
/
/
/
/
/
/
/
/
/
/COPYRIGHT  (C)  1974 BY DIGITAL EQUIPMENT CORPORATION
/
/
/
/
/
/
/
/
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
/
/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
/
/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
/DIGITAL.
/
/
/
/
/
/
/
/
/
/

/ACCEPTS STANDARD MASS-STORAGE MESSAGE FORMAT TASK= RK8 INIWT= 0 CUR= 0 DLDC= 6732 DLCA= 6755 DLWC= 6753 DLDR= 6733 DSKD= 6745 DSKE= 6747 DCLS= 6742 DRDS= 6741 DRDA= 6734 DCLA= 6751 FIELD CUR%10 *3400 TMP, START, CAL DONEFG, SKPINS TRYCT, INTRPT LOOP, CAL RECEIV /GET A MESSAGE ADDR, 0 DCA FLD ISZ DONEFG /INITIALIZE EVENT FLAG STA DOAGIN, TAD ADDR IOF JMS INIT /START UP THE OLE DISK TAD (FSTINT DCA IDISP /INITIALIZE INTERRUPT DISPATCH AC7775 ION DCA TRYCT /TRY 3 TIMES CAL WAITE PDONFG, DONEFG /WAIT FOR COMPLETION TAD DONEFG SNA CLA JMP NOPFAL /IF EVENT FLAG STILL NON-ZERO, WE TAD (-4 /MUST HAVE HAD A POWER FAILURE JMP DOAGIN NOPFAL, JMS GET /THIS JUST SETS THE DF AND ADDR P7600, 7600 TAD STATUS DCA I ADDR TAD FLD DCA PFLD TAD ADDR TAD (-7 /GET POINTER TO MESSAGE EVENT FLAG CAL POST STATUS, PFLD, HLT JMP LOOP /GET ANOTHER MESSAGE GET, 0 FLD, HLT ISZ ADDR TAD I ADDR JMP I GET
/RK8 STARTUP SUBROUTINE - CALLED WITH IOF INIT, 0 DCA ADDR /ADDRESS OF PARAMETER BLOCK -1 IN AC DCLS /CLEAR DISK STATUS JMS GET CLL RAL /GET 2*UNIT NUMBER AND (7 DCA TMP ISZ ADDR /GET OS/8 STYLE I/O CONTROL WORD TAD I ADDR AND (70 /EXTRACT FIELD TAD TMP TAD (6000 /ENABLE DONE INTERRUPT ONLY DLDC /LOAD RK8 COMMAND REGISTER TAD I ADDR /RE-FETCH CONTROL WORD RAL AND P7600 SZA /PRESERVE LINK CIA /AROUND NEGATE DLWC /LOAD RK8 WORD COUNT RTL TAD (DLDR /FORM READ OR WRITE OP DCA INST STA ISZ ADDR /GET START ADDR -1 TAD I ADDR DLCA /TO RK8 HARDWARE CA REGISTER ISZ ADDR /GET BLOCK NUMBER TAD I ADDR INST, HLT /READY, STEADY, GO! JMP I INIT INTRPT, 0;0 /SKIP CHAINING GOES HERE DSKD JMP I INTRPT CDF CIF CUR /SET DF AND IF CORRECTLY JMP I .+1 IDISP, IGNORE /IGNORE INITIAL INTERRUPT CIF 0 /IDISP IS A COROUTINE WITH POSTDS /THE RTS-8 INTERRUPT SYSTEM
/RK8 INTERRUPT SERVICE TRYAGN, DRDS AND (40 DCLS SNA CLA /CHECK FOR TRACK SEEK ERROR JMP NOTKSK /IF WE GOT ONE DCLA /WE HAVE TO RECALIBRATE THE DISK TAD (6000 DLDC /RE-ENABLE INTERRUPT ON COMPLETION JMS IDISP /AND WAIT UNTIL COMPLETION NOTKSK, TAD ADDR TAD (-4 /BACK UP THE ADDRESS POINTER JMS INIT GOAWAY, JMS IDISP FSTINT, DSKE /ERROR? JMP RKOVER /NO - WE'RE DONE DRDS AND (4 /CHECK FOR TRACK OVERFLOW SZA CLA /WHICH DOESN'T COUNT AS AN ERROR JMP TRKOV /BUT AS A HARDWARE DEFICIENCY ISZ TRYCT /ITS A MORE SERIOUS ERROR - HOW MANY JMP TRYAGN /TIMES HAVE WE HIT IT? DRDS /TOO MANY - RETURN DISK STATUS REGISTER RKOVER, DCA STATUS IGNORE, DCLS /CLEAR NASTY FLAGS TAD PDONFG /GOING TO POSTDS WITH THE AC NON-ZERO JMS IDISP /WAKES UP THE HANDLER TO CLEAN UP HALT, HLT /FOR GOOD LUCK TRKOV, TAD INST DCA OVINST /COPY READ OR WRITE INST (CLUMSY!) DCLS /WIPE SLATE CLEAN DRDA /WE MUST BUMP THE DISK ADDRESS AND (7760 /TO THE NEXT TRACK TAD (20 /BY HAND OVINST, HLT JMP GOAWAY /DO REMAINDER OF OPERATION PAGE $$



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search